
    -                     z    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S rS rS rS rS rS rS rS rg)z7Client for interaction with Glossary API CRUD DATAPLEX.    )util)iam_utilc                     [         R                  " 5       nUR                  U R                  U R                  [         R
                  " UR                  U 5      S9nU$ )zCreate Glossary Request.)descriptiondisplayNamelabels)dataplex_apiGetMessageModuleGoogleCloudDataplexV1Glossaryr   display_nameCreateLabelsargsmodulerequests      /lib/googlecloudsdk/api_lib/dataplex/glossary.py GenerateGlossaryForCreateRequestr      sW    ((*&00""##&&

.
. 1 ' 
.    c           	          [         R                  " 5       nUR                  U R                  U R                  U R
                  [         R                  " UR                  U 5      S9$ )zUpdate Glossary Request.)r   r   etagr   )r	   r
   r   r   r   r   r   r   r   s     r    GenerateGlossaryForUpdateRequestr   #   sZ    ((*&		-	-""##99&&

.
.	 
. 
 r   c           	          [         R                  " 5       nUR                  U R                  U R                  U R
                  [         R                  " UR                  U 5      S9nU$ )z"Create Glossary Category Requests.r   r   parentr   r	   r
   %GoogleCloudDataplexV1GlossaryCategoryr   r   r   r   r   s      r   (GenerateGlossaryCategoryForCreateRequestr   0   s`    ((*&88""## [[&&

6
6 9 	' 
.r   c           	          [         R                  " 5       nUR                  U R                  U R                  U R
                  [         R                  " UR                  U 5      S9$ )z"Update Glossary Category Requests.r   r   r   s     r   (GenerateGlossaryCategoryForUpdateRequestr    @   sZ    ((*&		5	5""##[[&&

6
6	 
6 
 r   c           	          [         R                  " 5       nUR                  U R                  U R                  U R
                  [         R                  " UR                  U 5      S9nU$ )zCreate Glossary Term Requests.r   r	   r
   !GoogleCloudDataplexV1GlossaryTermr   r   r   r   r   s      r   $GenerateGlossaryTermForCreateRequestr$   M   s`    ((*&44""## [[&&

2
2D 5 	' 
.r   c           	          [         R                  " 5       nUR                  U R                  U R                  U R
                  [         R                  " UR                  U 5      S9$ )zUpdate Glossary Term Requests.r   r"   r   s     r   $GenerateGlossaryTermForUpdateRequestr&   ]   sZ    ((*&		1	1""##[[&&

2
2D	 
2 
 r   c                     / nU R                  S5      (       a  UR                  S5        U R                  S5      (       a  UR                  S5        U R                  S5      (       a  UR                  S5        U$ )z!Creates Update Mask for Glossary.r   r   r   r   IsSpecifiedappendr   update_masks     r   GenerateUpdateMaskr-   j   sj    +	m$$}%	n%%}%	hx 	r   c                 B   / nU R                  S5      (       a  UR                  S5        U R                  S5      (       a  UR                  S5        U R                  S5      (       a  UR                  S5        U R                  S5      (       a  UR                  S5        U$ )z)Create Update Mask for Glossary Category.r   r   r   r   r   r(   r+   s     r   GenerateCategoryUpdateMaskr/   v       +	m$$}%	n%%}%	hx 	hx 	r   c                 B   / nU R                  S5      (       a  UR                  S5        U R                  S5      (       a  UR                  S5        U R                  S5      (       a  UR                  S5        U R                  S5      (       a  UR                  S5        U$ )z%Create Update Mask for Glossary Term.r   r   r   r   r   r(   r+   s     r   GenerateTermUpdateMaskr2      r0   r   c                 j    [         R                  " U [         R                  " 5       R                  5      $ )z=Waits for the given google.longrunning.Operation to complete.)r	   WaitForOperationGetClientInstanceprojects_locations_glossaries)	operations    r   r4   r4      s)    		&	&//1OO
 r   c                     [         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)r	   r
   6DataplexProjectsLocationsGlossariesSetIamPolicyRequestRelativeNameGoogleIamV1SetIamPolicyRequestr5   r6   SetIamPolicy)glossary_refr9   set_iam_policy_reqs      r   GlossarySetIamPolicyrB      su    #446mm((*%1%B%B%D%c%c &d & n  
	'	'	)	G	G	T	T
 r   c                     [         R                  " 5       R                  U R                  5       S9n[         R                  " 5       R
                  R                  U5      $ )zGet Iam Policy request.)r:   )r	   r
   6DataplexProjectsLocationsGlossariesGetIamPolicyRequestr=   r5   r6   GetIamPolicy)r@   get_iam_policy_reqs     r   GlossaryGetIamPolicyrG      sU    #446mm((* n  
	'	'	)	G	G	T	T
 r   c                     [        U 5      n[        R                  " [        R                  " 5       R
                  X1U5        [        X5      $ )zAdd IAM policy binding request.)rG   r   AddBindingToIamPolicyr	   r
   GoogleIamV1BindingrB   r@   memberroler9   s       r   GlossaryAddIamPolicyBindingrN      s=    -&
  ##%88&$ 
l	33r   c                 \    [        U 5      n[        R                  " X1U5        [        X5      $ )z"Remove IAM policy binding request.)rG   r   RemoveBindingFromIamPolicyrB   rK   s       r   GlossaryRemoveIamPolicyBindingrQ      s'    -&
%%fd;	l	33r   c                     [         R                  " U[        R                  " 5       R                  5      n[        X5      $ )z)Set IAM policy binding request from file.)r   ParsePolicyFiler	   r
   GoogleIamV1PolicyrB   )r@   policy_filer9   s      r   GlossarySetIamPolicyFromFilerV      s3    ##<002DD& 
l	33r   N)__doc__googlecloudsdk.api_lib.dataplexr   r	   googlecloudsdk.command_lib.iamr   r   r   r   r    r$   r&   r-   r/   r2   r4   rB   rG   rN   rQ   rV    r   r   <module>r[      s^    > A 3

 
 
	
444r   