
    w                         d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	lmZ dd
lmZ dZd Zd Zd Zd Zd ZddZd Zd Zd Zd Zd Zd Zd Zd Zd Zy)zBFlags and helpers for the Cloud NetApp Files KMS Configs commands.    )absolute_import)division)unicode_literals)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                  0    t        j                  dd      S )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                  0    t        j                  dd      S )Nzkms-keyringz!The KMS keyring of the {resource}r   r   r   r   r   GetKmsKeyRingAttributeConfigr   /   s    		2	2$G
 r   c                      t        j                  ddt        j                  t        j
                  j                  j                        g      S )Nzkms-projectz%The Cloud project for the {resource}.r   r   fallthroughs)r   r   r   PropertyFallthroughr   VALUEScoreprojectr   r   r   GetKmsProjectAttributeConfigr   5   s>    		2	27,,Z->->-C-C-K-KLM
 r   c                      t        j                  d      t        j                  t        j                  j
                  j                        g} t        j                  dd|       S )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            	      x    t        j                  ddt               t               t	               t                     S )Nz/cloudkms.projects.locations.keyRings.cryptoKeyskms_key)resource_name
projectsIdlocationsId
keyRingsIdcryptoKeysId)r   ResourceSpecr   r$   r   r   r   r   r   GetKmsKeyResourceSpecr-   K   s3    			7-//1-/+-
 r   c                 x    t         j                  j                  dt               d|      j	                  |        y )Nz	--kms-keyzCThe Cloud KMS (Key Management Service) Crypto Key that will be used)r   resource_spec
group_helprequired)r
   ConceptParserForResourcer-   AddToParser)parserr1   s     r   AddKmsKeyResourceArgr6   Y   s6    ++)+
O ,  Kr   c                     d| d|d|d|S )Nz	projects/z/locations/z
/keyRings/z/cryptoKeys/r   )kms_projectkms_locationkms_keyringr&   s       r   ConstructCryptoKeyNamer;   g   s    	
 r   c                 .    | j                  d      }|d   S )N/   splitr   
name_splits     r   "ExtractKmsProjectFromCryptoKeyNamerC   p       zz#*	Ar   c                 .    | j                  d      }|d   S )Nr=      r?   rA   s     r   #ExtractKmsLocationFromCryptoKeyNamerG   u   rD   r   c                 .    | j                  d      }|d   S )Nr=      r?   rA   s     r   "ExtractKmsKeyRingFromCryptoKeyNamerJ   z   rD   r   c                 .    | j                  d      }|d   S )Nr=      r?   rA   s     r   $ExtractKmsCryptoKeyFromCryptoKeyNamerM      rD   r   c                    t        j                  t        j                  d      g      j	                  |        t        | d       t        j                  | d       t        j                  |        t        j                  |        y)z#Add args for creating a KMS Config.zThe KMS Config to createTr1   
KMS ConfigN)
r
   r2   r   GetKmsConfigPresentationSpecr4   r6   AddResourceDescriptionArgAddResourceAsyncFlagr	   AddCreateLabelsFlagsr5   s    r   AddKMSConfigCreateArgsrV      sb    ))*DEFKv-!!&,7V$""6*r   c                     t        j                  t        j                  d      g      j	                  |        t        j
                  |        y)z#Add args for deleting a KMS Config.zThe KMS Config to deleteNr
   r2   r   rQ   r4   rS   rU   s    r   AddKMSConfigDeleteArgsrY      s:    ))*DEFKV$r   c                    t        j                  t        j                  d      g      j	                  |        t        | d       t        j                  | d       t        j                  |        t        j                  |        y)z#Add args for updating a KMS Config.zThe KMS Config to updateFrO   rP   N)
r
   r2   r   rQ   r4   r6   rR   rS   r	   AddUpdateLabelsFlagsrU   s    r   AddKMSConfigUpdateArgsr\      sb    ))*DEFKv.!!&,7V$""6*r   c                     t        j                  t        j                  d      g      j	                  |        t        j
                  |        y)z3Add args for encrypting volumes under a KMS Config.zThe KMS Config used to encryptNrX   rU   s    r   AddKMSConfigEncryptArgsr^      s:    ))*JKLKV$r   N)T) __doc__
__future__r   r   r    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-   r6   r;   rC   rG   rJ   rM   rV   rY   r\   r^   r   r   r   <module>rg      sy    I &  ' 5 1 3 < D *	 


+%+%r   