
                         L   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	KJr  \	R"                  " \	R$                  R&                  5       " S
 S\	R(                  5      5       r\	R"                  " \	R$                  R,                  5       " S S\5      5       rg)z*Updates a Cloud NetApp Volumes KMS Config.    )absolute_import)division)unicode_literals)client)base)flags)labels_util)logc                   d    \ rS rSrSrSSS.r\R                  R                  r	\
S 5       rS rSrg	)
Update   )Update a Cloud NetApp Volumes KMS Config.zB          Updates a KMS (Key Management System) Config.
          a5            The following command updates a KMS Config instance named KMS_CONFIG with all possible arguments:

              $ {command} KMS_CONFIG --location=us-central1 --kms-location=europe-southwest1 --kms-project=new-kms-project --kms-keyring=kms-keyring2 --kms-key=crypto-key2

          To update a KMS Config named KMS_CONFIG asynchronously, run the following command:

              $ {command} KMS_CONFIG --async --location=us-central1 --kms-location=europe-southwest1 --kms-project=new-kms-project --kms-keyring=kms-keyring2 --kms-key=crypto-key2          )DESCRIPTIONEXAMPLESc                 0    [         R                  " U 5        g )N)kmsconfigs_flagsAddKMSConfigUpdateArgs)parsers    (lib/surface/netapp/kms_configs/update.pyArgsUpdate.Args0   s    ++F3    c                    UR                   R                  R                  5       n[        R                  " U R
                  5      n[        R                  R                  U5      nUR                  U5      nUR                  5       (       aI  UR                  UR                  R                  R                  UR                  5      R!                  5       nOSnUR"                  b  UR"                  nO [$        R&                  " UR(                  5      nUR*                  b  UR*                  nO [$        R,                  " UR(                  5      nUR.                  b  UR.                  n	O [$        R0                  " UR(                  5      n	UR2                  b  UR2                  n
O [$        R4                  " UR(                  5      n
[$        R6                  " XxX5      nUR9                  UUUR:                  US9n/ nUR=                  S5      (       dB  UR=                  S5      (       d,  UR=                  S5      (       d  UR=                  S5      (       a  UR?                  S5        UR=                  S5      (       a  UR?                  S5        UR=                  S	5      (       d,  UR=                  S
5      (       d  UR=                  S5      (       a  UR?                  S5        SRA                  U5      nURC                  X,XRD                  5      nURD                  (       aW  SRG                  U RI                  5       RJ                  5      n[L        RN                  RQ                  SRG                  U5      5        U$ )z@Update a Cloud NetApp Volumes KMS Config in the current project.N)crypto_key_namedescriptionlabelskms_projectkms_locationkms_keyringkms_keycryptoKeyNamer   update_labelsremove_labelsclear_labelsr   ,z!gcloud {} netapp kms-configs listzNCheck the status of the updated kms config by listing all kms configs:
  $ {} ))CONCEPTS
kms_configParsekmsconfigs_clientKmsConfigsClient_RELEASE_TRACKr	   DiffFromUpdateArgsGetKmsConfigMayHaveUpdatesApplymessages	KmsConfigLabelsValuer   	GetOrNoner   r   "ExtractKmsProjectFromCryptoKeyNamer!   r   #ExtractKmsLocationFromCryptoKeyNamer   "ExtractKmsKeyRingFromCryptoKeyNamer    $ExtractKmsCryptoKeyFromCryptoKeyNameConstructCryptoKeyNameParseUpdatedKmsConfigr   IsSpecifiedappendjoinUpdateKmsConfigasync_formatReleaseTrackprefixr
   statusPrint)selfargskmsconfig_refr   labels_difforig_kmsconfigr   r   r   r   r    r   r'   updated_fieldsupdate_maskresultcommands                    r   Run
Update.Run4   s   MM,,224M//0C0CDF""11$7K((7N!!##  
//
#
#
/
/1F1F	  f#$$k$GG

&
&k $&&l%II

&
&l #$$k$GG

&
&k ||g EE

&
&g '==;O --'$$	 . J N''N++M**I&&O,&&M*))O,,N++H%((>*K##;F {{3::




$
$g 
jj%vg Mr    N)__name__
__module____qualname____firstlineno____doc__detailed_helpr   rA   GAr+   staticmethodr   rN   __static_attributes__rP   r   r   r   r      sB    1A	- $$''.4 4Lr   r   c                   D    \ rS rSrSr\R                  R                  rSr	g)
UpdateBeta   r   rP   N)
rQ   rR   rS   rT   rU   r   rA   BETAr+   rY   rP   r   r   r[   r[      s    1$$)).r   r[   N)rU   
__future__r   r   r   )googlecloudsdk.api_lib.netapp.kms_configsr   r)   googlecloudsdk.callioper   -googlecloudsdk.command_lib.netapp.kms_configsr   r   $googlecloudsdk.command_lib.util.argsr	   googlecloudsdk.corer
   ReleaseTracksrA   rW   UpdateCommandr   r]   r[   rP   r   r   <module>rf      s    1 &  ' Q ( S < # D%%(()cT c *cL D%%**+* * ,*r   