
    E                         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	 S
\R                  5      r " S S\5      r " S S\5      rg)zOrganization Security policy.    )absolute_import)division)unicode_literals)poller)waiterz$compute.globalOrganizationOperationsz$compute.organizationSecurityPoliciesc                       \ rS rSrS rSrg)DeletePoller   c                     g N )self	operations     Blib/googlecloudsdk/api_lib/compute/org_security_policies/client.py	GetResultDeletePoller.GetResult   s         r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r	   r	      s    r   r	   c                   X   \ rS rSrSr    SS jrS r\S 5       r\S 5       r	\S 5       r
S	 rS
 rS rS S jrS!S jrS S jrS!S jr  S!S jrS rS r     S"S jr   S#S jr   S#S jrS#S jrS!S jr    S$S jr    S%S jr    S%S jrS#S jrS#S jr    S&S jrSr g)'OrgSecurityPolicy$   z/Abstracts Organization SecurityPolicy resource.Nc                     Xl         X l        X0l        US:X  a  SOUU l        U R	                  [
        5      U l        U R	                  [        5      U l        g )Ngav1)	ref_compute_client
_resources_version_HasProjectOP_COLLECTION_NAME_op_has_projectAPI_COLLECTION_NAME_api_has_project)r   r   compute_client	resourcesversions        r   __init__OrgSecurityPolicy.__init__'   sK    
 H)O#tODDM++,>?D ,,-@ADr   c                     U R                   R                  UU R                  5      nSUR                  ;   =(       d    SUR                  ;   $ )Nprojects)r!   GetCollectionInfor"   pathbase_url)r   
