
    h                        S r SSKJr  SSKJr  SSKJr  SSKrSSK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  \R0                  \R2                  " \R4                  R6                  5       " S S\R8                  5      5       5       r\R2                  " \R4                  R<                  5       " S S\5      5       r\R2                  " \R4                  R@                  5       " S S\5      5       r!g)z4Migrates a Cloud SQL instance to an AlloyDB cluster.    )absolute_import)division)unicode_literalsN)messages)api_util)cluster_operations)base)cluster_helper)flags)resource_args)log)
properties)	resourcesc                       \ rS rSrSrSSS.r\S\R                  SS4S	 j5       r	S
\
R                  S\R                  S\R                  S\R                   4S jrS\R                  S\R                   4S jrSrg)MigrateCloudSqlGA'   zTMigrate Cloud SQL instance to an AlloyDB cluster using an existing Cloud SQL backup.z{description}a+            To migrate a Cloud SQL instance to an AlloyDB cluster from a backup, run:

              $ {command} my-alloydb-cluster --region=us-central1 --cloud-sql-project-id=my-cloud-sql-project-id --cloud-sql-instance-id=my-cloud-sql-cluster-id --cloud-sql-backup-id=my-cloud-sql-backup-id
        )DESCRIPTIONEXAMPLESparserreturnNc                 t   [         R                  " U R                  5       5      n[        R                  R                  U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " USSS9  [        R                  " XU R                  5       SS9  [        R                  " XR                  5       5        [        R                   " XU R                  5       5        [        R"                  " U5        [        R$                  " X5        [        R&                  " X5        [        R(                  " U5        [        R*                  " U5        [        R,                  " X5        g)z\Specifies additional command flags.

Args:
  parser: Parser object for command line inputs.
clusterzjThe 'AlloyDB Service Agent' service account must hold permission 'Cloud KMS CryptoKey Encrypter/Decrypter')permission_infoF)updateN)r   GetMessagesModuleReleaseTrackr	   
ASYNC_FLAGAddToParserr   	AddRegion
AddCluster
AddNetworkAddPasswordAddAllocatedIPRangeNamekms_resource_argsAddKmsKeyResourceArgAddAutomatedBackupFlagsAddContinuousBackupConfigFlagsAddDatabaseVersionAddEnablePrivateServiceConnectAddMaintenanceWindowAddSubscriptionTypeAddTagsAddMigrateCloudSqlFlagsAddDenyMaintenancePeriod)clsr   alloydb_messagess      1lib/surface/alloydb/clusters/migrate_cloud_sql.pyArgsMigrateCloudSqlGA.Args5   s1     11#2B2B2DEOO'	OOF	V	V	f	!!&)**9	 
!!#"2"2"4U 
((1A1A1CD	Vs7G7G7IJ	((0	v8	f7	MM&	!!&)	""6<    r0   location_refargsc                 0    [         R                  " XU5      $ a5  Constructs the Migrate Cloud Sql request.

Args:
  alloydb_messages: The AlloyDB messages module.
  location_ref: The location reference for the request.
  args: An object that contains the values for the arguments specified in
    the .Args() method.

Returns:
  The Migrate Cloud Sql request based on args.
)r
   )ConstructMigrateCloudSqlRequestFromArgsGAselfr0   r5   r6   s       r1   'ConstructMigrateCloudSqlRequestFromArgs9MigrateCloudSqlGA.ConstructMigrateCloudSqlRequestFromArgsW   s    " CC r4   c                    [         R                  " U R                  5       5      nUR                  nUR                  nUR
                  R                  S[        R                  R                  R                  R                  UR                  S9nU R                  XEU5      nUR                  R                  U5      n[         R"                  R%                  UR&                  SS9n[(        R*                  R-                  SR/                  UR1                  5       5      5        UR2                  (       d&  [4        R6                  " USU R                  5       5        U$ )zConstructs request from args, and sends it to the server.

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

Returns:
  ProcessHttpResponse of the request made.
zalloydb.projects.locations)
projectsIdlocationsIdz%alloydb.projects.locations.operations)
collectionzOperation ID: {}zMigrating Cloud SQL)r   AlloyDBClientr   alloydb_clientr0   resource_parserCreater   VALUEScoreproject	GetOrFailregionr<   projects_locations_clustersRestoreFromCloudSQLr   REGISTRYParseRelativeNamenamer   statusPrintformatNameasync_r   Await)	r;   r6   clientrC   r0   r5   reqopop_refs	            r1   RunMigrateCloudSqlGA.Runl   s    ##D$5$5$78F**N..))00$$$))11;;KK 1 L 
6
6C 
	3	3	G	G	LB11
C 2 F JJ'..v{{}=>;;
'):):)< Ir4    )__name__
__module____qualname____firstlineno____doc__detailed_helpclassmethodargparsePARSERr2   types
ModuleTyper   Resource	Namespacer   Messager<   rZ   __static_attributes__r\   r4   r1   r   r   '   s     ] %- = =D = =B(( && 	
 * h((  X-=-=  r4   r   c                      ^  \ rS rSrSr\S\R                  SS4U 4S jj5       rS\	R                  S\R                  S	\R                  S\R                  4S
 jrSrU =r$ )MigrateCloudSqlBeta   Migrate Cloud SQL instance to an AlloyDB cluster.

This command migrates a Cloud SQL instance to an AlloyDB cluster using an
existing Cloud SQL backup.
r   r   Nc                 ,   > [         [        U ]  U5        g N)superrm   r2   r/   r   	__class__s     r1   r2   MigrateCloudSqlBeta.Args   s    	
s(0r4   r0   r5   r6   c                 0    [         R                  " XU5      $ r8   )r
   +ConstructMigrateCloudSqlRequestFromArgsBetar:   s       r1   r<   ;MigrateCloudSqlBeta.ConstructMigrateCloudSqlRequestFromArgs   s    " EE r4   r\   r]   r^   r_   r`   ra   rc   rd   re   r2   rf   rg   r   rh   ri   r   rj   r<   rk   __classcell__rt   s   @r1   rm   rm      sv     1 1D 1 1(( && 	
  r4   rm   c                      ^  \ rS rSrSr\S\R                  SS4U 4S jj5       rS\	R                  S\R                  S	\R                  S\R                  4S
 jrSrU =r$ )MigrateCloudSqlAlpha   ro   r   r   Nc                 ,   > [         [        U ]  U5        g rq   )rr   r}   r2   rs   s     r1   r2   MigrateCloudSqlAlpha.Args   s    	
)&1r4   r0   r5   r6   c                 0    [         R                  " XU5      $ r8   )r
   ,ConstructMigrateCloudSqlRequestFromArgsAlphar:   s       r1   r<   <MigrateCloudSqlAlpha.ConstructMigrateCloudSqlRequestFromArgs   s    " FF r4   r\   ry   r{   s   @r1   r}   r}      sv     2 2D 2 2(( && 	
  r4   r}   )"ra   
__future__r   r   r   rd   rf   apitools.base.protorpcliter   googlecloudsdk.api_lib.alloydbr   r   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.alloydbr
   r   googlecloudsdk.command_lib.kmsr   r$   googlecloudsdk.corer   r   r   DefaultUniverseOnlyReleaseTracksr   GARestoreCommandr   BETArm   ALPHAr}   r\   r4   r1   <module>r      s    ; &  '   / 3 = ( = 4 M # * ) D%%(()c++ c * cL D%%**++  ,B D%%++,,  -r4   