
                         L   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  e	j"                  e	j$                  j&                         G d
 de	j(                               Z e	j"                  e	j$                  j,                         G d de             Zy)z*Updates a Cloud NetApp Volumes KMS Config.    )absolute_import)division)unicode_literals)client)base)flags)labels_util)logc                   \    e Zd ZdZdddZej                  j                  Ze	d        Z
d Zy)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                 .    t        j                  |        y )N)kmsconfigs_flagsAddKMSConfigUpdateArgs)parsers    (lib/surface/netapp/kms_configs/update.pyArgszUpdate.Args0   s    ++F3    c                 n   |j                   j                  j                         }t        j                  | j
                        }t        j                  j                  |      }|j                  |      }|j                         rI|j                  |j                  j                  j                  |j                        j!                         }nd}|j"                  |j"                  }nt%        j&                  |j(                        }|j*                  |j*                  }nt%        j,                  |j(                        }|j.                  |j.                  }	nt%        j0                  |j(                        }	|j2                  |j2                  }
nt%        j4                  |j(                        }
t%        j6                  |||	|
      }|j9                  |||j:                  |      }g }|j=                  d      s3|j=                  d      s"|j=                  d      s|j=                  d      r|j?                  d       |j=                  d      r|j?                  d       |j=                  d	      s"|j=                  d
      s|j=                  d      r|j?                  d       djA                  |      }|jC                  ||||jD                        }|jD                  rWdjG                  | jI                         jJ                        }tL        jN                  jQ                  djG                  |             |S )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   Runz
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##z;F {{3::




$
$g 
jj%vg Mr   N)__name__
__module____qualname____doc__detailed_helpr   r?   GAr)   staticmethodr   rL    r   r   r   r      sB    1A	- $$''.4 4Lr   r   c                   <    e Zd ZdZej
                  j                  Zy)
UpdateBetar   N)rM   rN   rO   rP   r   r?   BETAr)   rT   r   r   rV   rV      s    1$$)).r   rV   N)rP   
__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
   ReleaseTracksr?   rR   UpdateCommandr   rW   rV   rT   r   r   <module>r`      s    1 &  ' Q ( S < # D%%(()cT c *cL D%%**+* * ,*r   