collectioncollection_infos      r   r#   OrgSecurityPolicy._HasProject3   sF    oo77
8<GO/... 3/2224r   c                 .    U R                   R                  $ r   )r    apitools_clientr   s    r   _clientOrgSecurityPolicy._client9   s    ///r   c                 .    U R                   R                  $ r   )r    messagesr7   s    r   	_messagesOrgSecurityPolicy._messages=   s    (((r   c                 .    U R                   R                  $ r   )r8   organizationSecurityPoliciesr7   s    r   _serviceOrgSecurityPolicy._serviceA   s    <<444r   c                 f    U R                   R                  SU R                  R                  UUUS94$ )NAddAssociation)securityPolicyAssociationsecurityPolicyreplaceExistingAssociation)r8   r?   r<   8ComputeOrganizationSecurityPoliciesAddAssociationRequest)r   associationsecurity_policy_idreplace_existing_associations       r   _MakeAddAssociationRequestTuple1OrgSecurityPolicy._MakeAddAssociationRequestTupleE   sB     	113COO&1-'C 	P 	EF Fr   c                     U R                   R                  SU R                  R                  U R                  R                  5       US94$ )NRemoveAssociation)namerE   )r8   r?   r<   ;ComputeOrganizationSecurityPoliciesRemoveAssociationRequestr   Name)r   rI   s     r   "_MakeDeleteAssociationRequestTuple4OrgSecurityPolicy._MakeDeleteAssociationRequestTupleN   sG    LL557JNNHHXX]]_5G I IJ Jr   c                 b    U R                   R                  SU R                  R                  US94$ )NListAssociations)targetResource)r8   r?   r<   :ComputeOrganizationSecurityPoliciesListAssociationsRequest)r   target_resources     r   !_MakeListAssociationsRequestTuple3OrgSecurityPolicy._MakeListAssociationsRequestTupleT   s7    LL557INNGG. H 01 1r   c                 b    U R                   R                  SU R                  R                  US94$ )NDeleterE   )r8   r?   r<   0ComputeOrganizationSecurityPoliciesDeleteRequestr   sp_ids     r   _MakeDeleteRequestTuple)OrgSecurityPolicy._MakeDeleteRequestTupleZ   s6    LL55xNNKK$ L &' 'r   c                    U(       a0  U R                   R                  SU R                  R                  XS94$ U R                   R                  SU R                  R                  U R                  R                  5       US94$ )NPatch)rE   securityPolicyResource)r8   r?   r<   /ComputeOrganizationSecurityPoliciesPatchRequestr   rQ   )r   r`   security_policys      r   _MakeUpdateRequestTuple)OrgSecurityPolicy._MakeUpdateRequestTuple_   s    ll77nnLL!& M PQ Q LL55wNNJJ#xx}}'6 K 89 9r   c                     U(       a0  U R                   R                  SU R                  R                  US94$ U R                   R                  SU R                  R                  U R                  R                  5       S94$ )NGetr]   )r8   r?   r<   -ComputeOrganizationSecurityPoliciesGetRequestr   rQ   r_   s     r   _MakeDescribeRequestTuple+OrgSecurityPolicy._MakeDescribeRequestTuplei   sy    ll77nnJJ!& K () ) LL55uNNHH#xx}} I 01 1r   c                 b    U R                   R                  SU R                  R                  XS94$ )NMove)rE   parentId)r8   r?   r<   .ComputeOrganizationSecurityPoliciesMoveRequest)r   r`   	parent_ids      r   _MakeMoveRequestTuple'OrgSecurityPolicy._MakeMoveRequestTupler   s6    LL55vNNII$ J :; ;r   c                 d    U R                   R                  SU R                  R                  UUS94$ )N	CopyRules)rE   sourceSecurityPolicy)r8   r?   r<   3ComputeOrganizationSecurityPoliciesCopyRulesRequest)r   
dest_sp_idsource_security_policys      r   _MakeCopyRulesRequestTuple,OrgSecurityPolicy._MakeCopyRulesRequestTuplew   s;     LL55{NNNN)%; O => >r   c                 b    U R                   R                  SU R                  R                  US94$ )NList)rq   )r8   r?   r<   .ComputeOrganizationSecurityPoliciesListRequest)r   rs   s     r   _MakeListRequestTuple'OrgSecurityPolicy._MakeListRequestTuple   s6    LL55vNNII" J $% %r   c                 b    U R                   R                  SU R                  R                  X!S94$ )NInsert)rq   rE   )r8   r?   r<   0ComputeOrganizationSecurityPoliciesInsertRequest)r   rg   rs   s      r   _MakeCreateRequestTuple)OrgSecurityPolicy._MakeCreateRequestTuple   s9    LL55xNNKK" L DE Er   c                     U(       a7  U R                  XU5      /nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  XU5      S   5      nU R                  USS9$ )z$Sends request to add an association.   z4Add association of the organization Security Policy.message)rK   r    MakeRequestsr@   rC   WaitOperation)r   rH   rI   rJ   
batch_modeonly_generate_requestrequestsop_ress           r   rC    OrgSecurityPolicy.AddAssociation   s     

