
    P                         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\R$                  5      r " S S\R$                  5      r " S S\R*                  5      rg)#Cloud Backup and DR Backups client.    )absolute_import)division)unicode_literals)util)ComputeUtil)DiskUtil)
exceptions)	resources)backupdr_v1_messagesc                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )ComputeRestoreConfig   Restore configuration.c                 >   > / SQn[         [        U ]
  " U/UQ70 UD6  g )N)'Name
TargetZoneTargetProjectNetworkInterfacesServiceAccountScopesNoScopesCreateDisksDescriptionMetadataLabelsTagsMachineTypeHostnameEnableUefiNetworkingThreadsPerCoreVisibleCoreCountAcceleratorMinCpuPlatformMaintenancePolicyPreemptibleRestartOnFailureMinNodeCpusProvisioningModelInstanceTerminationActionLocalSsdRecoveryTimeoutNodeAffinityFileReservationAffinityReservationEnableDisplayDeviceCanIpForwardPrivateIpv6GoogleAccessTypeNetworkPerformanceConfigsConfidentialComputeDeletionProtectionResourceManagerTagsResourcePoliciesKeyRevocationActionTypeInstanceKmsKey)superr   __init__selfargskwargssupported_flags	__class__s       .lib/googlecloudsdk/api_lib/backupdr/backups.pyr:   ComputeRestoreConfig.__init__!   s'    (OR 

.PPP     __name__
__module____qualname____firstlineno____doc__r:   __static_attributes____classcell__r@   s   @rA   r   r      s    *Q *QrC   r   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )DiskRestoreConfigN   r   c                 >   > / SQn[         [        U ]
  " U/UQ70 UD6  g )N)r   r   TargetRegionr   ReplicaZonesr   r   LicensesGuestOsFeaturesr3   Type
AccessModer6   ProvisionedIopsKmsKeyArchitectureSizeProvisionedThroughputStoragePoolClearOverridesFieldMask)r9   rO   r:   r;   s       rA   r:   DiskRestoreConfig.__init__Q   s&    O, 

