
    f	                        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  ej"                  ej$                  j&                         G d
 de	j(                               Z ej"                  ej$                  j,                         G d de             Z ej"                  ej$                  j0                         G d de             Zy)z6Add an IAM policy binding for a Google Cloud Function.    )absolute_import)division)unicode_literals)base)flags)util)command)iam_utilc                   6    e Zd ZdZdddZed        Zd Zd Zy)	AddIamPolicyBinding7Adds an IAM policy binding for a Google Cloud Function.z{description}z          To add the iam policy binding for `FUNCTION-1` to role
          `ROLE-1` for member `MEMBER-1` run:

            $ {command} FUNCTION-1 --member=MEMBER-1 --role=ROLE-1
          )DESCRIPTIONEXAMPLESc                     t        j                  | d       t        j                  |        t        j                  | d       y)zTRegisters flags for this command.

    Args:
      parser: The argparse parser.
    zto add IAM policy binding forT)hiddenN)r   AddFunctionResourceArgr
   AddArgsForAddIamPolicyBindingAddGen2Flag)parsers    /lib/surface/functions/add_iam_policy_binding.pyArgszAddIamPolicyBinding.Args+   s3     
  )HI**62	fT*    c                 ,    t        j                  |      S N)
command_v1Runselfargss     r   _RunV1zAddIamPolicyBinding._RunV17   s    >>$r   c                 J    t        j                  || j                               S r   )
command_v2r   ReleaseTrackr   s     r   _RunV2zAddIamPolicyBinding._RunV2:   s    >>$ 1 1 344r   N)	__name__
__module____qualname____doc__detailed_helpstaticmethodr   r    r$    r   r   r   r      s4    ? %- 	+ 	+ 5r   r   c                       e Zd ZdZy)AddIamPolicyBindingBetar   Nr%   r&   r'   r(   r+   r   r   r-   r-   >       ?r   r-   c                       e Zd ZdZy)AddIamPolicyBindingAlphar   Nr.   r+   r   r   r1   r1   C   r/   r   r1   N)r(   
__future__r   r   r   googlecloudsdk.callioper   $googlecloudsdk.command_lib.functionsr   r   >googlecloudsdk.command_lib.functions.v1.add_iam_policy_bindingr	   r   >googlecloudsdk.command_lib.functions.v2.add_iam_policy_bindingr"   googlecloudsdk.command_lib.iamr
   ReleaseTracksr#   GAFunctionResourceCommandr   BETAr-   ALPHAr1   r+   r   r   <module>r=      s    = &  ' ( 6 5 ` ` 3 D%%(()5$66 5 *5@ D%%**+@1 @ ,@ D%%++,@6 @ -@r   