.
.{/KMh ###00::o]])),,[-I	KKL	NOF N  P Pr   c                     U(       a6  U R                  U5      /nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  U5      S   5      nU R                  USS9$ )z'Sends request to delete an association.r   z7Delete association of the organization Security Policy.r   )rR   r    r   r@   rN   r   )r   rI   r   r   r   r   s         r   DeleteAssociation#OrgSecurityPolicy.DeleteAssociation   s     99:LMNh"##00::o]],,//0BCAFHFI  K Kr   c                     U(       a6  U R                  U5      /nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  U5      S   5      /$ )z+Sends request to list all the associations.r   )rY   r    r   r@   rU   )r   rX   r   r   r   s        r   rU   "OrgSecurityPolicy.ListAssociations   sk     88IJh"##00::o 	&&22?CAF	H r   c                 0   U(       a4  U R                  US9/nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  US9S   5      n[        U R                  U R                  5      nU R                  UUSS9$ )z*Sends request to delete a security policy.r`   r   z(Delete the organization Security Policy.)operation_pollerr   )ra   r    r   r@   r\   r	   r   r   )r   r`   r   r   r   r   r   s          r   r\   OrgSecurityPolicy.Delete   s     ..U.;<h"##00::o]]!!$">">U">"KA"NOF#DMM488<):  < <r   c                 z   U(       d4  [         R                  " U R                  U R                  U R                  S9nU R
                  (       a1  SUR                  ;  a!  UR                  R                  SS5      Ul        U R                  R                  UR                  [        S9n[        R                  " X$U5      $ )N)has_projectr.   	locationszprojects/locations)r2   )r   Pollerr@   r   r'   r%   selfLinkreplacer!   Parser$   r   WaitFor)r   r   r   r   operation_refs        r   r   OrgSecurityPolicy.WaitOperation   s    
--t/D/DF
)2D2D D$--55k6JLiOO))'9 * ;M>>*7CCr   c                     U(       a4  U R                  XS9/nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  XS9S   5      nU R                  USS9$ )z*Sends request to update a security policy.)r`   rg   r   z(Update the organization Security Policy.r   )rh   r    r   r@   rd   r   )r   r`   r   rg   r   r   r   s          r   UpdateOrgSecurityPolicy.Update   s     

&
& ' <h ###00::o]]  $$ 	% 	::;	=>F B  D Dr   c                     U(       a4  U R                  X#S9/nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  X#S9S   5      nU R                  USS9$ )z;Sends request to move the security policy to anther parent.)r`   rs   r   z&Move the organization Security Policy.r   )rt   r    r   r@   rp   r   )r   r   r`   rs   r   r   r   s          r   rp   OrgSecurityPolicy.Move   s     ,,5,NOh"##00::o]]"""DQGIF@  B Br   c                     U(       a5  U R                  UUS9/nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  UUS9S   5      nU R                  USS9$ )zASends request to copy all the rules from another security policy.)rz   r{   r   z0Copy rules for the organization Security Policy.r   )r|   r    r   r@   rw   r   )r   r   rz   r{   r   r   r   s          r   rw   OrgSecurityPolicy.CopyRules  s     

)
)#%; * =h
 ###00::o]]$$''!#9 	( 	;;<	>?F J  L Lr   c                     U(       a4  U R                  US9/nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  US9S   5      /$ )z,Sends request to describe a security policy.r   r   )rm   r    r   r@   rk   )r   r`   r   r   r   s        r   DescribeOrgSecurityPolicy.Describe  sg     00u0=>h"##00::oMMd<<5<I!LMNNr   c                     U(       a6  U R                  U5      /nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  U5      S   5      /$ )z0Sends request to list all the security policies.r   )r   r    r   r@   r   )r   rs   r   r   r   s        r   r   OrgSecurityPolicy.List(  sa     ,,Y78h"##00::oMMt99)DQGHIIr   c                     U(       a6  U R                  X5      /nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  X5      S   5      nU R                  USS9$ )z*Sends request to create a security policy.r   z(Create the organization Security Policy.r   )r   r    r   r@   r   r   )r   rg   rs   r   r   r   r   s          r   CreateOrgSecurityPolicy.Create3  s     ..JKh"##00::o]]!!$$_@CEFB  D Dr   )r'   r    r%   r!   r"   r   NNNbetar   NN)NNFFF)NFF)NFNF)FNNFNNFF)!r   r   r   r   __doc__r+   r#   propertyr8   r<   r@   rK   rR   rY   ra   rh   rm   rt   r|   r   r   rC   r   rU   r\   r   r   rp   rw   r   r   r   r   r   r   r   r   r   $   s6   7 "	
B4 0 0 ) ) 5 5FJ1'
91; -18<>%
E "&(,27 %+0P0 ,0#(.3K& (,"'-2"< 	D #(!	D. "'	B$ ','+ 	L0	O	J "#(	Dr   r   c                      ^  \ rS rSrSr    SU 4S jjr  SS jrSS jrSS jr   SS jr	    SS jr
    SS	 jr    SS
 jr     SS jrSrU =r$ )OrgSecurityPolicyRuleiF  z+Abstracts Organization SecurityPolicy Rule.c                 .   > [         [        U ]  UUUUS9  g )N)r   r(   r)   r*   )superr   r+   )r   r   r(   r)   r*   	__class__s        r   r+   OrgSecurityPolicyRule.__init__I  s&    
 