T+OMdMfMrC   rD   rE   rM   s   @rA   rO   rO   N   s    N NrC   rO   c                      ^  \ rS rSrSrU 4S jrS\R                  S\R                  4S jr
S\4S jrS\4S	 jrS
 rS r   SS jrSrU =r$ )BackupsClientk   r   c                 `   > [         [        U ]  5         U R                  R                  U l        g N)r9   ra   r:   client3projects_locations_backupVaults_dataSources_backupsservice)r<   r@   s    rA   r:   BackupsClient.__init__n   s$    	-')GG 	LrC   resourcereturnc                     [         R                  " 5       nU R                  R                  UR	                  5       US9nU R
                  R                  U5      $ )zlDeletes the given backup.

Args:
  resource: The backup to be deleted.

Returns:
  A long running operation
)name	requestId)command_utilGenerateRequestIdmessagesDBackupdrProjectsLocationsBackupVaultsDataSourcesBackupsDeleteRequestRelativeNamerg   Delete)r<   ri   
request_idrequests       rA   rs   BackupsClient.Deletet   sQ     //1Jmm``""$
 a G <<w''rC   restore_configc                   ^ U R                   R                  5       nU R                   R                  TS   S9Ul        U R                   R	                  TS   TS   S9Ul        ST;   aP  [        R                  " U R                   TS   5      nU(       a%  UR                  R                  R                  U5        [        R                  " U R                   TR                  SS5      TR                  S	TR                  S
S5      (       a  / OS5      5      nU(       a  UUR                  l        ST;   aP  [        R                  " U R                   TS   5      nU(       a%  UR                  R                  R                  U5        ST;   a  TS   UR                  l        ST;   a<  [        R                   " U R                   TS   5      nU(       a  UUR                  l        ST;   a;  [        R$                  " U R                   TS   5      nU(       a  XR                  l        ST;   a3  U R                   R)                  TS   S9n	U	(       a  XR                  l        ST;   a  TS   UR                  l        ST;   a  TS   UR                  l        [        R0                  " U R                   TR                  SS5      TR                  SS5      TR                  SS5      5      n
U
(       a  U
UR                  l        ST;   a<  [        R4                  " U R                   TS   5      nU(       a  UUR                  l        ST;   a  TS   UR                  l        [;        U4S jS 5       5      (       a)  U R                   R=                  5       UR                  l        ST;   aA  U R                   R<                  RA                  TS   5      UR                  R>                  l!        ST;   a  TS   UR                  R>                  l"        ST;   a  TS   UR                  R>                  l#        ST;   a  TS   UR                  R>                  l$        ST;   aA  U R                   R<                  RK                  TS   5      UR                  R>                  l&        S T;   aA  U R                   R<                  RO                  TS    5      UR                  R>                  l(        S!T;   a5  U R                   RS                  TS!   S"9UR                  R>                  l*        S#T;   a=  [        RV                  " U R                   TS#   5      UR                  R>                  l,        S$T;   aD  [        RZ                  " U R                   TS$   TR                  S%S5      5      UR                  l.        S&T;   a+  U R                   R_                  TS&   S'9UR                  l0        S(T;   a  TS(   UR                  l1        S)T;   a7  U R                   R                  Re                  TS)   5      UR                  l3        S*T;   ad  U R                   Ri                  5       nS+TS*   ;   a0  U R                   Rh                  Rk                  TS*   S+   5      Ul6        UUR                  l7        S,T;   a+  U R                   Rq                  TS,   S-9UR                  l9        S.T;   a  TS.   UR                  l:        S/T;   a  U R                   Rw                  U R                   Rv                  Ry                  TS/   R{                  5        VVs/ s H2  u  pU R                   Rv                  Rx                  R}                  XS09PM4     snnS19S29UR                  l?        S3T;   a  TS3   UR                  l@        S4T;   a7  U R                   R                  R                  TS4   5      UR                  lB        S5T;   a+  U R                   R                  TS5   S69UR                  lD        U R                   R                  UR                  5       US79nU R                  R                  U5      $ s  snnf )8Restores the given backup.

Args:
  resource: The backup to be restored.
  restore_config: Restore configuration.

Returns:
  A long running operation
r   rl   r   r   zoneprojectr   r   Nr   r   Fr   r   r   r   r   )itemsr   r   r    r!   r"   r#   r$   c              3   .   >#    U  H
  nUT;   v   M     g 7frd   rD   ).0flagrw   s     rA   	<genexpr>/BackupsClient.RestoreCompute.<locals>.<genexpr>	  s!      	
D 		
s   )r%   r&   r'   r(   r)   r*   r+   r,   r%   r&   r'   r(   r)   r*   r+   )secondsr,   r-   r.   r/   )enableDisplayr0   r1   r2   ztotal-egress-bandwidth-tierr3   )enableConfidentialComputer4   r5   )keyvalue)additionalProperties)resourceManagerTagsr6   r7   r8   
kmsKeyNamerl   restoreBackupRequest)Irp   RestoreBackupRequest ComputeInstanceRestoreProperties computeInstanceRestoreProperties ComputeInstanceTargetEnvironment computeInstanceTargetEnvironmentr   ParserNetworkInterfacenetworkInterfacesextendParserServiceAccountgetserviceAccountsParserDisksdisksdescriptionParseMetadatametadataParseLabelslabelsr   tagsmachineTypehostnameParseAdvancedMachineFeaturesadvancedMachineFeaturesParseAcceleratorguestAcceleratorsminCpuPlatformany
Scheduling
scheduling OnHostMaintenanceValueValuesEnumonHostMaintenancepreemptibleautomaticRestartminNodeCpus ProvisioningModelValueValuesEnumprovisioningModel(InstanceTerminationActionValueValuesEnuminstanceTerminationActionSchedulingDurationlocalSsdRecoveryTimeoutGetNodeAffinitiesFromFilenodeAffinitiesParseReservationAffinityreservationAffinityDisplayDevicedisplayDevicecanIpForward&PrivateIpv6GoogleAccessValueValuesEnumprivateIpv6GoogleAccessNetworkPerformanceConfig'TotalEgressBandwidthTierValueValuesEnumtotalEgressBandwidthTiernetworkPerformanceConfigConfidentialInstanceConfigconfidentialInstanceConfigdeletionProtectionInstanceParamsResourceManagerTagsValuer~   AdditionalPropertyparamsresourcePolicies&KeyRevocationActionTypeValueValuesEnumkeyRevocationActionTypeCustomerEncryptionKeyinstanceEncryptionKeyEBackupdrProjectsLocationsBackupVaultsDataSourcesBackupsRestoreRequestrr   rg   Restore)r<   ri   rw   restore_requestnetwork_interfaces_messageservice_accounts_messagedisks_messagemetadata_messagelabels_messagetags_message!advanced_machine_features_messageaccelerators_messagenetwork_performance_configsr   r   ru   s     `             rA   RestoreComputeBackupsClient.RestoreCompute   s    mm88:O66' 	7 	
 4 	66-"?3 	7 	
 4 n,#.#E#E
