
    d                         S r SSKJr  SSKJr  SSKJ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\
R                  5      rg)z%Command for spanner restore database.    )absolute_import)division)unicode_literalsN)database_operations)	databases)base)resource_args)logc                   x    \ rS rSrSr\R                  " S5      \R                  " S5      S.r\S 5       r	S r
Srg	)
Restore   z!Restore a Cloud Spanner database.zB
          Restores from a backup to a new Cloud Spanner database.a  
          To restore a backup, run:

            $ {command} --source-backup=BACKUP_ID --source-instance=SOURCE_INSTANCE --destination-database=DATABASE --destination-instance=INSTANCE_NAME

          To restore a backup using relative names, run:

            $ {command} --source-backup=projects/PROJECT_ID/instances/SOURCE_INSTANCE_ID/backups/BACKUP_ID --destination-database=projects/PROJECT_ID/instances/SOURCE_INSTANCE_ID/databases/DATABASE_ID
      )DESCRIPTIONEXAMPLESc                     [         R                  " U 5        [        R                  R	                  U 5        U R                  5       n[         R                  " U5        [         R                  " US5        g)z Register flags for this command.z%to restore the Cloud Spanner databaseN)r	   AddRestoreResourceArgsr   
ASYNC_FLAGAddToParseradd_argument_groupAddRestoreDbEncryptionTypeArgAddKmsKeyResourceArg)parserencryption_group_parsers     (lib/surface/spanner/databases/restore.pyArgsRestore.Args1   sW     ((0OO'$779//0GH&&'>'NP    c                 0   UR                   R                  R                  5       nUR                   R                  R                  5       n[        R
                  " U5      n[        R                  " U5      n[        R                  " X2XE5      nUR                  (       a8  [        R                  R                  SR                  UR                  5      5      $ [        R                   " USR                  UR#                  5       UR#                  5       5      5      $ )zThis is what gets called when the user runs this command.

Args:
  args: an argparse namespace. All the arguments that were provided to this
    command invocation.

Returns:
  A message indicating database is restoring or when async, the operation.
z/Restore database in progress. Operation name={}z$Restoring backup {0} to database {1})CONCEPTSsourceParsedestinationr	   GetRestoreDbEncryptionTypeGetAndValidateKmsKeyNamer   r   async_r
   statusPrintformatnamer   AwaitName)selfargs
backup_refdatabase_refencryption_typekms_keyops          r   RunRestore.Run;   s     %%++-J==,,224L#>>tDO44T:G			<_	NB{{ZZ
;
B
B277
KM M$$
.55joo6G6B6G6G6I	KL Lr    N)__name__
__module____qualname____firstlineno____doc__textwrapdedentdetailed_helpstaticmethodr   r2   __static_attributes__r4   r   r   r   r      sP    ) // E F // 
 -  P PLr   r   )r9   
__future__r   r   r   r:   googlecloudsdk.api_lib.spannerr   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.spannerr	   googlecloudsdk.corer
   RestoreCommandr   r4   r   r   <module>rE      s9    , &  '  > 4 ( < #3Ld!! 3Lr   