
                         n    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 Z
d Zd	 Zd
 Zd Zd Zd Zy)z4Client for interaction with Tasks API CRUD DATAPLEX.    )absolute_import)division)unicode_literals)util)iam_utilc                    t        j                         j                  | j                         t        j                         j	                  |            }t        j
                         j                  j                  |      S )zSet IAM Policy request.)policy)resourcegoogleIamV1SetIamPolicyRequest)dataplex_apiGetMessageModule6DataplexProjectsLocationsLakesTasksSetIamPolicyRequestRelativeNameGoogleIamV1SetIamPolicyRequestGetClientInstanceprojects_locations_lakes_tasksSetIamPolicy)task_refr	   set_iam_policy_reqs      +lib/googlecloudsdk/api_lib/dataplex/task.pyr   r      su    #446mm$$&%1%B%B%D%c%c &d & n  
	'	'	)	H	H	U	U
     c                     t        j                         j                  | j                               }t        j                         j
                  j                  |      S )zGet IAM Policy request.)r
   )r   r   6DataplexProjectsLocationsLakesTasksGetIamPolicyRequestr   r   r   GetIamPolicy)r   get_iam_policy_reqs     r   r   r   &   sU    #446mm$$& n  
	'	'	)	H	H	U	U
 r   c                     t        |       }t        j                  t        j                         j
                  |||       t        | |      S )zAdd IAM policy binding request.)r   r   AddBindingToIamPolicyr   r   GoogleIamV1Bindingr   r   memberroler	   s       r   AddIamPolicyBindingr"   0   sA    !&
  ##%88&&$ 
h	''r   c                 ^    t        |       }t        j                  |||       t        | |      S )z"Remove IAM policy binding request.)r   r   RemoveBindingFromIamPolicyr   r   s       r   RemoveIamPolicyBindingr%   9   s+    !&
%%ffd;	h	''r   c                 ~    t        j                  |t        j                         j                        }t        | |      S )z)Set IAM policy binding request from file.)r   ParsePolicyFiler   r   GoogleIamV1Policyr   )r   policy_filer	   s      r   SetIamPolicyFromFiler*   @   s5    ##<002DD& 
h	''r   c           
         t        j                         j                  | j                         t        j                         j	                  t        j
                  t        j                         j                  |      t        t        j                         j                  |                  }t        j                         j                  j                  |      }|S )zHRuns dataplex task with input updates to execution spec args and labels.)labelsargs)name#googleCloudDataplexV1RunTaskRequest)
r   r   -DataplexProjectsLocationsLakesTasksRunRequestr   #GoogleCloudDataplexV1RunTaskRequestCreateLabels
CreateArgsr   r   Run)r   r-   run_task_reqrun_task_responses       r   RunTaskr7   H   s    ..0^^  "*6*G*G*I*m*m**++-QQ ++-QQ +n 	+ _ , $$&EEII
 
 
r   c           
      2   t        |dd      rt        j                  |j                        }t	        |      dkD  rW| j                  t        |j                               D cg c]"  \  }}| j
                  j                  ||      $ c}}      S yc c}}w )zCCreates Args input compatible for creating a RunTaskRequest object.ARGSNr   )keyvalue)additionalProperties)	getattrr   FetchExecutionSpecArgsr9   len	ArgsValuesorteditemsAdditionalProperty)run_task_requestr-   args_refr:   r;   s        r   r3   r3   _   s    T64 22499=H
8}q''
 !'x~~'7 8	  !9*#u ((;; <  !9	  (   
 s   "'B
N)__doc__
__future__r   r   r   googlecloudsdk.api_lib.dataplexr   r   googlecloudsdk.command_lib.iamr   r   r   r"   r%   r*   r7   r3    r   r   <module>rK      s<    ; &  ' @ 3
(((.r   