--(;<$  
$88JJQQ&	

  +??+T2N..z5AAbt	
   
" 66F
 &!--
--6m 
88>>EE	

 &

' 66B
 ^#$22
--
3 
 	88A
 >!"..
--1n 
BP88? ]]''nV.D'El	@L88= &

' 66B
 ^#

$ 66? 	00MM5t</6148		
 & )
+ 66N
 &(99
--6 
  	88J
 >)
)
* 66E
  	
   --
"
"
$ 66A
 n,VZVcVcVnVn  WP  WP
,
-Wo66AAS
 &P^
Qo66AAM
 ^+Uc
Vo66AAR
 &P^
Qo66AAM
 n,VZVcVcVnVn  WP  WP
,
-Wo66AAS
 #n4^b^k^k^v^v  _`  _`
4
5_o66AA[
 !N2\`\i\i\|\| !:; ]} ]o66AAY
 ^+S^SxSx
--(:;To66AAP
 .

.
.mm23  5 66J .
--
%
%*+@A &  66D '

( 66C
 %6QUQ^Q^QQ  Rg  Rg
6
7Ro66N
 #n4$(MM$J$J$L!
'789 @D}}?e?e  @N  @N67-@
#< & 66O
 .TXTaTaT|T|$23H$I U} Uo66Q
 ~-
-
. 66I
 .@D@\@\"mm::SS
 %3+%EG%	$%jc --..GGZZ [ %	$ T 	 A] Ao66= ^+
+
, 66G
 !N2QUQ^Q^QQ  Rg  Rg
2
3Ro66N
 >)
--
-
-'(89 .  66L mmaa""$? b G <<((E$s   +9ac                    U R                   R                  5       nU R                   R                  US   S9Ul        UR	                  SS5      nUR	                  SS5      nUc  Uc  [
        R                  " SS5      eUb  Ub  [
        R                  " SS5      eUb&  U R                   R                  US   US	   S
9Ul        O,Ub)  U R                   R                  US   US	   US   S9Ul
        SU;   a  US   UR                  l        SU;   a;  [        R                  " U R                   US   5      nU(       a  XcR                  l        SU;   a  US   UR                  l        SU;   a  US   UR                  l        SU;   a  US   UR                  l        SU;   a  US   UR                  l        SU;   a  US   UR                  l        SU;   a7  U R                   R                  R)                  US   5      UR                  l        SU;   a7  U R                   R                  R-                  US   5      UR                  l        SU;   a  US   UR                  l        SU;   a  US   UR                  l        SU;   a  US   UR                  l        SU;   a+  U R                   R7                  US   S9UR                  l        SU;   a
  US   Ul        SU;   ai  / nUS    HN  nUR=                  U R                   R?                  U R                   R>                  RA                  U5      S95        MP     XsR                  l!        U R                   RE                  URG                  5       US9n	U RH                  RK                  U	5      $ )ry   r   rz   r   NrR   target_zonez9Target zone or target region is required for disk restorezGBoth Target zone and target region cannot be specified for disk restorer   r{   rS   )regionr}   replicaZonesr   r   rT   r3   rV   r[   r]   rZ   rW   r6   rX   r\   rY   r   r^   rU   )typer   )&rp   r   DiskRestorePropertiesdiskRestorePropertiesr   r
   InvalidArgumentExceptionDiskTargetEnvironmentdiskTargetEnvironmentRegionDiskTargetEnvironmentregionDiskTargetEnvironmentr   r	   r   r   licensesr   r   sizeGbstoragePoolArchitectureValueValuesEnumarchitectureAccessModeValueValuesEnum
accessModeresourcePolicyprovisionedIopsprovisionedThroughputr   diskEncryptionKeyclearOverridesFieldMaskappendGuestOsFeatureTypeValueValuesEnumguestOsFeaturer   rr   rg   r   )
r<   ri   rw   r   r   target_regionr   guest_os_featuresfeatureru   s
             rA   RestoreDiskBackupsClient.RestoreDisk  s    mm88:O,0MM,O,OF# -P -O) !$$\48K"&&~t<M}4//

E 
 =#<//
 
 
--
-
-!,/$_5 .  + 
	"
--
3
3#N3$_5).9 4  1 &:H
;o++7
 >!++
--1n 
7E--4 ^#7E
8o++4
 .
.
/ ++E
 3A&3Io++0 5CF5Ko++2 &:H
;o++7
 '
--
-
-
I
I^, ++8 ~%
--
-
-
G
G\* ++6 ^+=K
>o++:
 N*>L
?o++;
 .0
0
1 ++A
 >!
--
-
-'1 .  ++= !N20>
#1o-
 N*#$56'  MM((]]11EEgN ) 	
 7 >O++:mmaa""$? b G <<((rC   c                 ^    U R                   R                  5       nUb  Xl        Ub  X#l        U$ rd   )rp   BackupenforcedRetentionEndTime
expireTime)r<   enforced_retentionexpire_timeupdated_backups       rA   ParseUpdateBackupsClient.ParseUpdateB  s2    ]]))+N%0B-"-rC   c                     [         R                  " 5       nU R                  R                  UUR	                  5       UUS9nU R
                  R                  U5      $ )N)backuprl   
updateMaskrm   )rn   ro   rp   CBackupdrProjectsLocationsBackupVaultsDataSourcesBackupsPatchRequestrr   rg   Patch)r<   ri   r	  update_maskrt   ru   s         rA   UpdateBackupsClient.UpdateJ  sV    //1Jmm__""$	 ` G <<g&&rC   c                     U R                   R                  UR                  5       UUUUS9nU R                  R	                  U5      $ )N)parentresourceTypepageSizefilterorderBy)rp   RBackupdrProjectsLocationsBackupVaultsDataSourcesBackupsFetchForResourceTypeRequestrr   rg   FetchForResourceType)r<   ri   resource_typefilter_expression	page_sizeorder_byru   s          rA   r  "BackupsClient.FetchForResourceTypeT  sM     mmnn$$&"  o G <<,,W55rC   )rg   )NNN)rF   rG   rH   rI   rJ   r:   r   Resourcer   	Operationrs   r   r   rO   r   r  r  r  rK   rL   rM   s   @rA   ra   ra   k   sk    +((((%%($d)5I d)L	T)2C T)l' 6 6rC   ra   N)rJ   
__future__r   r   r   googlecloudsdk.api_lib.backupdrr   ,googlecloudsdk.api_lib.backupdr.restore_utilr   r	   googlecloudsdk.callioper
   #googlecloudsdk.command_lib.backupdrrn   googlecloudsdk.corer   1googlecloudsdk.generated_clients.apis.backupdr.v1r   RestrictedDictr   rO   BackupDrClientBasera   rD   rC   rA   <module>r(     se    * &  ' 0 D A . D ) R-Q4.. -Q`N++ N:x6D++ x6rC   