
                             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  \R                  \R                  " \R                   R"                  5       " S S\R$                  5      5       5       r\R                  " \R                   R(                  \R                   R*                  5       " S S\5      5       rg)zUpdates a AlloyDB cluster.    )api_util)cluster_operations)base)
exceptions)cluster_helper)flags)log)
properties)	resourcesc                   R   ^  \ rS rSrSrSSS.rU 4S jr\S 5       rS r	S	 r
S
rU =r$ )Update    <Update an AlloyDB cluster within a given project and region.z{description}z        To update a cluster, run:

          $ {command} my-cluster --region=us-central1 --automated-backup-start-times=12:00 --automated-backup-days-of-week=MONDAY --automated-backup-retention-count=10
        )DESCRIPTIONEXAMPLESc                 @   > [         [        U ]
  " U0 UD6  SS/U l        g )NzL--automated-backup-* | --disable-automated-backup | --clear-automated-backupz]--enable-continuous-backup | --continuous-backup-* | --clear-continuous-backup-encryption-key)superr   __init__
parameters)selfargskwargs	__class__s      &lib/surface/alloydb/clusters/update.pyr   Update.__init__0   s+    	&$ $1&1'O	DO    c                    [         R                  " U R                  5       5      n[        R                  R                  U5        [        R                  " U5        [        R                  " U5        [        R                  " XU R                  5       SS9  [        R                  " XR                  5       SS9  [        R                  " XSS9  [        R                  " XSS9  [        R                  " U5        [        R                  " X5        g)zmSpecifies additional command flags.

Args:
  parser: argparse.Parser: Parser object for command line inputs.
T)updateN)r   GetMessagesModuleReleaseTrackr   
ASYNC_FLAGAddToParserr   	AddRegion
AddClusterAddAutomatedBackupFlagsAddContinuousBackupConfigFlagsAddMaintenanceWindowAddDenyMaintenancePeriodAddMaintenanceVersionAddSubscriptionType)clsparseralloydb_messagess      r   ArgsUpdate.Args=   s      11#2B2B2DEOO'	OOF	V	!!#"2"2"4T 
((  "4 
vE	""6DI	'	f7r   c                 0    [         R                  " XU5      $ N)r   ConstructPatchRequestFromArgsGAr   r-   cluster_refr   s       r   ConstructPatchRequestFromArgs$Update.ConstructPatchRequestFromArgsS   s    99t- -r   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                  XEU5      nUR                  (       d!  [         R"                  " U R$                  S5      eUR&                  R)                  U5      n[*        R,                  R/                  UR0                  SS9n[2        R4                  R7                  SR9                  UR;                  5       5      5        UR<                  (       d'  [>        R@                  " USU R                  5       S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.Please specify at least one property to updatez%alloydb.projects.locations.operations)
collectionzOperation ID: {}zUpdating clusterF)!r   AlloyDBClientr    alloydb_clientr-   resource_parserCreater
   VALUEScoreproject	GetOrFailregionclusterr5   
updateMaskr   MinimumArgumentExceptionr   projects_locations_clustersPatchr   REGISTRYParseRelativeNamenamer	   statusPrintformatNameasync_r   Await)	r   r   clientr=   r-   r4   reqopop_refs	            r   Run
Update.RunW   sF    ##D$5$5$78F**N..((//-$$))11;;KK<<	 0 !K
 
,
,-=-13C>>//
//KM M		3	3	9	9#	>B11
C 2 EFJJ'..v{{}=>;;v'94;L;L;N$&Ir   )r   )__name__
__module____qualname____firstlineno____doc__detailed_helpr   classmethodr.   r5   rW   __static_attributes____classcell__r   s   @r   r   r       sB     E 		- 8 8*- r   r   c                   <   ^  \ rS rSrSr\U 4S j5       rS rSrU =r	$ )
UpdateBetax   r   c                 4   > [         [        [        ]  U5        g r1   )r   rd   r.   )r+   r,   r   s     r   r.   UpdateBeta.Args|   s    	*j&v.r   c                 0    [         R                  " XU5      $ r1   )r   !ConstructPatchRequestFromArgsBetar3   s       r   r5   (UpdateBeta.ConstructPatchRequestFromArgs   s    ;;t r    )
rY   rZ   r[   r\   r]   r_   r.   r5   r`   ra   rb   s   @r   rd   rd   x   s"    D/ / r   rd   N)r]   googlecloudsdk.api_lib.alloydbr   r   googlecloudsdk.callioper   r   "googlecloudsdk.command_lib.alloydbr   r   googlecloudsdk.corer	   r
   r   DefaultUniverseOnlyReleaseTracksr    GAUpdateCommandr   ALPHABETArd   rk   r   r   <module>rv      s    ! 4 = ( . = 4 # * ) D%%(()ST S * Sl D%%++T->->-C-CD
 
 E
r   