
                         \   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.                  " \R0                  R2                  \R0                  R4                  5       " S S\R6                  5      5       5       rg)Restores a Compute Disk Backup.    )absolute_import)division)unicode_literals)
exceptions)util)BackupsClient)DiskRestoreConfig)base)flags)
disk_flags)logc                   @    \ rS rSrSrSSSS.r\S 5       rS rS	 r	S
r
g)Disk!   r   zRestores the specified backupz{description}a~          To restore a backup `sample-backup` in project `sample-project` and location `us-central1`,
        with `sample-data-store` and `sample-backup-vault`, and additional target properties, run:

          $ {command} sample-backup --project=sample-project --location=us-central1 --backup-vault=sample-backup-vault --data-source=sample-data-source --<target-properties>
        )BRIEFDESCRIPTIONEXAMPLESc                 B   [         R                  R                  U 5        [         R                  R                  U S5        [        R
                  " U S5        [        R                  " U 5        [        R                  " U S5        [        R                  " U S5        [        R                  " U 5        [        R                  " U S5        [        R                  " U S5        [        R                  " U S5        [        R                  " U S5        [        R                  " U S5        [        R                   " U S5        [        R"                  " U S5        [        R$                  " U S5        [        R&                  " U S5        [        R(                  " U S5        [        R*                  " U S5        [        R,                  " U S5        [        R.                  " U S5        [        R0                  " U S5        [        R2                  " U S5        [        R4                  " U 5        g)zmSpecifies additional command flags.

Args:
  parser: argparse.Parser: Parser object for command line inputs.
Tz(The backup of a resource to be restored.FN)r   
ASYNC_FLAGAddToParser
SetDefaultr   AddBackupResourceArgr   
AddNameArgAddTargetZoneArgAddTargetRegionArgAddTargetProjectArgAddReplicaZonesArgAddGuestOsFeaturesArgsAddDescriptionArgAddLicensesArgAddLabelsArg
AddTypeArgAddAccessModeArgAddProvisionedIopsArgAddProvisionedThroughputArgAddArchitectureArgAddStoragePoolArg
AddSizeArgAddConfidentialComputeArgAddResourcePoliciesArgAddKmsKeyArgAddClearEncryptionKeyArg)parsers    -lib/surface/backup_dr/backups/restore/disk.pyArgs	Disk.Args1   sz    	OO'OOvt,	: &!.!!&%0""6*!!&%0%%fe4  /fe,FE*&%(.$$VU3**659!!&%0  /&%(((7%%fe4FE*''/    c                     / nU HQ  nUR                  S5      (       d'  UR                  SS5      S   nSR                  X&U5      nUR                  U5        MS     U$ )z"Parses the resource policies flag.z	projects/-   r   z*projects/{}/regions/{}/resourcePolicies/{})
startswithrsplitformatappend)selfresource_policiesprojectzoneresource_policy_urispolicyregions          r/   _ParseResourcePoliciesDisk._ParseResourcePoliciesS   se    #{++S!$Q'=DDV
 !!&) $  r2   c                 H   [        5       nUR                  nUR                  R                  R	                  5       n[        5       nUR                  US'   UR                  US'   UR                  (       a  UR                  US'   UR                  (       a  UR                  US'   UR                  (       a  UR                  US'   UR                  (       a  UR                  US'   UR                  (       a  UR                  US'   UR                  (       a  UR                  US'   UR                  (       a  UR                  US	'   UR                  (       a  UR                  US
'   UR                   (       a  UR                   US'   UR"                  (       a  UR"                  US'   UR$                  (       a  UR$                  US'   UR&                  (       a  UR&                  US'   UR(                  (       a  UR(                  US'   UR*                  (       a  UR*                  US'   UR,                  (       a  UR,                  US'   UR.                  US'   UR0                  (       a4  U R3                  UR0                  UR                  UR                  5      US'   [5        US5      (       a  UR6                  (       a  SUS'    UR9                  XE5      nU(       aN  [F        RH                  " URK                  5       SS[B        RL                  RO                  UR                  5      S9  U$ URQ                  URS                  U5      SRO                  URK                  5       5      SS9$ ! [:        R<                   a+  n[>        R@                  " U[B        RD                  5      UeSnAff = f)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.
NameTargetProject
TargetZoneTargetRegionReplicaZonesGuestOsFeaturesLicensesDescriptionType
AccessModeProvisionedIopsProvisionedThroughputArchitectureStoragePoolSizeKmsKeyLabelsConfidentialComputeResourcePoliciesclear_encryption_keyz+disk_restore_properties.disk_encryption_keyClearOverridesFieldMaskNbackupT)kindis_asyncdetailszCRestoring backup [{}]. (This operation could take upto 15 minutes.)F)operation_refmessage
has_result)*r	   async_CONCEPTSrY   Parser
   nametarget_projecttarget_zonetarget_regionreplica_zonesguest_os_featureslicensesdescriptiontypeaccess_modeprovisioned_iopsprovisioned_throughputarchitecturestorage_poolsizekms_keylabelsconfidential_computer;   rA   hasattrrW   RestoreDiskapitools_exceptions	HttpErrorr   HttpExceptionr   HTTP_ERROR_FORMATr   RestoredResourcerD   ASYNC_OPERATION_MESSAGEr8   WaitForOperationGetOperationRef)r:   argsclientr[   rY   restore_config	operationes           r/   RunDisk.Run_   s    _F{{H]]!!'')F&(N!YYN6&*&9&9N?#%)%5%5n\"'+'9'9n^$'+'9'9n^$*.*@*@n&'}}#'==nZ &*&6&6n]#yy#yynV%)%5%5n\"*.*?*?n&'""040K0Kn,-'+'8'8n^$&*&7&7n]#yy#yynV||!%nX{{!%nX.2.G.Gn*++/+F+F

 
 $"5"5t7G7G,n'( 	,--%% 8 ./G$$V<i 	
++-..55innE	  "",,Y7<<BF=  # 
 
 (( G$$Q(>(>?QFGs   ?M" "N!6&NN! N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr0   rA   r   __static_attributes__r   r2   r/   r   r   !   s;     ( /$	- 0 0B
 Tr2   r   N)r   
__future__r   r   r   apitools.base.pyr   rw   googlecloudsdk.api_lib.backupdrr   'googlecloudsdk.api_lib.backupdr.backupsr	   r
   googlecloudsdk.api_lib.utilgooglecloudsdk.callioper   #googlecloudsdk.command_lib.backupdrr   +googlecloudsdk.command_lib.backupdr.restorer   googlecloudsdk.corer   DefaultUniverseOnlyReleaseTracksReleaseTrackALPHAGACommandr   r   r2   r/   <module>r      s    & '  ' > 0 A E 2 ( 5 B # D%%++T->->-A-ABP4<< P C Pr2   