
                         n    S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  S r
S rS	 rS
 rS rS rS rg)z4Client for interaction with Tasks API CRUD DATAPLEX.    )absolute_import)division)unicode_literals)util)iam_utilc                     [         R                  " 5       R                  U R                  5       [         R                  " 5       R	                  US9S9n[         R
                  " 5       R                  R                  U5      $ )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                     [         R                  " 5       R                  U R                  5       S9n[         R                  " 5       R
                  R                  U5      $ )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                     [        U 5      n[        R                  " [        R                  " 5       R
                  X1U5        [        X5      $ )zAdd IAM policy binding request.)r   r   AddBindingToIamPolicyr   r   GoogleIamV1Bindingr   r   memberroler	   s       r   AddIamPolicyBindingr"   0   s=    !&
  ##%88&$ 
h	''r   c                 \    [        U 5      n[        R                  " X1U5        [        X5      $ )z"Remove IAM policy binding request.)r   r   RemoveBindingFromIamPolicyr   r   s       r   RemoveIamPolicyBindingr%   9   s'    !&
%%fd;	h	''r   c                     [         R                  " U[        R                  " 5       R                  5      n[        X5      $ )z)Set IAM policy binding request from file.)r   ParsePolicyFiler   r   GoogleIamV1Policyr   )r   policy_filer	   s      r   SetIamPolicyFromFiler*   @   s3    ##<002DD& 
h	''r   c           
         [         R                  " 5       R                  U R                  5       [         R                  " 5       R	                  [         R
                  " [         R                  " 5       R                  U5      [        [         R                  " 5       R                  U5      S9S9n[         R                  " 5       R                  R                  U5      nU$ )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                 6   [        USS5      (       a  [        R                  " UR                  5      n[	        U5      S:  aR  U R                  [        UR                  5       5       VVs/ s H  u  p4U R
                  R                  X4S9PM      snnS9$ gs  snnf )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*# ((;; <  !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   