
    V                     2   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d
lmZ  ej$                  ej&                  j(                        ej*                   G d dej,                                      Zddddde_        y)z)Command to set IAM policy for a resource.    )absolute_import)division)unicode_literals)base_classes)base)flags)scope)backend_buckets_utils)iam_utilc                   &    e Zd ZdZed        Zd Zy)AddIamPolicyBinding=Add an IAM policy binding to a Compute Engine backend bucket.c                 l    t         j                  j                  |        t        j                  |        y )N)r   &GLOBAL_REGIONAL_BACKEND_BUCKET_ARG_IAMAddArgumentr   AddArgsForAddIamPolicyBinding)parsers    =lib/surface/compute/backend_buckets/add_iam_policy_binding.pyArgszAddIamPolicyBinding.Args#   s$    	00<<VD**62    c                    t        j                  | j                               }|j                  }t        j
                  j                  ||j                  t        j                  j                  t        j                  |j                              }t        j                  ||      }t        j                   |j"                  j$                  ||j&                  |j(                         t        j*                  |||      S )N)default_scopescope_lister)r   ComputeApiHolderReleaseTrackclientr   r   ResolveAsResource	resourcescompute_scope	ScopeEnumGLOBALcompute_flagsGetDefaultScopeListerr
   GetIamPolicyr   AddBindingToIamPolicymessagesBindingmemberroleSetIamPolicy)selfargsholderr   backend_bucket_refpolicys         r   RunzAddIamPolicyBinding.Run(   s    **4+<+<+>?F]]F44FF'1188&<<V]]K	 	G 	M  #//0BFKF""dii !--FF r   N)__name__
__module____qualname____doc__staticmethodr   r0    r   r   r   r      s     F3 3r   r   r   zB
  Add an IAM policy binding to a Compute Engine backend bucket.  a    To add an IAM policy binding for the role of
  'compute.loadBalancerServiceUser' for the user 'test-user@gmail.com' with
  backend service 'my-backend-bucket' and region 'REGION', run:

      $ {command} my-backend-bucket --region=REGION         --member='user:test-user@gmail.com'         --role='roles/compute.loadBalancerServiceUser'

      $ {command} my-backend-bucket --global         --member='user:test-user@gmail.com'         --role='roles/compute.loadBalancerServiceUser'

      $ {command} my-backend-bucket         --member='user:test-user@gmail.com'         --role='roles/compute.loadBalancerServiceUser'

  See https://cloud.google.com/iam/docs/managing-policies for details of
  policy role and member types.
  z   This command uses the compute/alpha API. The full documentation for this
    API can be found at: https://cloud.google.com/compute/)briefDESCRIPTIONEXAMPLESzAPI REFERENCEN)r4   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r"   r	   r   2googlecloudsdk.command_lib.compute.backend_bucketsr
   googlecloudsdk.command_lib.iamr   ReleaseTracksr   ALPHADefaultUniverseOnlyCommandr   detailed_helpr6   r   r   <module>rE      s    0 &  ' 7 ( E E T D 3 D%%++,$,,   -< 	H	E	(>9%  !r   