
                            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Updates an 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)	Update3Updates an AlloyDB instance within a given cluster.z{description}z        To update the number of nodes in the read pool, run:

          $ {command} my-read-instance --cluster=my-cluster --region=us-central1 --read-pool-node-count=3
        )DESCRIPTIONEXAMPLESc                 x   t         j                  j                  |       t        j                  | j                               }t         j                  j                  |d       t        j                  |       t        j                  |d       t        j                  |       t        j                  |       t        j                  |d       t        j                  |d       t        j                  |       t        j                  |       t        j                   |       t        j"                  |       t        j$                  |d       t        j&                  |d       t        j(                  |d       t        j*                  |       t        j,                  |       t        j.                  |       t        j0                  |d       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                  |       t        jL                  |       t        jN                  |       t        jP                  |       t        jR                  |       y)zxSpecifies additional command flags.

    Args:
      parser: argparse.Parser, Parser object for command line inputs
    TF)requiredshow_negated_in_help)updateN)*r   
ASYNC_FLAGAddToParserr   GetMessagesModuleReleaseTrack
SetDefaultr	   AddAvailabilityType
AddClusterAddDatabaseFlagsAddInstanceAddCPUCountAddMachineTypeAddReadPoolNodeCount	AddRegion"AddInsightsConfigQueryStringLength$AddInsightsConfigQueryPlansPerMinute&AddInsightsConfigRecordApplicationTags$AddInsightsConfigRecordClientAddress
AddSSLModeAddRequireConnectorsAddAssignInboundPublicIpAddAuthorizedExternalNetworksAddOutboundPublicIpAddAllowedPSCProjectsAddPSCNetworkAttachmentUriClearPSCNetworkAttachmentUriAddPSCAutoConnectionGroupAddActivationPolicyAddEnableConnectionPoolingAddConnectionPoolingPoolModeAddConnectionPoolingMinPoolSizeAddConnectionPoolingMaxPoolSize(AddConnectionPoolingMaxClientConnections%AddConnectionPoolingServerIdleTimeout$AddConnectionPoolingQueryWaitTimeoutAddConnectionPoolingStatsUsers+AddConnectionPoolingIgnoreStartupParameters"AddConnectionPoolingServerLifetime/AddConnectionPoolingClientConnectionIdleTimeout)AddConnectionPoolingMaxPreparedStatements)clsparseralloydb_messagess      'lib/surface/alloydb/instances/update.pyArgszUpdate.Args4   s=    	OO'11#2B2B2DE 	OOvt,	f%	VU#	6"	f	fu-	%0	v&	OOF	,,V4	..v6	00T 
..T 
VD)	v&	""6*	''/	f4@	'	$$V,	&&v.	##F+	f&67 
$$V,	&&v.	))&1	))&1	226:	//7	..v6	((0	55f=	,,V4	99&A	33F;    c                 0    t        j                  |||      S N)r
   ConstructPatchRequestFromArgsselfrA   instance_refargss       rB   rG   z$Update.ConstructPatchRequestFromArgsl   s    88,. .rD   c                    t        j                  | j                               }|j                  }|j                  }|j
                  j                  dt        j                  j                  j                  j                  |j                  |j                  |j                        }| j                  |||      }|j                   j#                  |      }t$        j&                  j)                  |j*                  d      }t,        j.                  j1                  dj3                  |j5                                      |j6                  s&t9        j:                  |d| j                         d       |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.instances)
projectsIdlocationsId
clustersIdinstancesIdz%alloydb.projects.locations.operations)
collectionzOperation ID: {}zUpdating instanceF)r   AlloyDBClientr   alloydb_clientrA   resource_parserCreater   VALUEScoreproject	GetOrFailregionclusterinstancerG   %projects_locations_clusters_instancesPatchr   REGISTRYParseRelativeNamenamer   statusPrintformatNameasync_r   Await)	rI   rK   clientrS   rA   rJ   reqopop_refs	            rB   Runz
Update.Runp   s-    ##D$5$5$78F**N..))007$$))11;;KK<<MM 1 L 
,
,,C 
	=	=	C	CC	HB11
C 2 F JJ'..v{{}=>;;
%t'8'8':E IrD   N)	__name__
__module____qualname____doc__detailed_helpclassmethodrC   rG   rl    rD   rB   r   r   $   s7     < 		- 2< 2<n. rD   r   c                   2     e Zd ZdZe fd       Zd Z xZS )
UpdateBetar   c                    t         t        |   |       t        j                  |       t        j
                  |d       t        j                  |d       t        j                  |d       t        j                  |       t        j                  |d       t        j                  |       t        j                  |d       y )NTr   F)superru   rC   r	   AddUpdateModeAddObservabilityConfigEnabled&AddObservabilityConfigPreserveComments%AddObservabilityConfigTrackWaitEvents*AddObservabilityConfigMaxQueryStringLength+AddObservabilityConfigRecordApplicationTags)AddObservabilityConfigQueryPlansPerMinute(AddObservabilityConfigTrackActiveQueriesr?   r@   	__class__s     rB   rC   zUpdateBeta.Args   s    	*c'		''T 
00T 
//U 
44V<	55T 
33F;	22TrD   c                 0    t        j                  |||      S rF   )r
   !ConstructPatchRequestFromArgsBetarH   s       rB   rG   z(UpdateBeta.ConstructPatchRequestFromArgs   s    <<, rD   rm   rn   ro   rp   rr   rC   rG   __classcell__r   s   @rB   ru   ru      s    ; *rD   ru   c                   2     e Zd ZdZe fd       Zd Z xZS )UpdateAlphar   c                 ,    t         t        |   |       y rF   )rw   r   rC   r   s     rB   rC   zUpdateAlpha.Args   s    	+s (rD   c                 0    t        j                  |||      S rF   )r
   "ConstructPatchRequestFromArgsAlpharH   s       rB   rG   z)UpdateAlpha.ConstructPatchRequestFromArgs   s    ==, rD   r   r   s   @rB   r   r      s    ;) )rD   r   N)rp   
__future__r   r   r   googlecloudsdk.api_lib.alloydbr   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.alloydbr	   r
   googlecloudsdk.corer   r   r   DefaultUniverseOnlyReleaseTracksr   GAUpdateCommandr   BETAru   ALPHAr   rs   rD   rB   <module>r      s    # '  ' 4 > ( 4 > # * ) D%%(()jT j * jZ D%%**+  ,> D%%++,
* 
 -
rD   