
                         J    S 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.    )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   -   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"   6   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   RunTaskr4   E   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	   FetchExecutionSpecArgsr6   len	ArgsValuesorteditemsAdditionalProperty)run_task_requestr*   args_refr7   r8   s        r   r0   r0   \   s    T64  22499=H
8}q''
 !'x~~'7 8	  !9*# ((;; <  !9	  (   
 s   )%B
N)__doc__googlecloudsdk.api_lib.dataplexr   r	   googlecloudsdk.command_lib.iamr   r   r   r   r"   r'   r4   r0    r   r   <module>rG      s6    ; A 3
(((.r   