
    2+                         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
\5      r " S S\5      r " S S\5      rg)zPCommands for interacting with the Cloud NetApp Files Backup Vaults API resource.    )
list_pager)	constants)util)waiter)base)log)	resourcesc                       \ rS rSrSr\R                  R                  4S jr\	S 5       r
\	S 5       rS rS r       SS	 jrSS
 jrS rS rS rS r   SS jrS rSrg)BackupVaultsClient   zLWrapper for working with Backup Vaults in the Cloud NetApp Files API Client.c                    U[         R                  R                  :X  a  [        5       U l        g U[         R                  R
                  :X  a  [        5       U l        g [        SR                  [        R                  U   5      5      e)Nz [{}] is not a valid API version.)r   ReleaseTrackBETABetaBackupVaultsAdapter_adapterGABackupVaultsAdapter
ValueErrorformatnetapp_utilVERSION_MAP)selfrelease_tracks     9lib/googlecloudsdk/api_lib/netapp/backup_vaults/client.py__init__BackupVaultsClient.__init__   sg    ))...-/dm	$++..	.)+dm9@@

!
!-
02 3 3    c                 .    U R                   R                  $ N)r   clientr   s    r   r    BackupVaultsClient.client'   s    ==r   c                 .    U R                   R                  $ r   )r   messagesr!   s    r   r$   BackupVaultsClient.messages+   s    ==!!!r   c                     [         R                  " [         R                  " U R                  R                  5      USR                  UR                  5       5      5      $ )zWaits on the long-running operation until the done field is True.

Args:
  operation_ref: The operation reference.

Raises:
  waiter.OperationError: If the operation contains an error.

Returns:
  The 'response' field of the Operation.
zWaiting for [{0}] to finish)r   WaitForCloudOperationPollerNoResourcesr    projects_locations_operationsr   Name)r   operation_refs     r   WaitForOperation#BackupVaultsClient.WaitForOperation/   sL     >>..KK55	
 	%,,]-?-?-AB r   c                 v   U R                   R                  UR                  5       R                  5       UR	                  5       US9nU R
                  R                  R                  U5      nU(       a  U$ [        R                  R                  UR                  [        R                  S9nU R                  U5      $ )z#Create a Cloud NetApp Backup Vault.)parentbackupVaultIdbackupVault
collection)r$   0NetappProjectsLocationsBackupVaultsCreateRequestParentRelativeNamer*   r    projects_locations_backupVaultsCreater	   REGISTRYParseRelativeNamenamer   OPERATIONS_COLLECTIONr,   )r   backupvault_refasync_backup_vaultrequest	create_opr+   s          r   CreateBackupVault$BackupVaultsClient.CreateBackupVaultC   s    mmLL%%'446%**,  M G
 ;;BB7KI&&889#B#B 9 M   //r   Nc                     U R                   R                  5       nXl        Ub  X(l        Ub  X8l        XHl        XXl        Ub  U R                  U5      Ul        Ub  Xxl	        U$ )a%  Parses the command line arguments for Create BackupVault into a message.

Args:
  name: The name of the Backup Vault.
  backup_vault_type: The type of the Backup Vault.
  backup_region: The location of the Backup Vault.
  description: The description of the Backup Vault.
  labels: The parsed labels value.
  backup_retention_policy: The backup retention policy of the Backup Vault.
  kms_config: The KMS Config resource name for CMEK.

Returns:
  The configuration that will be used ass the request body for creating a
  Cloud NetApp Backup Vault.
)
r$   BackupVaultr;   backupVaultTypebackupRegiondescriptionlabelsParseBackupRetentionPolicybackupRetentionPolicy	kmsConfig)	r   r;   backup_vault_typebackup_regionrH   rI   backup_retention_policy
kms_configr?   s	            r   ParseBackupVault#BackupVaultsClient.ParseBackupVaultR   sp    2 ==,,.L$%6" "/* *+/+J+J
!,l( )r   c                 b   U R                   R                  US9nU R                  R                  R	                  U5      nUR
                   H(  n[        R                  " SR                  U5      5        M*     [        R                  " U R                  R                  U[        R                  USS9$ )aX  Make API calls to List Cloud NetApp Backup Vaults.

Args:
  location_ref: The parsed location of the listed NetApp Backup Vaults.
  limit: The number of Cloud NetApp Backup Vaults to limit the results to.
    This limit is passed to the server and the server does the limiting.

Returns:
  Generator that yields the Cloud NetApp Backup Vaults.
)r/   zLocation {} may be unreachable.pageSize)fieldlimitbatch_size_attribute)r$   .NetappProjectsLocationsBackupVaultsListRequestr    r7   Listunreachabler   warningr   r   YieldFromListr   BACKUP_VAULT_RESOURCE)r   location_refrV   r@   responselocations         r   ListBackupVaults#BackupVaultsClient.ListBackupVaults{   s     mmJJ K G {{::??HH((	kk3::8DE )##33--') )r   c                     U R                   R                  UR                  5       S9nU R                  R                  R                  U5      $ )z*Get Cloud NetApp Backup Vault information.r;   )r$   -NetappProjectsLocationsBackupVaultsGetRequestr6   r    r7   Get)r   r=   r@   s      r   GetBackupVault!BackupVaultsClient.GetBackupVault   sC    mmII))+ J -G;;66::7CCr   c                 r    U R                   R                  UR                  5       S9nU R                  X#5      $ )z.Deletes an existing Cloud NetApp Backup Vault.rd   )r$   0NetappProjectsLocationsBackupVaultsDeleteRequestr6   _DeleteBackupVault)r   r=   r>   r@   s       r   DeleteBackupVault$BackupVaultsClient.DeleteBackupVault   s@     	FF --/ 	G 	
 
 ""633r   c                     U R                   R                  R                  U5      nU(       a  U$ [        R                  R                  UR                  [        R                  S9nU R                  U5      $ )Nr2   )
r    r7   Deleter	   r9   r:   r;   r   r<   r,   )r   r>   r@   	delete_opr+   s        r   rk   %BackupVaultsClient._DeleteBackupVault   sb    ;;BB7KI&&889#B#B 9 M   //r   c                     U R                   R                  XU5      nU(       a  U$ [        R                  R	                  UR
                  [        R                  S9nU R                  U5      $ )a8  Updates a Backup Vault.

