
    (                     \   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)z#Restores a Compute Instance Backup.    )absolute_import)division)unicode_literals)
exceptions)util)BackupsClient)ComputeRestoreConfig)base)flags)compute_flags)logc                   @    \ rS rSrSrSSSS.r\S 5       rS rS	 r	S
r
g)Compute!   z$Restores a Compute Engine VM Backup.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                 P   [         R                  R                  U 5        [         R                  R                  U S5        [        R
                  " U S5        [        R                  " U 5        [        R                  " U 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        [        R.                  " U S5        [        R0                  " U S5        [        R2                  " U S5        [        R4                  " U S5        [        R6                  " U S5        [        R8                  " U S5        [        R:                  " U S5        [        R<                  " U S5        [        R>                  " U S5        [        R@                  " U S5        [        RB                  " U S5        [        RD                  " U S5        [        RF                  " U S5        [        RH                  " U S5        [        RJ                  " U S5        [        RL                  " U S5        [        RN                  " U S5        [        RP                  " U S5        [        RR                  " U S5        [        RT                  " U S5        [        RV                  " U S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AddTargetProjectArgAddNetworkInterfaceArgAddServiceAccountArgAddScopesArgAddCreateDiskArgAddDescriptionArgAddMetadataArgAddLabelsArg
AddTagsArgAddMachineTypeArgAddHostnameArgAddEnableUefiNetworkingArgAddThreadsPerCoreArgAddVisibleCoreCountArgAddAcceleratorArgAddMinCpuPlatformAddMaintenancePolicyArgAddPreemptibleArgAddRestartOnFailureArgAddMinNodeCpuArgAddProvisioningModelArgAddInstanceTerminationActionArgAddLocalSsdRecoveryTimeoutArgAddNodeAffinityFileArgAddReservationArgsAddEnableDisplayDeviceArgAddCanIpForwardArgAddPrivateIpv6GoogleAccessArgAddNetworkPerformanceConfigsArgAddConfidentialComputeArgAddDeletionProtectionArgAddResourceManagerTagsArgAddResourcePoliciesArgAddKeyRevocationActionTypeArgAddInstanceKmsKeyArg)parsers    0lib/surface/backup_dr/backups/restore/compute.pyArgsCompute.Args1   s    	OO'OOvt,	: V$""6*%%f-((7&&vu5vu-""651##FE2  /vu-VU+##FE2  /,,VU;&&vu5((7##FE2##FE2))&%8##FE2((7""651))&%811&%@//>((7$$VU3++FE:$$VU3//>11&%@++FE:**659++FE:((7//>&&vu5    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.	projects/-   r   z*projects/{}/regions/{}/resourcePolicies/{})
startswithrsplitformatappend)selfresource_policiesprojectzoneresource_policy_urispolicyregions          r?   _ParseResourcePoliciesCompute._ParseResourcePoliciesf   sh    #{++S!$Q'8?? 	
 !!&) $  rB   c                 B   [        5       nUR                  nUR                  R                  R	                  5       n[        5       nUR                  US'   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                  OS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$                  (       ae  UR$                  R'                  S5      (       d6  SR)                  UR                  UR                  UR$                  5      Ul        UR$                  US'   UR*                  (       a  UR*                  US'   UR,                  b  UR,                  US'   UR.                  (       a  UR.                  US'   UR0                  (       a  UR0                  US'   UR2                  (       as  UR2                  S   R'                  S5      (       dA  SR)                  UR                  UR                  UR2                  S   5      UR2                  S'   UR2                  US'   UR4                  (       a  UR4                  US'   UR6                  (       a  UR6                  US'   UR8                  b  UR8                  US'   UR:                  b  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RB                  (       a  URB                  US '   URD                  (       a  URD                  US!'   URF                  (       a  URF                  US"'   URH                  (       a  URH                  US#'   URJ                  b  URJ                  US$'   URL                  b  URL                  US%'   URN                  (       a  URN                  US&'   URP                  (       a  URP                  US''   URR                  (       a  URR                  US('   URT                  b  URT                  US)'   URV                  (       a  URV                  US*'   URX                  (       a4  U R[                  URX                  UR                  UR                  5      US+'   UR\                  (       a  UR\                  US,'   UR^                  (       a  UR^                  US-'    URa                  XE5      nU(       aN  [n        Rp                  " URs                  5       S.S/[j        Rt                  R)                  UR                  5      S09  U$ URw                  URy                  U5      S1R)                  URs                  5       5      SS29$ ! [b        Rd                   a+  n[f        Rh                  " U[j        Rl                  5      UeSnAff = f)3zConstructs 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
TargetZoneTargetProjectNetworkInterfacesServiceAccountScopesFNoScopesCreateDisksDescriptionMetadataLabelsTagsrD   z$projects/{}/zones/{}/machineTypes/{}MachineTypeHostnameNEnableUefiNetworkingThreadsPerCoreVisibleCoreCounttypez(projects/{}/zones/{}/acceleratorTypes/{}AcceleratorMinCpuPlatformMaintenancePolicyPreemptibleRestartOnFailureMinNodeCpusProvisioningModelInstanceTerminationActionLocalSsdRecoveryTimeoutNodeAffinityFileReservationAffinityReservationEnableDisplayDeviceCanIpForwardPrivateIpv6GoogleAccessTypeNetworkPerformanceConfigsConfidentialComputeDeletionProtectionResourceManagerTagsResourcePoliciesKeyRevocationActionTypeInstanceKmsKeybackupT)kindis_asyncdetailszDRestoring backup [{}]. (This operation could take up to 15 minutes.))operation_refmessage
has_result)=r   async_CONCEPTSr}   Parser	   nametarget_zonetarget_projectnetwork_interfaceservice_accountscopes	no_scopescreate_diskdescriptionmetadatalabelstagsmachine_typerG   rI   hostnameenable_uefi_networkingthreads_per_corevisible_core_countacceleratormin_cpu_platformmaintenance_policypreemptiblerestart_on_failuremin_node_cpuprovisioning_modelinstance_termination_actionlocal_ssd_recovery_timeoutnode_affinity_filereservation_affinityreservationenable_display_devicecan_ip_forwardprivate_ipv6_google_access_typenetwork_performance_configsconfidential_computedeletion_protectionresource_manager_tagsrL   rR   key_revocation_action_typeinstance_kms_keyRestoreComputeapitools_exceptions	HttpErrorr   HttpExceptionr   HTTP_ERROR_FORMATr   RestoredResourcerU   ASYNC_OPERATION_MESSAGEWaitForOperationGetOperationRef)rK   argsclientr   r}   restore_config	operationes           r?   RunCompute.Runt   s    _F{{H]]!!'')F)+N!YYN6#'#3#3N< &*&9&9N?#,0,B,Bn())-)=)=n%&{{!%nX37>>uN:&*&6&6n]#&*&6&6n]#}}#'==nZ {{!%nXyy#yynV))+66BII!1!143D3D
 '+&7&7n]#}}#'==nZ ""./3/J/Jn+,)-)>)>n%&+/+B+Bn'(f%00==6==##T%5%5t7G7G7O 	 
 '+&6&6n]#)-)>)>n%&,0,C,Cn()#&*&6&6n]#*+/+B+Bn'(&*&7&7n]#,0,C,Cn()''

*
* 01 &&

)
) ./ +/+B+Bn'(  .2.G.Gn*+&*&6&6n]#!!-.2.H.Hn*+&'+':':n^$++

.
. 23 ''

*
* 01   .2.G.Gn*++-1-E-En)*!!.2.H.Hn*++/+F+F

 
 $"5"5t7G7G,n'( &&

)
) ./ )-)>)>n%&G''?i 	
++-..55innE	  "",,Y7==CV>  # 
 
 (( G$$Q(>(>?QFGs   <Y Z3&ZZ N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr@   rR   r   __static_attributes__r   rB   r?   r   r   !   s;     - /$	- 26 26h HrB   r   N)r   
__future__r   r   r   apitools.base.pyr   r   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   rB   r?   <module>r      s    * '  ' > 0 A H 2 ( 5 E # D%%++T->->-A-ABYdll Y C YrB   