
    ,                         d Z ddlmZ ddlmZ ddlmZ ddlZddlmZ ddlm	Z	 ddl
mZ dd	lmZ d
Zej                  j                   diZd Zd Zd Zd Zd Z G d de      Z G d de      Zy)z%Utilities for the Org Policy service.    )absolute_import)division)unicode_literalsN)utils)apis)base)orgpolicy_v2_messages	orgpolicyv2c                 ,    t         j                  |       S )z2Returns the api version of the Org Policy service.)VERSION_MAPget)release_tracks    /lib/googlecloudsdk/api_lib/orgpolicy/service.pyGetApiVersionr       s    		''    c                 L    t        |       }t        j                  t        |      S )z4Returns a client instance of the Org Policy service.)r   r   GetClientInstanceORG_POLICY_API_NAMEr   api_versions     r   OrgPolicyClientr   %        m,+			 3[	AAr   c                 L    t        |       }t        j                  t        |      S )z7Returns the messages module for the Org Policy service.)r   r   GetMessagesModuler   r   s     r   OrgPolicyMessagesr   +   r   r   c                 0    t        |       }|j                  S )z2Returns the service class for the Policy resource.)r   policiesr   clients     r   PolicyServicer!   1   s    =)&	r   c                 0    t        |       }|j                  S )z6Returns the service class for the Constraint resource.)r   constraintsr   s     r   ConstraintServicer$   7   s    =)&			r   c                       e Zd ZdZ fdZd Zej                  d        Zej                  d        Z	ej                  	 dde
j                  fd       Zej                  d        Zej                  d	        Zej                  d
        Zej                  dd       Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zej                  dd       Zej                  	 	 	 	 	 dd       Zej                  	 	 dd       Z xZS )OrgPolicyApizBase class for Org Policy API.c                 n    |t         j                  j                  k(  rt        t        |   t              S y N)r   ReleaseTrackGAsuperr&   __new__OrgPolicyApiGA)clsr   	__class__s     r   r,   zOrgPolicyApi.__new__@   s.    )),,,<-n== -r   c                     t        |      }t        j                  t        |      | _        t        j
                  t        |      | _        y r(   )r   r   r   r   r    r   messages)selfr   r   s      r   __init__zOrgPolicyApi.__init__D   s6    .K(()<kJDK**+>LDMr   c                      y r(    r2   names     r   	GetPolicyzOrgPolicyApi.GetPolicyI       r   c                      y r(   r5   r6   s     r   GetEffectivePolicyzOrgPolicyApi.GetEffectivePolicyM   r9   r   returnc                      y r(   r5   )r2   r7   etags      r   DeletePolicyzOrgPolicyApi.DeletePolicyQ        	r   c                      y r(   r5   r2   parents     r   ListPolicieszOrgPolicyApi.ListPoliciesW   r9   r   c                      y r(   r5   rB   s     r   ListConstraintszOrgPolicyApi.ListConstraints[   r9   r   c                      y r(   r5   )r2   policys     r   CreatePolicyzOrgPolicyApi.CreatePolicy_   r9   r   c                      y r(   r5   )r2   rH   update_masks      r   UpdatePolicyzOrgPolicyApi.UpdatePolicyc   r9   r   c                      y r(   r5   r2   custom_constraints     r   CreateCustomConstraintz#OrgPolicyApi.CreateCustomConstraintg   r9   r   c                      y r(   r5   rN   s     r   UpdateCustomConstraintz#OrgPolicyApi.UpdateCustomConstraintk   r9   r   c                      y r(   r5   r6   s     r   GetCustomConstraintz OrgPolicyApi.GetCustomConstrainto   r9   r   c                      y r(   r5   r6   s     r   DeleteCustomConstraintz#OrgPolicyApi.DeleteCustomConstraints   r9   r   c                      y r(   r5   r2   s    r   CreateEmptyPolicySpecz"OrgPolicyApi.CreateEmptyPolicySpecw   r9   r   c                      y r(   r5   r6   s     r   BuildPolicyzOrgPolicyApi.BuildPolicy{   r9   r   c                      y r(   r5   )r2   r7   has_spechas_dry_run_specs       r   BuildEmptyPolicyzOrgPolicyApi.BuildEmptyPolicy   r9   r   c                      y r(   r5   r2   	condition	allow_alldeny_allenforcevaluess         r   BuildPolicySpecPolicyRulez&OrgPolicyApi.BuildPolicySpecPolicyRule   s     	r   c                      y r(   r5   r2   allowed_valuesdenied_valuess      r   %BuildPolicySpecPolicyRuleStringValuesz2OrgPolicyApi.BuildPolicySpecPolicyRuleStringValues   r@   r   r(   FFNNNNNr5   r5   )__name__
__module____qualname____doc__r,   r3   abcabstractmethodr8   r;   r	   GoogleProtobufEmptyr?   rD   rF   rI   rL   rP   rR   rT   rV   rY   r[   r_   rg   rl   __classcell__)r/   s   @r   r&   r&   =   s   &>M
 	 	 	 	 	00	 	
 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 *.*.)-(,'+	 	 ;=:<	 	r   r&   c                       e Zd ZdZd Zd Z	 ddedej                  fdZ	d Z
d	 Zd
 ZddZd Zd Zd Zd Zd Zd ZddZ	 	 	 	 	 ddZ	 	 ddZy)r-   z'Base class for all Org Policy V2GA API.c                    |j                  d      rA| j                  j                  |      }| j                  j                  j                  |      S |j                  d      rA| j                  j                  |      }| j                  j                  j                  |      S | j                  j                  |      }| j                  j                  j                  |      S Norganizations/r7   folders/)

startswithr1   (OrgpolicyOrganizationsPoliciesGetRequestr    organizations_policiesGet"OrgpolicyFoldersPoliciesGetRequestfolders_policies#OrgpolicyProjectsPoliciesGetRequestprojects_policiesr2   r7   requests      r   r8   zOrgPolicyApiGA.GetPolicy   s    '(FF G g[[//33G<<		$@@d@Kg[[))--g66AAtALg[[**..w77r   c                    |j                  d      rA| j                  j                  |      }| j                  j                  j                  |      S |j                  d      rA| j                  j                  |      }| j                  j                  j                  |      S | j                  j                  |      }| j                  j                  j                  |      S rz   )
r~   r1   7OrgpolicyOrganizationsPoliciesGetEffectivePolicyRequestr    r   r;   1OrgpolicyFoldersPoliciesGetEffectivePolicyRequestr   2OrgpolicyProjectsPoliciesGetEffectivePolicyRequestr   r   s      r   r;   z!OrgPolicyApiGA.GetEffectivePolicy   s    '(UU V g[[//BB7KK		$OO P g[[))<<WEEPP Q g[[**==gFFr   Nr7   r<   c                    |j                  d      rB| j                  j                  ||      }| j                  j                  j                  |      S |j                  d      rB| j                  j                  ||      }| j                  j                  j                  |      S | j                  j                  ||      }| j                  j                  j                  |      S )Nr{   )r7   r>   r}   )
r~   r1   +OrgpolicyOrganizationsPoliciesDeleteRequestr    r   Delete%OrgpolicyFoldersPoliciesDeleteRequestr   &OrgpolicyProjectsPoliciesDeleteRequestr   )r2   r7   r>   r   s       r   r?   zOrgPolicyApiGA.DeletePolicy   s     '(II$ J g [[//66w??		$CC$ D g [[))0099DD$ E g [[**11'::r   c                    |j                  d      rA| j                  j                  |      }| j                  j                  j                  |      S |j                  d      rA| j                  j                  |      }| j                  j                  j                  |      S | j                  j                  |      }| j                  j                  j                  |      S Nr{   )rC   r}   )
r~   r1   )OrgpolicyOrganizationsPoliciesListRequestr    r   List#OrgpolicyFoldersPoliciesListRequestr   $OrgpolicyProjectsPoliciesListRequestr   r2   rC   r   s      r   rD   zOrgPolicyApiGA.ListPolicies   s    )*GG H g[[//44W==			:	&AAAPg[[))..w77BB C g[[**//88r   c                    |j                  d      rA| j                  j                  |      }| j                  j                  j                  |      S |j                  d      rA| j                  j                  |      }| j                  j                  j                  |      S | j                  j                  |      }| j                  j                  j                  |      S r   )
r~   r1   ,OrgpolicyOrganizationsConstraintsListRequestr    organizations_constraintsr   &OrgpolicyFoldersConstraintsListRequestfolders_constraints'OrgpolicyProjectsConstraintsListRequestprojects_constraintsr   s      r   rF   zOrgPolicyApiGA.ListConstraints   s    )*JJ K g[[2277@@			:	&DD E g[[,,11'::EE F g[[--227;;r   c                    t        j                  |j                        }|j                  d      rC| j                  j                  ||      }| j                  j                  j                  |      S |j                  d      rC| j                  j                  ||      }| j                  j                  j                  |      S | j                  j                  ||      }| j                  j                  j                  |      S )Nr{   )rC   googleCloudOrgpolicyV2Policyr   r}   )r   GetResourceFromPolicyNamer7   r~   r1   +OrgpolicyOrganizationsPoliciesCreateRequestr    r   Create%OrgpolicyFoldersPoliciesCreateRequestr   &OrgpolicyProjectsPoliciesCreateRequestr   )r2   rH   rC   r   s       r   rI   zOrgPolicyApiGA.CreatePolicy   s    ,,V[[9F)*IIf J >g[[//66w6GG			:	&CCf D >g[[))000AADDf E >g[[**11'1BBr   c                 <   |j                   j                  d      rM| j                  j                  |j                   ||      }| j                  j
                  j                  |      S |j                   j                  d      rM| j                  j                  |j                   ||      }| j                  j                  j                  |      S | j                  j                  |j                   ||      }| j                  j                  j                  |      S )Nr{   )r7   r   
