
    '                        S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SS	K
Jr  SS
KJr  SSKJr  SSKJr  \	R"                  \	R$                  " \	R&                  R(                  5       " S S\	R*                  5      5       5       r\	R$                  " \	R&                  R.                  5       " S S\5      5       r\	R$                  " \	R&                  R2                  5       " S S\5      5       rg)z)Creates a new AlloyDB secondary instance.    )absolute_import)division)unicode_literals)api_util)instance_operations)base)flags)instance_helper)log)
properties)	resourcesc                   >    \ rS rSrSrSSS.r\S 5       rS rS r	S	r
g
)CreateSecondary"   @Creates a new AlloyDB SECONDARY instance within a given cluster.z{description}z        To create a new secondary instance, run:

          $ {command} my-instance --cluster=my-cluster --region=us-central1
        )DESCRIPTIONEXAMPLESc                    [         R                  R                  U 5        [        R                  " U S5        [        R
                  " U 5        [        R                  " U 5        [        R                  " U 5        [        R                  " U 5        [        R                  " U SS9  [        R                  " U 5        [        R                  " U 5        [        R                  " U 5        [        R                  " U SS9  [        R                  " U 5        [        R                  " U 5        [        R                   " U 5        [        R"                  " U 5        [        R$                  " U 5        [        R&                  " U 5        [        R(                  " U 5        [        R*                  " U 5        [        R,                  " U 5        [        R.                  " U 5        [        R0                  " U 5        [        R2                  " U 5        [        R4                  " U 5        [        R6                  " U 5        [        R8                  " U 5        [        R:                  " U 5        g)zlSpecifies additional command flags.

Args:
  parser: argparse.Parser: Parser object for command line inputs
FT)default_from_primary)show_negated_in_helpN)r   
ASYNC_FLAGAddToParserr	   
AddClusterAddAvailabilityTypeAddInstance	AddRegionAddDatabaseFlags
AddSSLModeAddRequireConnectorsAddAssignInboundPublicIpAddAuthorizedExternalNetworksAddOutboundPublicIpAddAllowedPSCProjectsAddPSCNetworkAttachmentUriAddPSCAutoConnectionsAddAllocatedIPRangeOverrideAddEnableConnectionPoolingAddConnectionPoolingPoolModeAddConnectionPoolingMinPoolSizeAddConnectionPoolingMaxPoolSize(AddConnectionPoolingMaxClientConnections%AddConnectionPoolingServerIdleTimeout$AddConnectionPoolingQueryWaitTimeoutAddConnectionPoolingStatsUsers+AddConnectionPoolingIgnoreStartupParameters"AddConnectionPoolingServerLifetime/AddConnectionPoolingClientConnectionIdleTimeout)AddConnectionPoolingMaxPreparedStatements)parsers    1lib/surface/alloydb/instances/create_secondary.pyArgsCreateSecondary.Args0   s    	OO'	VU#	f%	f	OOF	6"	V$7	v&	""6*	''/	f4@	'	$$V,	'	%%f- 
$$V,	&&v.	))&1	))&1	226:	//7	..v6	((0	55f=	,,V4	99&A	33F;    c                 0    [         R                  " XX45      $ N)r
   )ConstructSecondaryCreateRequestFromArgsGAselfclientalloydb_messagescluster_refargss        r4   'ConstructSecondaryCreateRequestFromArgs7CreateSecondary.ConstructSecondaryCreateRequestFromArgsU   s     DD+ r7   c                    [         R                  " U R                  5       5      nUR                  nUR                  nUR
                  R                  S[        R                  R                  R                  R                  UR                  UR                  S9nU R                  X$XQ5      nUR                  R!                  U5      n["        R$                  R'                  UR(                  SS9n[*        R,                  R/                  SR1                  UR3                  5       5      5        UR4                  (       d&  [6        R8                  " USU R                  5       5        U$ )zConstructs and sends request.

Args:
  args: argparse.Namespace, An object that contains the values for the
    arguments specified in the .Args() method.

Returns:
  ProcessHttpResponse of the request made.
z#alloydb.projects.locations.clusters)
projectsIdlocationsId
clustersIdz%alloydb.projects.locations.operations)
collectionzOperation ID: {}zCreating secondary instance)r   AlloyDBClientReleaseTrackalloydb_clientr>   resource_parserCreater   VALUEScoreproject	GetOrFailregionclusterrA   %projects_locations_clusters_instancesCreatesecondaryr   REGISTRYParseRelativeNamenamer   statusPrintformatNameasync_r   Await)	r<   r@   r=   rJ   r>   r?   reqopop_refs	            r4   RunCreateSecondary.Run\   s'    ##D$5$5$78F**N..((//-$$))11;;KK<<	 0 K 
6
6+C 
	=	=	M	M
B 11
C 2 F JJ'..v{{}=>;;
/1B1B1D Ir7    N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr5   rA   ra   __static_attributes__rc   r7   r4   r   r   "   s8     I %- "< "<H"r7   r   c                   <   ^  \ rS rSrSr\U 4S j5       rS rSrU =r	$ )CreateSecondaryBeta   r   c                 4   > [         [        [        ]  U5        g r9   )superrm   r5   clsr3   	__class__s     r4   r5   CreateSecondaryBeta.Args   s    	
28@r7   c                 0    [         R                  " XX45      $ r9   )r
   +ConstructSecondaryCreateRequestFromArgsBetar;   s        r4   rA   ;CreateSecondaryBeta.ConstructSecondaryCreateRequestFromArgs   s     FF+ r7   rc   
rd   re   rf   rg   rh   classmethodr5   rA   rk   __classcell__rs   s   @r4   rm   rm      s$    HA A r7   rm   c                   <   ^  \ rS rSrSr\U 4S j5       rS rSrU =r	$ )CreateSecondaryAlpha   r   c                 4   > [         [        [        ]  U5        g r9   )rp   r}   r5   rq   s     r4   r5   CreateSecondaryAlpha.Args   s    	
 4:6Br7   c                 0    [         R                  " XX45      $ r9   )r
   ,ConstructSecondaryCreateRequestFromArgsAlphar;   s        r4   rA   <CreateSecondaryAlpha.ConstructSecondaryCreateRequestFromArgs   s     GG+ r7   rc   rx   r{   s   @r4   r}   r}      s$    HC C r7   r}   N)rh   
__future__r   r   r   googlecloudsdk.api_lib.alloydbr   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.alloydbr	   r
   googlecloudsdk.corer   r   r   DefaultUniverseOnlyReleaseTracksrI   GACreateCommandr   BETArm   ALPHAr}   rc   r7   r4   <module>r      s    0 &  ' 3 > ( 4 > # * ) D%%(()Zd(( Z * Zz D%%**+/  , D%%++,.  -r7   