
                             S r SSKJr  SSKJr  SSKJr  SSK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rS rS rS rS rS rS rS rS rg)z>Flags and helpers for the Cloud NetApp Backup Vaults commands.    )absolute_import)division)unicode_literalsN)arg_parsers)base)flags)	arg_utils)labels_util)concept_parsers)presentation_specsz~    table(
        name.basename():label=BACKUP_VAULT_NAME:sort=1,
        name.segment(3):label=LOCATION,
        state
    )c                 T    [         R                  " U UR                  R                  S9$ )zReturns the Choice Enum for Backup Vault Type.

Args:
  choice: The choice for backup vault type as string
  messages: The messages module.

Returns:
  the backup vault type enum.
)choice	enum_type)r	   ChoiceToEnumBackupVaultBackupVaultTypeValueValuesEnum)r   messagess     <lib/googlecloudsdk/command_lib/netapp/backup_vaults/flags.pyGetBackupVaultTypeEnumFromArgr   (   s)     
		$$CC
     c                 4    SnU R                  S[        USS9  g )Nzg  String indicating the type of backup vault.
  The supported values are: 'IN_REGION','CROSS_REGION'
  z--backup-vault-typeF)typehelprequiredadd_argumentstr)parser	help_texts     r   AddBackupVaultTypeArgr    8   s*    )
 		  r   c                 .    U R                  S[        SS9  g)z<Adds the Backup Vault Backup Location arg to the arg parser.z--backup-regionz6String indicating backup location for the Backup Vault)r   r   Nr   r   s    r   AddBackupVaultBackupLocationArgr#   F   s    G  r   c                    [         R                  " [        R                  " S5      /5      R	                  U 5        [        R
                  " U S5        [        R                  " U 5        [        R                  " U 5        [        U 5        [        U 5        U[        R                  R                  :X  a  [        U 5        [        U 5        gg)z%Add args for creating a Backup Vault.zThe Backup Vault to createBackup VaultN)r   ConceptParserr   GetBackupVaultPresentationSpecAddToParserAddResourceDescriptionArgAddResourceAsyncFlagr
   AddCreateLabelsFlagsAddBackupRetentionPolicyArgAddKmsConfigArgr   ReleaseTrackBETAr    r#   )r   release_tracks     r   AddBackupVaultCreateArgsr1   P   s    ++,HIJK!!&.9V$""6*f%&t((---&!#F+ .r   c                     [         R                  " [        R                  " S5      /5      R	                  U 5        [        R
                  " U 5        g)z%Add args for deleting a Backup Vault.zThe Backup Vault to deleteN)r   r&   r   r'   r(   r*   r"   s    r   AddBackupVaultDeleteArgsr3   _   s:    ++,HIJKV$r   c                    [         R                  " [        R                  " S5      /5      R	                  U 5        [        R
                  " U S5        [        R                  " U 5        [        R                  " U 5        [        U 5        g)z%Add args for updating a Backup Vault.zThe Backup Vault to updater%   N)
r   r&   r   r'   r(   r)   r*   r
   AddUpdateLabelsFlagsr,   r"   s    r   AddBackupVaultUpdateArgsr6   g   s`    ++,HIJK!!&.9V$""6*f%r   c                     [         [        [        [        [        S.n[        R                  " S5      nU R	                  S[
        R                  " US9SUS9  g)z7Adds the Backup Retention Policy arg to the arg parser.)z&backup-minimum-enforced-retention-dayszdaily-backup-immutablezweekly-backup-immutablezmonthly-backup-immutablezmanual-backup-immutablea      Backup Retention Policy of the Backup Vault.

    Backup Retention Policy allows you to configure the retention policy for
    backups created within this vault. It consists of several fields that govern
    how long backups are kept and what type of backups are immutable.
    z--backup-retention-policy)specF)r   r   r   N)intbooltextwrapdedentr   r   ArgDict)r    backup_retention_policy_arg_specbackup_retention_policy_helps      r   r,   r,   r   s^     14 $!%"&!%&" "* 2 "	 	!$DE'	  r   c           	          Sn[         R                  " S[        R                  " 5       USSSS0S9n[        R
                  " U/5      R                  U 5        g)	z)Adds the --kms-config flag to the parser.z  The resource name of the KMS Config to use for encrypting backups within this backup vault.
  Format: projects/{project_id}/locations/{location}/kmsConfigs/{kms_config_id}
  z--kms-configFTlocation )r   hiddenflag_name_overridesN)r   ResourcePresentationSpecr   GetKmsConfigResourceSpecr   r&   r(   )r   r   kms_config_presentation_specs      r   r-   r-      s^    ) "4!L!L$$&%r*" != >?KKr   )__doc__
__future__r   r   r   r;   googlecloudsdk.callioper   r   !googlecloudsdk.command_lib.netappr   $googlecloudsdk.command_lib.util.apisr	   $googlecloudsdk.command_lib.util.argsr
   (googlecloudsdk.command_lib.util.conceptsr   r   BACKUP_VAULTS_LIST_FORMATr   r    r#   r1   r3   r6   r,   r-    r   r   <module>rQ      s\    E &  '  / ( 3 : < D G	  ,%&0r   