
    -                     z    d 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d Zd Zd Zd Zd Zd Zd Zd Zy)z7Client for interaction with Glossary API CRUD DATAPLEX.    )util)iam_utilc                     t        j                         }|j                  | j                  | j                  t        j
                  |j                  |             }|S )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           	          t        j                         }|j                  | j                  | j                  | j
                  t        j                  |j                  |             S )zUpdate Glossary Request.)r   r   etagr   )r	   r
   r   r   r   r   r   r   r   s     r    GenerateGlossaryForUpdateRequestr   #   sZ    ((*&		-	-""##99&&

.
.	 
. 
 r   c           	          t        j                         }|j                  | j                  | j                  | j
                  t        j                  |j                  |             }|S )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           	          t        j                         }|j                  | j                  | j                  | j
                  t        j                  |j                  |             S )z"Update Glossary Category Requests.r   r   r   s     r   (GenerateGlossaryCategoryForUpdateRequestr    @   sZ    ((*&		5	5""##[[&&

6
6	 
6 
 r   c           	          t        j                         }|j                  | j                  | j                  | j
                  t        j                  |j                  |             }|S )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           	          t        j                         }|j                  | j                  | j                  | j
                  t        j                  |j                  |             S )zUpdate Glossary Term Requests.r   r"   r   s     r   $GenerateGlossaryTermForUpdateRequestr&   ]   sZ    ((*&		1	1""##[[&&

2
2D	 
2 
 r   c                     g }| j                  d      r|j                  d       | j                  d      r|j                  d       | j                  d      r|j                  d       |S )z!Creates Update Mask for Glossary.r   r   r   r   IsSpecifiedappendr   update_masks     r   GenerateUpdateMaskr-   j   sa    +	m$}%	n%}%	hx 	r   c                    g }| j                  d      r|j                  d       | j                  d      r|j                  d       | j                  d      r|j                  d       | j                  d      r|j                  d       |S )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                    g }| j                  d      r|j                  d       | j                  d      r|j                  d       | j                  d      r|j                  d       | j                  d      r|j                  d       |S )z%Create Update Mask for Glossary Term.r   r   r   r   r   r(   r+   s     r   GenerateTermUpdateMaskr2      r0   r   c                 f    t        j                  | t        j                         j                        S )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                    t        j                         j                  | j                         t        j                         j	                  |            }t        j
                         j                  j                  |      S )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                     t        j                         j                  | j                               }t        j                         j
                  j                  |      S )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                     t        |       }t        j                  t        j                         j
                  |||       t        | |      S )zAdd IAM policy binding request.)rG   r   AddBindingToIamPolicyr	   r
   GoogleIamV1BindingrB   r@   memberroler9   s       r   GlossaryAddIamPolicyBindingrN      sA    -&
  ##%88&&$ 
lF	33r   c                 ^    t        |       }t        j                  |||       t        | |      S )z"Remove IAM policy binding request.)rG   r   RemoveBindingFromIamPolicyrB   rK   s       r   GlossaryRemoveIamPolicyBindingrQ      s+    -&
%%ffd;	lF	33r   c                 ~    t        j                  |t        j                         j                        }t        | |      S )z)Set IAM policy binding request from file.)r   ParsePolicyFiler	   r
   GoogleIamV1PolicyrB   )r@   policy_filer9   s      r   GlossarySetIamPolicyFromFilerV      s5    ##<002DD& 
lF	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   