updateMaskr}   )r7   r~   r1   *OrgpolicyOrganizationsPoliciesPatchRequestr    r   Patch$OrgpolicyFoldersPoliciesPatchRequestr   %OrgpolicyProjectsPoliciesPatchRequestr   )r2   rH   rK   r   s       r   rL   zOrgPolicyApiGA.UpdatePolicy   s    {{./HH{{'-  I "g [[//55g>>			
	+BB{{'-  C "g [[))//88CC{{'-  D "g [[**0099r   c                     t        j                  |j                        }| j                  j	                  ||      }| j
                  j                  j                  |      S )N)rC   &googleCloudOrgpolicyV2CustomConstraintr   )r   r   r7   r1   4OrgpolicyOrganizationsCustomConstraintsCreateRequestr    organizations_customConstraintsr   )r2   rO   rC   r   s       r   rP   z%OrgPolicyApiGA.CreateCustomConstraint  sX    ,,->-C-CDFmmPP>O Q QG;;66==g=NNr   c                     | j                   j                  ||j                        }| j                  j                  j                  |      S )N)r   r7   )r1   3OrgpolicyOrganizationsCustomConstraintsPatchRequestr7   r    r   r   )r2   rO   r   s      r   rR   z%OrgPolicyApiGA.UpdateCustomConstraint  sE    mmOO/@## P %G ;;66<<WEEr   c                     | j                   j                  |      }| j                  j                  j	                  |      S Nr|   )r1   1OrgpolicyOrganizationsCustomConstraintsGetRequestr    r   r   r   s      r   rT   z"OrgPolicyApiGA.GetCustomConstraint  s:    mmMM N G;;66::7CCr   c                     | j                   j                  |      }| j                  j                  j	                  |      S r   )r1   4OrgpolicyOrganizationsCustomConstraintsDeleteRequestr    r   r   r   s      r   rV   z%OrgPolicyApiGA.DeleteCustomConstraint  s:    mmPP Q G;;66==gFFr   c                 6    | j                   j                         S r(   )r1    GoogleCloudOrgpolicyV2PolicySpecrX   s    r   rY   z$OrgPolicyApiGA.CreateEmptyPolicySpec  s    ==99;;r   c                 p    | j                   j                         }| j                   j                  ||      S )N)r7   specr1   r   GoogleCloudOrgpolicyV2Policy)r2   r7   r   s      r   r[   zOrgPolicyApiGA.BuildPolicy  s.    ==99;D==554d5KKr   c                     d }d }|r| j                   j                         }|r| j                   j                         }| j                   j                  |||      S )N)r7   r   