/%	 0 r   c                 d    U R                   R                  SU R                  R                  UUS94$ )NAddRule)rE   securityPolicyRule)r8   r?   r<   1ComputeOrganizationSecurityPoliciesAddRuleRequest)r   rg   security_policy_rules      r   _MakeCreateRuleRequestTuple1OrgSecurityPolicyRule._MakeCreateRuleRequestTupleT  s;     LL55yNNLL.#7 M 9: :r   c                 b    U R                   R                  SU R                  R                  X!S94$ )N
RemoveRulerE   priority)r8   r?   r<   4ComputeOrganizationSecurityPoliciesRemoveRuleRequestr   r   rg   s      r   _MakeDeleteRuleRequestTuple1OrgSecurityPolicyRule._MakeDeleteRuleRequestTuple\  s9    LL55|NNOO. P CD Dr   c                 b    U R                   R                  SU R                  R                  X!S94$ )NGetRuler   )r8   r?   r<   1ComputeOrganizationSecurityPoliciesGetRuleRequestr   s      r   _MakeDescribeRuleRequestTuple3OrgSecurityPolicyRule._MakeDescribeRuleRequestTuplea  s9    LL55yNNLL. M CD Dr   c                 f    U R                   R                  SU R                  R                  UUUS94$ )N	PatchRule)r   rE   r   )r8   r?   r<   3ComputeOrganizationSecurityPoliciesPatchRuleRequest)r   r   rg   r   s       r   _MakeUpdateRuleRequestTuple1OrgSecurityPolicyRule._MakeUpdateRuleRequestTuplef  s>     LL55{NNNN!.#7 O 9: :r   c                     U(       a5  U R                  UUS9/nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  UUS9S   5      nU R                  USS9$ )z/Sends request to create a security policy rule.)rg   r   r   z/Add a rule of the organization Security Policy.r   )r   r    r   r@   r   r   )r   rg   r   r   r   r   r   s          r   r   OrgSecurityPolicyRule.Createp  s     

*
*-#7 + 9h
 ###00::o]]""((+!5 	) 	778	:;F I  K Kr   c                     U(       a4  U R                  XS9/nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  XS9S   5      nU R                  USS9$ )z/Sends request to delete a security policy rule.r   rg   r   z2Delete a rule of the organization Security Policy.r   )r   r    r   r@   r   r   )r   r   rI   r   r   r   r   s          r   r\   OrgSecurityPolicyRule.Delete  s     

*
* + Eh ###00::o]]%%(( 	) 	CCD	FGF L  N Nr   c                     U(       a4  U R                  XS9/nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  XS9S   5      $ )z1Sends request to describe a security policy rule.r   r   )r   r    r   r@   r   )r   r   rI   r   r   r   s         r   r   OrgSecurityPolicyRule.Describe  s     

,
, - Eh ###00::o==  ** 	+ 	CCD	FG Gr   c                     U(       a6  U R                  UUUS9/nU(       d  U R                  R                  U5      $ U$ U R                  R	                  U R                  UUUS9S   5      nU R                  USS9$ )z/Sends request to update a security policy rule.)r   rg   r   r   z2Update a rule of the organization Security Policy.r   )r   r    r   r@   r   r   )r   r   rg   r   r   r   r   r   s           r   r   OrgSecurityPolicyRule.Update  s     

*
*-#7 + 9h ###00::o]]$$((+!5 	) 	7 89	:;F
 L  N Nr   r   r   r   )NNNr   )NNNFF)r   r   r   r   r   r+   r   r   r   r   r   r\   r   r   r   __classcell__)r   s   @r   r   r   F  s    3 "		 377;:D
D ,0267;: ""&#(	K2  $#(	N. "&%*	G* !"&#(N Nr   r   N)r   
__future__r   r   r   )googlecloudsdk.api_lib.compute.operationsr   googlecloudsdk.api_lib.utilr   r$   r&   r   r	   objectr   r   r   r   r   <module>r      sW    $ &  ' < .; < 6== _D _DD	EN- ENr   