
                             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  G d
 de	j                        Zy)z?Command to set an IAM policy binding on a Data Fusion instance.    )absolute_import)division)unicode_literals)
datafusion)base)data_fusion_iam_util)resource_args)iam_utilc                   &    e Zd ZdZed        Zd Zy)AddIamPolicyBindingaH  Adds an IAM policy bindng to a Cloud Data Fusion instance.

  ## EXAMPLES

  To set someone@example.com to have `roles/datafusion.admin` permission for
  instance `my-instance`, in project `my-project`, location in `my-location`,
  run:

  $ {command} my-instance --location=my-location \
    --member=user:someone@example.com --role=roles/datafusion.admin

  To run the same command for a specific namespace on the instance, run:

  $ {command} my-instance --location=my-location \
    --member=user:someone@example.com --role=roles/datafusion.admin \
    --namespace=my-namespace
  c                     t        j                  | d       t        j                  j	                  |        t        j                  |        | j                  dd       y )NzInstance to add IAM binding.z--namespacez[CDAP Namespace whose IAM policy we wish to append. For example: `--namespace=my-namespace`.)help)r	   AddInstanceResourceArgr   URI_FLAGRemoveFromParserr
   AddArgsForAddIamPolicyBindingadd_argument)parsers    1lib/surface/data_fusion/add_iam_policy_binding.pyArgszAddIamPolicyBinding.Args/   sN    ((1OPMM""6***62
3  4    c                    t        j                         }|j                  j                  j	                         }|j
                  sP|j                  j                  |j                               }|j                  j                  j                  |      }n^|j                  j                  |j                         d|j
                        }|j                  j                  j                  |      }t        j                  |j                  j                   ||j"                  |j$                         t'        j(                  ||j
                  ||j                  |j                        }|S )N)resourcez/namespaces/)df
DatafusionCONCEPTSinstanceParse	namespacemessages7DatafusionProjectsLocationsInstancesGetIamPolicyRequestRelativeNameclientprojects_locations_instancesGetIamPolicyADatafusionProjectsLocationsInstancesNamespacesGetIamPolicyRequest'projects_locations_instances_namespacesr
   AddBindingToIamPolicyBindingmemberroler   DoSetIamPolicy)selfargsr   instance_refget_request
iam_policyresultss          r   RunzAddIamPolicyBinding.Run:   s/   J==))//1L>>''__,,. ` 0k$$AANN
j ''ii$$&8 j 9k $$LLYY
j "":#6#6#>#>#-#';;#'99.
 #11,2<2<2E2E2<2C2CEG Nr   N)__name__
__module____qualname____doc__staticmethodr   r3    r   r   r   r      s     $ 4 4r   r   N)r7   
__future__r   r   r   "googlecloudsdk.api_lib.data_fusionr   r   googlecloudsdk.callioper   &googlecloudsdk.command_lib.data_fusionr   r	   googlecloudsdk.command_lib.iamr
   Commandr   r9   r   r   <module>r@      s3    F &  ' ? ( G @ 37$,, 7r   