Args:
  backupvault_ref: The reference to the backup vault.
  backup_vault: Backup Vault message, the updated backup vault.
  update_mask: A comma-separated list of updated fields.
  async_: If False, wait for the operation to complete.

Returns:
  An Operation or Backup Vault message.
r2   )	r   UpdateBackupVaultr	   r9   r:   r;   r   r<   r,   )r   r=   r?   update_maskr>   	update_opr+   s          r   rs   $BackupVaultsClient.UpdateBackupVault   se     //{I &&889#B#B 9 M   //r   c                 :    U R                   R                  UUUUS9$ )z!Parses updates into a kms config.)r?   rH   rI   rO   )r   ParseUpdatedBackupVaultr   r?   rH   rI   rO   s        r   rx   *BackupVaultsClient.ParseUpdatedBackupVault   s,     ==00! 7	 1  r   c                    U R                   R                  5       nUR                  S5      Ul        UR                  S5      Ul        UR                  S5      Ul        UR                  S5      Ul        UR                  S5      Ul        U$ zIParses the command line arguments for Backup Vault Policy into a message.z&backup-minimum-enforced-retention-dayszdaily-backup-immutablezweekly-backup-immutablezmonthly-backup-immutablezmanual-backup-immutabler$   BackupRetentionPolicyget"backupMinimumEnforcedRetentionDaysdailyBackupImmutableweeklyBackupImmutablemonthlyBackupImmutablemanualBackupImmutabler   rO   backup_retention_policy_messages      r   rJ   -BackupVaultsClient.ParseBackupRetentionPolicy       &*mm&I&I&K###$LM $F 	 ##$<= $8 	 ##$=> $9 	 ##$>? $: 	 ##$=> $9 +*r   )r   )NNNNNNNr   NNN)__name__
__module____qualname____firstlineno____doc__r   r   r   r   propertyr    r$   r,   rB   rQ   ra   rg   rl   rk   rs   rx   rJ   __static_attributes__ r   r   r   r      s    T#'#4#4#9#9 3     " "(0" "'R)0D4006 "+r   r   c                   :    \ rS rSrSrS r   S	S jrS rS rSr	g)
r      z<Adapter for the GA Cloud NetApp Files API for Backup Vaults.c                     [         R                  R                  U l        [        R
                  " U R                  S9U l        [        R                  " U R                  S9U l        g N)r   )	r   r   r   r   r   GetClientInstancer    GetMessagesModuler$   r!   s    r   r   BackupVaultsAdapter.__init__   sN    **--D//((DK  11((DMr   Nc                 \    Ub  X!l         Ub  X1l        Ub  U R                  U5      Ul        U$ )z'Parses updates into a new Backup Vault.)rH   rI   rJ   rK   ry   s        r   rx   +BackupVaultsAdapter.ParseUpdatedBackupVault   s@     !,"*+/+J+J
!,l( r   c                     U R                   R                  UUR                  5       US9nU R                  R                  R                  U5      $ )z7Send a Patch request for the Cloud NetApp Backup Vault.)r1   r;   
updateMask)r$   /NetappProjectsLocationsBackupVaultsPatchRequestr6   r    r7   Patch)r   r=   r?   rt   update_requests        r   rs   %BackupVaultsAdapter.UpdateBackupVault  sU     	EE$ --/" 	F 	$ 
 ;;66<< r   c                    U R                   R                  5       nUR                  S5      Ul        UR                  S5      Ul        UR                  S5      Ul        UR                  S5      Ul        UR                  S5      Ul        U$ r|   r}   r   s      r   rJ   .BackupVaultsAdapter.ParseBackupRetentionPolicy  r   r   r    r$   r   r   )
r   r   r   r   r   r   rx   rs   rJ   r   r   r   r   r   r      s$    D "$	+r   r   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )r   i%  z>Adapter for the Beta Cloud NetApp Files API for Backup Vaults.c                    > [         [        U ]  5         [        R                  R
                  U l        [        R                  " U R                  S9U l	        [        R                  " U R                  S9U l        g r   )superr   r   r   r   r   r   r   r   r    r   r$   )r   	__class__s    r   r    BetaBackupVaultsAdapter.__init__(  s]    	
!413**//D//((DK  11((DMr   r   )r   r   r   r   r   r   r   __classcell__)r   s   @r   r   r   %  s    F r   r   N)r   apitools.base.pyr   googlecloudsdk.api_lib.netappr   r   r   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   googlecloudsdk.corer   r	   objectr   r   r   r   r   r   <module>r      sK    W ( 3 = . ( # )I+ I+X;+& ;+|1 r   