
                             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rS	 rS
 rS rS rS rSS jrS rS rS rS rS rS rS rS rS rg)zBFlags and helpers for the Cloud NetApp Files KMS Configs commands.    )concepts)deps)flags)labels_util)concept_parsers)
propertiesz    table(
        name.basename():label=KMS_CONFIG_NAME:sort=1,
        name.segment(3):label=LOCATION,
        cryptoKeyName,
        state
    )c                  ,    [         R                  " SSS9$ )Nzkms-keyzThe KMS key of the {resource}name	help_textr    ResourceParameterAttributeConfig     :lib/googlecloudsdk/command_lib/netapp/kms_configs/flags.pyGetKmsKeyAttributeConfigr   &   s    		2	2 ?
 r   c                  ,    [         R                  " SSS9$ )Nzkms-keyringz!The KMS keyring of the {resource}r
   r   r   r   r   GetKmsKeyRingAttributeConfigr   ,   s    		2	2$G
 r   c                      [         R                  " SS[        R                  " [        R
                  R                  R                  5      /S9$ )Nzkms-projectz%The Cloud project for the {resource}.r   r   fallthroughs)r   r   r   PropertyFallthroughr   VALUEScoreprojectr   r   r   GetKmsProjectAttributeConfigr   2   s>    		2	27,,Z->->-C-C-K-KLM
 r   c                      [         R                  " S5      [         R                  " [        R                  R
                  R                  5      /n [        R                  " SSU S9$ )Nz
--locationzkms-locationz&The Cloud location for the {resource}.r   )	r   ArgFallthroughr   r   r   netapplocationr   r   )r   s    r   GetKmsLocationAttributeConfigr!   :   sW     ,'
z0077@@A	, 
	2	28
 r   c            	      t    [         R                  " SS[        5       [        5       [	        5       [        5       S9$ )Nz/cloudkms.projects.locations.keyRings.cryptoKeyskms_key)resource_name
projectsIdlocationsId
keyRingsIdcryptoKeysId)r   ResourceSpecr   r!   r   r   r   r   r   GetKmsKeyResourceSpecr*   H   s3    			7-//1-/+-
 r   c                 r    [         R                  R                  S[        5       SUS9R	                  U 5        g )Nz	--kms-keyzCThe Cloud KMS (Key Management Service) Crypto Key that will be used)r   resource_spec
group_helprequired)r   ConceptParserForResourcer*   AddToParser)parserr.   s     r   AddKmsKeyResourceArgr3   V   s6    ++)+
O ,  Kr   c                 &    SU < SU< SU< SU< 3$ )Nz	projects/z/locations/z
/keyRings/z/cryptoKeys/r   )kms_projectkms_locationkms_keyringr#   s       r   ConstructCryptoKeyNamer8   d   s    	
 r   c                 .    U R                  S5      nUS   $ )N/   splitr   
name_splits     r   "ExtractKmsProjectFromCryptoKeyNamer@   m       zz#*	Ar   c                 .    U R                  S5      nUS   $ )Nr:      r<   r>   s     r   #ExtractKmsLocationFromCryptoKeyNamerD   r   rA   r   c                 .    U R                  S5      nUS   $ )Nr:      r<   r>   s     r   "ExtractKmsKeyRingFromCryptoKeyNamerG   w   rA   r   c                 .    U R                  S5      nUS   $ )Nr:      r<   r>   s     r   $ExtractKmsCryptoKeyFromCryptoKeyNamerJ   |   rA   r   c                    [         R                  " [        R                  " S5      /5      R	                  U 5        [        U SS9  [        R                  " U S5        [        R                  " U 5        [        R                  " U 5        g)z#Add args for creating a KMS Config.zThe KMS Config to createTr.   
KMS ConfigN)
r   r/   r   GetKmsConfigPresentationSpecr1   r3   AddResourceDescriptionArgAddResourceAsyncFlagr   AddCreateLabelsFlagsr2   s    r   AddKMSConfigCreateArgsrS      sb    ))*DEFKv-!!&,7V$""6*r   c                     [         R                  " [        R                  " S5      /5      R	                  U 5        [        R
                  " U 5        g)z#Add args for deleting a KMS Config.zThe KMS Config to deleteNr   r/   r   rN   r1   rP   rR   s    r   AddKMSConfigDeleteArgsrV      s:    ))*DEFKV$r   c                    [         R                  " [        R                  " S5      /5      R	                  U 5        [        U SS9  [        R                  " U S5        [        R                  " U 5        [        R                  " U 5        g)z#Add args for updating a KMS Config.zThe KMS Config to updateFrL   rM   N)
r   r/   r   rN   r1   r3   rO   rP   r   AddUpdateLabelsFlagsrR   s    r   AddKMSConfigUpdateArgsrY      sb    ))*DEFKv.!!&,7V$""6*r   c                     [         R                  " [        R                  " S5      /5      R	                  U 5        [        R
                  " U 5        g)z3Add args for encrypting volumes under a KMS Config.zThe KMS Config used to encryptNrU   rR   s    r   AddKMSConfigEncryptArgsr[      s:    ))*JKLKV$r   N)T)__doc__ googlecloudsdk.calliope.conceptsr   r   !googlecloudsdk.command_lib.netappr   $googlecloudsdk.command_lib.util.argsr   (googlecloudsdk.command_lib.util.conceptsr   googlecloudsdk.corer   KMS_CONFIGS_LIST_FORMATr   r   r   r!   r*   r3   r8   r@   rD   rG   rJ   rS   rV   rY   r[   r   r   r   <module>rc      sr    I 6 1 3 < D *	 


+%+%r   