
    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(                  R*                  5       " S
 S\R,                  5      5       5       r\R$                  \R&                  " \R(                  R0                  5       " S S\5      5       5       rg)z7Command to add-iam-policy-binding to a secret resource.    )absolute_import)division)unicode_literals)api)
exceptions)base)iam_util)argsc                   `    \ rS rSrSrSS0r\S 5       r\R                  " S5      S 5       r
Srg	)
AddIamPolicyBinding   zAdd IAM policy binding to a secret.

Add an IAM policy binding to the IAM policy of a secret. One binding
consists of a member and a role.
EXAMPLES            To add an IAM policy binding for the role of 'roles/secretmanager.secretAccessor'
          for the user 'test-user@gmail.com' on my-secret, run:

            $ {command} my-secret --member='user:test-user@gmail.com' --role='roles/secretmanager.secretAccessor'

          See https://cloud.google.com/iam/docs/managing-policies for details of
          policy role and member types.
          c                     [         R                  " U SSSSS9  [         R                  " U SSS9  [        R                  " U SS9  g )	N Tz;Name of the secret for which to add the IAM policy binding.)purpose
positionalrequired	help_textzto add iam policyF)r   hidden)add_condition)secrets_args	AddSecretAddLocationr	   AddArgsForAddIamPolicyBinding)parsers    -lib/surface/secrets/add_iam_policy_binding.pyArgsAddIamPolicyBinding.Args2   sD    O V-@O**6F    z-Status code: {status_code}. {status_message}.c                    [         R                  " U R                  5       5      nUR                  R                  R                  5       n[        R                  " U5      n[         R                  " US9R                  UUR                  UR                  UUR                  S9n[        R                  " UR                  5       S5        U$ )N)api_version)	conditionsecret_locationsecret)secrets_apiGetApiFromTrackReleaseTrackCONCEPTSr%   Parser	   $ValidateAndExtractConditionMutexRoleSecretsr   memberrolelocationLogSetIamPolicyName)selfr
   r"   	multi_refr#   results         r   RunAddIamPolicyBinding.Run?   s     --d.?.?.ABK$$**,I==dCI  [9MM		 N F Y^^-x8Mr     N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   gcloud_exception CatchHTTPErrorRaiseHTTPExceptionr5   __static_attributes__r7   r    r   r   r      sP      
- 
G 
G 445r    r   c                        \ rS rSrSrSS0rSrg)AddIamPolicyBindingBetaQ   z,Add IAM policy binding to a secret resource.r   r   r7   N)r8   r9   r:   r;   r<   r=   rA   r7   r    r   rC   rC   Q   s     5  
-r    rC   N)r<   
__future__r   r   r   googlecloudsdk.api_lib.secretsr   r&   googlecloudsdk.api_lib.utilr   r?   googlecloudsdk.callioper   googlecloudsdk.command_lib.iamr	   "googlecloudsdk.command_lib.secretsr
   r   DefaultUniverseOnlyReleaseTracksr(   GACommandr   BETArC   r7   r    r   <module>rP      s    > '  ' = F ( 3 C D%%(()/$,, / * /d D%%**+1  , r    