
                            d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	l
mZ dd
lmZ ddlmZ ddlmZ e	j"                   e	j$                  e	j&                  j(                         G d de	j*                                      Z e	j$                  e	j&                  j.                         G d de             Z e	j$                  e	j&                  j2                         G d de             Zy)zCreates a new AlloyDB instance.    )absolute_import)division)unicode_literals)api_util)instance_operations)base)flags)instance_helper)log)
properties)	resourcesc                   6    e Zd ZdZdddZed        Zd Zd Zy)	Create6Creates a new AlloyDB instance within a given cluster.z{description}aj          To create a new primary instance, run:

          $ {command} my-instance --cluster=my-cluster --region=us-central1 --instance-type=PRIMARY --cpu-count=4

        To create a new read pool instance, run:

          $ {command} my-instance --cluster=my-cluster --region=us-central1 --instance-type=READ_POOL --read-pool-node-count=1 --cpu-count=4
        )DESCRIPTIONEXAMPLESc                    t         j                  j                  |        t        j                  |        t        j
                  | d       t        j                  |        t        j                  |        t        j                  |        t        j                  | d       t        j                  |        t        j                  |        t        j                  |        t        j                  |        t        j                  |        t        j                  | d       t        j                   | d       t        j"                  |        t        j$                  |        t        j&                  |        t        j(                  |        t        j*                  | d       t        j,                  |        t        j.                  |        t        j0                  |        t        j2                  |        t        j4                  |        t        j6                  |        t        j8                  |        t        j:                  |        t        j<                  |        t        j>                  |        t        j@                  |        t        jB                  |        t        jD                  |        t        jF                  |        t        jH                  |        t        jJ                  |        y)zxSpecifies additional command flags.

    Args:
      parser: argparse.Parser: Parser object for command line inputs
    F)requiredTshow_negated_in_helpN)&r   
ASYNC_FLAGAddToParserr	   AddAvailabilityType
AddClusterAddDatabaseFlagsAddInstanceAddInstanceTypeAddCPUCountAddMachineTypeAddReadPoolNodeCount	AddRegion"AddInsightsConfigQueryStringLength$AddInsightsConfigQueryPlansPerMinute&AddInsightsConfigRecordApplicationTags$AddInsightsConfigRecordClientAddress
AddSSLModeAddRequireConnectorsAddAssignInboundPublicIpAddAuthorizedExternalNetworksAddOutboundPublicIpAddAllowedPSCProjectsAddPSCNetworkAttachmentUriAddPSCAutoConnectionsAddAllocatedIPRangeOverrideAddEnableConnectionPoolingAddConnectionPoolingPoolModeAddConnectionPoolingMinPoolSizeAddConnectionPoolingMaxPoolSize(AddConnectionPoolingMaxClientConnections%AddConnectionPoolingServerIdleTimeout$AddConnectionPoolingQueryWaitTimeoutAddConnectionPoolingStatsUsers+AddConnectionPoolingIgnoreStartupParameters"AddConnectionPoolingServerLifetime/AddConnectionPoolingClientConnectionIdleTimeout)AddConnectionPoolingMaxPreparedStatements)parsers    'lib/surface/alloydb/instances/create.pyArgszCreate.Args8   s    	OO'	f%	VU#	6"	f	&!	fu-	 	v&	OOF	,,V4	..v6	00T 
..T 
V	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                 2    t        j                  ||||      S N)r
    ConstructCreateRequestFromArgsGAselfclientalloydb_messagescluster_refargss        r<   ConstructCreateRequestFromArgsz%Create.ConstructCreateRequestFromArgsl   s!     ;; +t r>   c                    t        j                  | j                               }|j                  }|j                  }|j
                  j                  dt        j                  j                  j                  j                  |j                  |j                        }| j                  ||||      }|j                  j                  |      }t         j"                  j%                  |j&                  d      }t(        j*                  j-                  dj/                  |j1                                      |j2                  s%t5        j6                  |d| j                                |S )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 instance)r   AlloyDBClientReleaseTrackalloydb_clientrE   resource_parserr   r   VALUEScoreproject	GetOrFailregionclusterrH   %projects_locations_clusters_instancesr   REGISTRYParseRelativeNamenamer   statusPrintformatNameasync_r   Await)	rC   rG   rD   rP   rE   rF   reqopop_refs	            r<   Runz
Create.Runs   s$    ##D$5$5$78F**N..((//-$$))11;;KK<<	 0 !K
 
-
- +tC 
	=	=	D	DS	IB11
C 2 EFJJ'..v{{}=>;;(; $ 1 1 35Ir>   N)	__name__
__module____qualname____doc__detailed_helpstaticmethodr=   rH   re    r>   r<   r   r   $   s7     ? 	- .< .<fr>   r   c                   2     e Zd ZdZe fd       Zd Z xZS )
CreateBetar   c                 n   t         t        t          |       t        j                  |d       t        j
                  |d       t        j                  |d       t        j                  |       t        j                  |d       t        j                  |       t        j                  |d       y )NTr   F)superrn   r=   r	   AddObservabilityConfigEnabled&AddObservabilityConfigPreserveComments%AddObservabilityConfigTrackWaitEvents*AddObservabilityConfigMaxQueryStringLength+AddObservabilityConfigRecordApplicationTags)AddObservabilityConfigQueryPlansPerMinute(AddObservabilityConfigTrackActiveQueriesclsr;   	__class__s     r<   r=   zCreateBeta.Args   s    	*j&v.	''T 
00T 
//U 
44V<	55T 
33F;	22Tr>   c                 2    t        j                  ||||      S r@   )r
   "ConstructCreateRequestFromArgsBetarB   s        r<   rH   z)CreateBeta.ConstructCreateRequestFromArgs   s!     == +t r>   rf   rg   rh   ri   classmethodr=   rH   __classcell__rz   s   @r<   rn   rn      s    > (r>   rn   c                   2     e Zd ZdZe fd       Zd Z xZS )CreateAlphar   c                 4    t         t        t          |       y r@   )rp   r   r=   rx   s     r<   r=   zCreateAlpha.Args   s    	+{(0r>   c                 2    t        j                  ||||      S r@   )r
   #ConstructCreateRequestFromArgsAlpharB   s        r<   rH   z*CreateAlpha.ConstructCreateRequestFromArgs   s!     >> +t r>   r}   r   s   @r<   r   r      s    >1 1r>   r   N)ri   
__future__r   r   r   googlecloudsdk.api_lib.alloydbr   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.alloydbr	   r
   googlecloudsdk.corer   r   r   DefaultUniverseOnlyReleaseTracksrO   GACreateCommandr   BETArn   ALPHAr   rl   r>   r<   <module>r      s    & '  ' 4 > ( 4 > # * ) D%%(()iT i * iX D%%**+  ,@ D%%++,*  -r>   