
                             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)zBCommand to remove 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)RemoveIamPolicyBindingaK  Removes an IAM policy binding 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 remove IAM binding.z--namespacez[CDAP Namespace whose IAM policy we wish to remove. For example: `--namespace=my-namespace`.)help)r	   AddInstanceResourceArgr   URI_FLAGRemoveFromParserr
    AddArgsForRemoveIamPolicyBindingadd_argument)parsers    4lib/surface/data_fusion/remove_iam_policy_binding.pyArgszRemoveIamPolicyBinding.Args/   sQ    (()JLMM""6*--f5
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"                         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
   RemoveBindingFromIamPolicymemberroler   DoSetIamPolicy)selfargsr   instance_refget_request
iam_policyresultss          r   RunzRemoveIamPolicyBinding.Run;   s   J==))//1L>>''__,,. ` 0k$$AANN
j ''ii$$&8 j 9k $$LLYY
j ''
DKKK"11,2<2<2E2E2<2C2CEG Nr   N)__name__
__module____qualname____doc__staticmethodr   r2    r   r   r   r      s     $ 	4 	4r   r   N)r6   
__future__r   r   r   "googlecloudsdk.api_lib.data_fusionr   r   googlecloudsdk.callioper   &googlecloudsdk.command_lib.data_fusionr   r	   googlecloudsdk.command_lib.iamr
   Commandr   r8   r   r   <module>r?      s3    I &  ' ? ( G @ 34T\\ 4r   