
                            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  SSKJr  \	R$                  \	R&                  " \	R(                  R*                  \	R(                  R,                  \	R(                  R.                  5       " S S\	R0                  5      5       5       rg)zUpgrades a AlloyDB cluster.    )absolute_import)division)unicode_literals)api_util)cluster_operations)base)
exceptions)cluster_helper)flags)log)
properties)	resourcesc                   >    \ rS rSrSrSSS.r\S 5       rS rS r	S	r
g
)Upgrade#   z=Upgrade an AlloyDB cluster within a given project and region.z{description}zx        To upgrade a cluster, run:

          $ {command} my-cluster --region=us-central1 --version=POSTGRES_15
        )DESCRIPTIONEXAMPLESc                    [         R                  " U R                  5       5      n[        R                  R                  U5        [        R                  " U5        [        R                  " U5        [        R                  " X5        g)zmSpecifies additional command flags.

Args:
  parser: argparse.Parser: Parser object for command line inputs.
N)
r   GetMessagesModuleReleaseTrackr   
ASYNC_FLAGAddToParserr   	AddRegion
AddCluster
AddVersion)clsparseralloydb_messagess      'lib/surface/alloydb/clusters/upgrade.pyArgsUpgrade.Args5   sX      11#2B2B2DEOO'	OOF	V	V.    c                 0    [         R                  " XU5      $ )N)r
   ConstructUpgradeRequestFromArgs)selfr   cluster_refargss       r   r$   'Upgrade.ConstructUpgradeRequestFromArgsB   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                  R                   (       d!  ["        R$                  " U R&                  S5      eUR(                  R+                  U5      n[,        R.                  R1                  UR2                  SS9n[4        R6                  R9                  SR;                  UR=                  5       5      5        UR>                  (       d'  [@        RB                  " 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 target version for upgrade in --version flagz%alloydb.projects.locations.operations)
collectionzOperation ID: {}zUpgrading clusterF)"r   AlloyDBClientr   alloydb_clientr   resource_parserCreater   VALUEScoreproject	GetOrFailregionclusterr$   upgradeClusterRequestversionr	   MinimumArgumentException
parametersprojects_locations_clustersr   r   REGISTRYParseRelativeNamenamer   statusPrintformatNameasync_r   Await)	r%   r'   clientr/   r   r&   reqopop_refs	            r   RunUpgrade.RunI   sR    ##D$5$5$78F**N..((//-$$))11;;KK<<	 0 K 
.
.tC $$,,//
//
G  
	3	3	;	;C	@B11
C 2 F JJ'..v{{}=>;;
%t'8'8':E Ir"    N)__name__
__module____qualname____firstlineno____doc__detailed_helpclassmethodr    r$   rJ   __static_attributes__rL   r"   r   r   r   #   s7    
 F 		- 
/ 
/$r"   r   N)rQ   
__future__r   r   r   googlecloudsdk.api_lib.alloydbr   r   googlecloudsdk.callioper   r	   "googlecloudsdk.command_lib.alloydbr
   r   googlecloudsdk.corer   r   r   DefaultUniverseOnlyReleaseTracksr   ALPHABETAGASilentCommandr   rL   r"   r   <module>r`      s    " &  ' 3 = ( . = 4 # * ) T..33T5F5F5I5IFd   F Fr"   