
                            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  SS
KJr  \	R$                  " \	R&                  R(                  \	R&                  R*                  5       " S S\	R,                  5      5       rg)zDescribe a secret's metadata.    )absolute_import)division)unicode_literals)api)base)
exceptions)args)log)utilc                   6    \ rS rSrSrSrSr\S 5       rS r	Sr
g)	Set   aZ  Set a secret's replication.

Sets the replication policy for the given secret as defined in a JSON or YAML
file. The locations that a Secret is replicated to cannot be changed.

## EXAMPLES

To set the replication of a secret named 'my-secret' to the contents of
my-file.json, run:

  $ {command} my-secret --replication-policy-file=my-file.json
z}Cannot set replication for secret [{secret}] because it does not exist. Please use the create command to create a new secret.zFile cannot be empty.c                 \    [         R                  " U SSSS9  [         R                  " U SS9  g )Nz	to updateT)purpose
positionalrequired)r   )secrets_args	AddSecretAddReplicationPolicyFile)parsers    &lib/surface/secrets/replication/set.pyArgsSet.Args1   s*    tE))&4@    c                    [         R                  " U R                  5       5      n[        R                  " UR
                  SS9nUR                  R                  R                  5       nU(       d!  [        R                  " SU R                  5      e[        R                  " U5      u  pVn[         R                  " US9R                  U5      nUc<  [        R                  " SU R                  R!                  UR#                  5       S95      e[         R                  " US9R%                  XEXg5      n[&        R                  " 5       R)                  U5        U$ )NF)	is_binaryzreplication-policy)api_versionsecret)r   )secrets_apiGetApiFromTrackReleaseTracksecrets_utilReadFileOrStdinreplication_policy_fileCONCEPTSr   Parser   InvalidArgumentException%REPLICATION_POLICY_FILE_EMPTY_MESSAGEParseReplicationFileContentsSecrets	GetOrNoneSECRET_MISSING_MESSAGEformatNameSetReplicationsecrets_logUpdatedReplication)	selfr	   r   replication_policy_contents
secret_refpolicy	locationskms_keysr   s	            r   RunSet.Run7   s&   --d.?.?.ABK".">">$$#7 %%++-J&//
 J JL L"."K"K##%Fx   [9CCJOF ~//


%
%
,
,JOO4E
,
FH H   [9HHIF ,,Z8Mr    N)__name__
__module____qualname____firstlineno____doc__r,   r(   staticmethodr   r8   __static_attributes__r:   r   r   r   r      s3    >  ,C'A A
r   r   N)r?   
__future__r   r   r   googlecloudsdk.api_lib.secretsr   r   googlecloudsdk.callioper   r   "googlecloudsdk.command_lib.secretsr	   r   r
   r0   r   r"   ReleaseTracksr!   BETAGAUpdateCommandr   r:   r   r   <module>rJ      sl    $ &  ' = ( . C A C D%%**D,=,=,@,@A3$

 3 B3r   