
                             d Z ddlZddlmZmZmZmZ ddlmZ ddl	m
Z
 ddlm
Z ddlmZ  G d dej                        Z G d	 d
e
j"                        Zy)z)Cloud Backup and DR Backup Vaults client.    N)AnyOptionalMappingSequence)
list_pager)util)backupdr_v1_messagesc                       e Zd ZdZdZdZdZy)AccessRestrictionzwithin-projectz
within-orgunrestrictedz"within-org-but-unrestricted-for-baN)__name__
__module____qualname__WITHIN_PROJECTWITHIN_ORGANIZATIONUNRESTRICTED"WITHIN_ORG_BUT_UNRESTRICTED_FOR_BA     4lib/googlecloudsdk/api_lib/backupdr/backup_vaults.pyr   r      s    #.$,'K$r   r   c                   <    e Zd ZdZ fdZdededee   deeef   dee   dee   d	ee   d
ee	j                     defdZdee   fdZdee   fdZdedededefdZ	 	 ddedee   fdZdee   dee   dee   dee   fdZdededee   defdZdefdZ xZS )BackupVaultsClientz(Cloud Backup and DR Backup Vault client.c                 `    t         t        |           | j                  j                  | _        y )N)superr   __init__clientprojects_locations_backupVaultsservice)self	__class__s    r   r   zBackupVaultsClient.__init__$   s"    	
d,.;;>>DLr   $support_backup_retention_inheritancebackup_min_enforced_retentiondescriptionlabelseffective_timeaccess_restrictionbackup_retention_inheritanceencryption_configreturnc
           	         |j                         j                         }
|j                         }| j                  j	                  ||||| j                  |      |	      }|r| j                  |      |_        t        j                         }| j                  j                  |||
|      }| j                  j                  |      S )N)&backupMinimumEnforcedRetentionDurationr#   r$   effectiveTimeaccessRestrictionencryptionConfig)backupVaultbackupVaultIdparent	requestId)ParentRelativeNameNamemessagesBackupVaultParseAccessRestrictionEnum#ParseBackupRetentionInheritanceEnumbackupRetentionInheritancecommand_utilGenerateRequestId2BackupdrProjectsLocationsBackupVaultsCreateRequestr   Create)r   resourcer!   r"   r#   r$   r%   r&   r'   r(   r1   backup_vault_idbackup_vault
request_idrequests                  r   r>   zBackupVaultsClient.Create(   s     __++-FmmoO==,,/L$99:LM* - L ,

2
23O
P - //1JmmNN %	 O G <<w''r    backup_retention_inheritance_strc                    |*| j                   j                  j                  j                  S |dk(  r*| j                   j                  j                  j                  S |dk(  r*| j                   j                  j                  j
                  S y )Nzinherit-vault-retentionzmatch-backup-expire-time)r6   r7   )BackupRetentionInheritanceValueValuesEnum(BACKUP_RETENTION_INHERITANCE_UNSPECIFIEDINHERIT_VAULT_RETENTIONMATCH_BACKUP_EXPIRE_TIME)r   rD   s     r   r9   z6BackupVaultsClient.ParseBackupRetentionInheritanceEnumM   s     (/
--
#
#
M
M
v
v 
*-F	F
--
#
#
M
M
e
e 
*-G	G
--
#
#
M
M
f
f 
Hr   access_restriction_strc                 t   |*| j                   j                  j                  j                  S t	        |      }|t        j
                  k(  r*| j                   j                  j                  j
                  S |t        j                  k(  r*| j                   j                  j                  j                  S |t        j                  k(  r*| j                   j                  j                  j                  S |t        j                  k(  r*| j                   j                  j                  j                  S t        d|       )NzInvalid access restriction: )	r6   r7    AccessRestrictionValueValuesEnumr   r   r   r   r   
ValueError)r   rJ   r&   s      r   r8   z-BackupVaultsClient.ParseAccessRestrictionEnum]   s
   %
--
#
#
D
D
X
X ++AB.===
--
#
#
D
D
S
S 
0DD	D
--
#
#
D
D
X
X 
0==	=
--
#
#
D
D
Q
Q 	??	@ --
#
#
D
D
g
g 56L5MNOOr   ignore_inactive_datasourcesignore_backup_plan_referencesallow_missingc                     t        j                         }| j                  j                  |j	                         ||||      }| j
                  j                  |      S )N)nameforceignoreBackupPlanReferencesallowMissingr2   )r;   r<   r6   2BackupdrProjectsLocationsBackupVaultsDeleteRequestr4   r   Delete)r   r?   rN   rO   rP   rB   rC   s          r   rW   zBackupVaultsClient.Delete{   s[     //1JmmNN""$)#@" O G <<w''r   	page_sizec                     | j                   j                  |j                               }t        j                  | j
                  |d||d      S )N)r1   pageSizebackupVaults)batch_size_attribute
batch_sizelimitfield)r6   0BackupdrProjectsLocationsBackupVaultsListRequestr4   r   YieldFromListr   )r   
parent_refr^   rX   rC   s        r   ListzBackupVaultsClient.List   sU     mmLL&&( M G ##' r   c                     | j                   j                         }|||_        |||_        |dk7  r||_        || j                  |      }||_        |S )NNones)r6   r7   r#   r,   r+   r8   r-   )r   r#   r%   r"   r&   
updated_bvaccess_restriction_enums          r   ParseUpdatezBackupVaultsClient.ParseUpdate   sq     **,J*j!!/j$/
' 7 % $ ? ?
! &=j"r   force_updateforce_update_access_restrictionupdate_maskc                     t        j                         }| j                  j                  ||j	                         ||||      }| j
                  j                  |      S )N)r/   rR   
updateMaskr2   rS   forceUpdateAccessRestriction)r;   r<   r6   1BackupdrProjectsLocationsBackupVaultsPatchRequestr4   r   Patch)r   r?   rA   ri   rj   rk   rB   rC   s           r   UpdatezBackupVaultsClient.Update   s^     //1JmmMM ""$%D N G <<g&&r   c                     | j                   j                  |j                               }| j                  j	                  |      S )N)rR   )r6   /BackupdrProjectsLocationsBackupVaultsGetRequestr4   r   Get)r   r?   rC   s      r   DescribezBackupVaultsClient.Describe   s?    mmKK""$ L G <<G$$r   )Nd   )r   r   r   __doc__r   boolstrr   r   r	   EncryptionConfigr   r>   r9   r8   rW   intr   rc   rh   rq   ru   __classcell__)r    s   @r   r   r   !   s}   0?#( -1#( &)	#(
 C=#( c3h#( sm#( #3-#( %-SM#( ""6"G"GH#( #(J.6sm Px} P<( $(( &*	(
 ( (* 	 	
 }&C= sm &.c]	
 #3-.' 	'
 (,' C=' '&%# %r   r   )rw   enumtypingr   r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.backupdrr   #googlecloudsdk.command_lib.backupdrr;   1googlecloudsdk.generated_clients.apis.backupdr.v1r	   Enumr   BackupDrClientBaser   r   r   r   <module>r      sE    0  3 3 ' 0 D RL		 Ln%00 n%r   