dryRunSpecr   )r2   r7   r]   r^   r   dry_run_specs         r   r_   zOrgPolicyApiGA.BuildEmptyPolicy  sY    DL]];;=d]]CCEl==55 6  r   c                 B    | j                   j                  |||||      S )N)rb   allowAlldenyAllre   rf   )r1   *GoogleCloudOrgpolicyV2PolicySpecPolicyRulera   s         r   rg   z(OrgPolicyApiGA.BuildPolicySpecPolicyRule)  s0     ==CC D  r   c                 <    | j                   j                  ||      S )N)allowedValuesdeniedValues)r1   6GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValuesri   s      r   rl   z4OrgPolicyApiGA.BuildPolicySpecPolicyRuleStringValues7  s(     ==OO$= P B Br   r(   rm   rn   ro   )rp   rq   rr   rs   r8   r;   strr	   rv   r?   rD   rF   rI   rL   rP   rR   rT   rV   rY   r[   r_   rg   rl   r5   r   r   r-   r-      s    /
8G !;;00;&9<C:(OFD
G
<L	 +/*.)-(,'+ <>:<Br   r-   )rs   
__future__r   r   r   rt    googlecloudsdk.api_lib.orgpolicyr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   2googlecloudsdk.generated_clients.apis.orgpolicy.v2r	   r   r)   r*   r   r   r   r   r!   r$   objectr&   r-   r5   r   r   <module>r      sx    , &  ' 
 2 , ( T!   ##T*(
BBS	6 S	lhB\ hBr   