
    9                     v    d Z ddlmZ ddlmZ ddlmZ dZdZ G d de      Z G d	 d
e      Z	 G d de	      Z
y)zNetwork Firewall Policy.    )absolute_import)division)unicode_literalszcompute.globalOperationszcompute.networkFirewallPoliciesc                       e Zd ZdZddZed        Zed        Zed        Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd ZddZ	 ddZddZddZddZddZddZ	 	 	 	 	 	 ddZ	 	 	 ddZ	 ddZy)NetworkFirewallPolicyz-Abstracts a network firewall policy resource.Nc                      || _         || _        y N)ref_compute_client)selfr
   compute_clients      Flib/googlecloudsdk/api_lib/compute/network_firewall_policies/client.py__init__zNetworkFirewallPolicy.__init__   s    DH)D    c                 .    | j                   j                  S r	   )r   apitools_clientr   s    r   _clientzNetworkFirewallPolicy._client!   s    ///r   c                 .    | j                   j                  S r	   )r   messagesr   s    r   	_messageszNetworkFirewallPolicy._messages%   s    (((r   c                 .    | j                   j                  S r	   )r   networkFirewallPoliciesr   s    r   _servicezNetworkFirewallPolicy._service)   s    <<///r   c                     | j                   j                  || j                        }d|j                  v xs d|j                  v S )Nprojects)
_resourcesGetCollectionInfo_versionpathbase_url)r   
collectioncollection_infos      r   _HasProjectz!NetworkFirewallPolicy._HasProject-   sG    oo77DMMO 	o*** 	2111r   c           	      8   |rO| j                   j                  d| j                  j                  ||||nd|| j                  j
                        fS | j                   j                  d| j                  j                  |||| j                  j
                        fS )a  Returns the specified accelerator type.

    Args:
      association: Input message
      firewall_policy: Firewall Policy to attach
      replace_existing_association: Should the call replace existing association
      associated_policy_to_be_replaced: Which policy should be replaced
      support_associated_policy_to_be_replaced: Is
        associated_policy_to_be_replaced supported in API
    AddAssociationN)firewallPolicyAssociationfirewallPolicyreplaceExistingAssociationassociatedPolicyToBeReplacedproject)r'   r(   r)   r+   )r   r   r   3ComputeNetworkFirewallPoliciesAddAssociationRequestr
   r+   )r   associationfirewall_policyreplace_existing_association associated_policy_to_be_replaced(support_associated_policy_to_be_replaceds         r   _MakeAddAssociationRequestTuplez5NetworkFirewallPolicy._MakeAddAssociationRequestTuple6   s    $ 0
,,
.
.

..
L
L(3,19 *F+Khh&& M   	,,JJ&1*'CHH$$	 	K 	
	 	r   c                     | j                   j                  d| j                  j                  ||| j                  j
                        fS )NPatchAssociation)r'   r(   r+   )r   r   r   5ComputeNetworkFirewallPoliciesPatchAssociationRequestr
   r+   )r   r-   r.   s      r   !_MakePatchAssociationRequestTuplez7NetworkFirewallPolicy._MakePatchAssociationRequestTuplea   sG    ,,LL&1*HH$$ 	M 	
 r   c                     | j                   j                  d| j                  j                  | j                  j                         || j                  j                        fS )N
CloneRules)r(   sourceFirewallPolicyr+   )r   r   r   /ComputeNetworkFirewallPoliciesCloneRulesRequestr
   Namer+   )r   source_firewall_policys     r   _MakeCloneRulesRequestTuplez1NetworkFirewallPolicy._MakeCloneRulesRequestTuplel   sQ    ,,FF88==?!7HH$$ 	G 	
 r   c                     | j                   j                  d| j                  j                  || j                  j
                        fS )NInsertr(   r+   )r   r   r   +ComputeNetworkFirewallPoliciesInsertRequestr
   r+   r   r.   s     r   _MakeCreateRequestTuplez-NetworkFirewallPolicy._MakeCreateRequestTuplew   C    ,,BB*DHH4D4D 	C 	
 r   c                     | j                   j                  d| j                  j                  || j                  j
                        fS )NDeleter@   )r   r   r   +ComputeNetworkFirewallPoliciesDeleteRequestr
   r+   rB   s     r   _MakeDeleteRequestTuplez-NetworkFirewallPolicy._MakeDeleteRequestTuple   rD   r   c                     | j                   j                  d| j                  j                  | j                  j                         | j                  j                        fS )NGetr@   )r   r   r   (ComputeNetworkFirewallPoliciesGetRequestr
   r;   r+   r   s    r   _MakeDescribeRequestTuplez/NetworkFirewallPolicy._MakeDescribeRequestTuple   sM    ,,??88==?DHH4D4D 	@ 	
 r   c                     | j                   j                  d| j                  j                  ||| j                  j
                        fS )NRemoveAssociation)r(   namer+   )r   r   r   6ComputeNetworkFirewallPoliciesRemoveAssociationRequestr
   r+   )r   r.   rO   s      r   "_MakeDeleteAssociationRequestTuplez8NetworkFirewallPolicy._MakeDeleteAssociationRequestTuple   sE    ,,MM*txx?O?O 	N 	
 r   c                     | j                   j                  d| j                  j                  | j                  j
                        fS )NList)r+   )r   r   r   )ComputeNetworkFirewallPoliciesListRequestr
   r+   r   s    r   _MakeListRequestTuplez+NetworkFirewallPolicy._MakeListRequestTuple   sA    ,,@@HH$$ 	A 	
 r   c                     | j                   j                  d| j                  j                  | j                  j                         || j                  j                        fS )z2Sends request to update a network firewall policy.Patch)r(   firewallPolicyResourcer+   )r   r   r   *ComputeNetworkFirewallPoliciesPatchRequestr
   r;   r+   rB   s     r   _MakeUpdateRequestTuplez-NetworkFirewallPolicy._MakeUpdateRequestTuple   sS     	,,AA88==?#2HH$$ 	B 	
 r   c                 f    | j                  |      g}|s| j                  j                  |      S |S )zBSends request to clone all the rules from another firewall policy.)r<   )r=   r   MakeRequests)r   r<   only_generate_requestrequestss       r   r8   z NetworkFirewallPolicy.CloneRules   sB    
 	((#9 	) 	
H
 !!!..x88Or   c                 f    | j                  |      g}|s| j                  j                  |      S |S )z2Sends request to create a network firewall policy.r.   )rC   r   r\   r   r.   r]   r^   s       r   CreatezNetworkFirewallPolicy.Create   7    ,,_,MNH !!..x88Or   c                 f    | j                  |      g}|s| j                  j                  |      S |S )z2Sends request to delete a network firewall policy.r`   )rH   r   r\   ra   s       r   rF   zNetworkFirewallPolicy.Delete   rc   r   c                 b    | j                         g}|s| j                  j                  |      S |S )z4Sends request to describe a network firewall policy.)rL   r   r\   r   r]   r^   s      r   DescribezNetworkFirewallPolicy.Describe   s2    ..01H !!..x88Or   c                 b    | j                         g}|s| j                  j                  |      S |S )z8Sends request to list all the network firewall policies.)rU   r   r\   rf   s      r   rS   zNetworkFirewallPolicy.List   s2    **,-H !!..x88Or   c                 d    | j                  |      g}|s| j                  j                  |      S |S )z3Sends request to update an network firewall policy.)rZ   r   r\   ra   s       r   UpdatezNetworkFirewallPolicy.Update   s4    ,,_=>H !!..x88Or   c                 l    | j                  |||||      g}|s| j                  j                  |      S |S )z$Sends request to add an association.)r2   r   r\   )r   r-   r.   r/   r0   r1   r]   r^   s           r   r&   z$NetworkFirewallPolicy.AddAssociation   sI     	,,(,4	
H !!!..x88Or   c                 f    | j                  ||      g}|s| j                  j                  |      S |S )z&Sends request to patch an association.)r6   r   r\   )r   r-   r.   r]   r^   s        r   r4   z&NetworkFirewallPolicy.PatchAssociation   s<     	..{OLH !!!..x88Or   c                 f    | j                  ||      g}|s| j                  j                  |      S |S )z'Sends request to delete an association.)rQ   r   r\   )r   r.   rO   r]   r^   s        r   DeleteAssociationz'NetworkFirewallPolicy.DeleteAssociation  s8     77NOH !!..x88Or   r	   )NF)F)NNFNFFNNF)__name__
__module____qualname____doc__r   propertyr   r   r   r$   r2   r6   r=   rC   rH   rL   rQ   rU   rZ   r8   rb   rF   rg   rS   rj   r&   r4   rn    r   r   r   r      s    5* 0 0 ) ) 0 0)V		
 @E #('+/4!2 !	 DIr   r   c                   z     e Zd ZdZd fd	Z	 ddZddZddZ	 ddZ	 	 	 ddZ		 ddZ
	 dd	Z	 	 	 	 dd
Z xZS )NetworkFirewallPolicyRulez&Abstracts Network FirewallPolicy Rule.c                 0    t         t        |   ||       y N)r
   r   )superrw   r   r   r
   r   	__class__s      r   r   z"NetworkFirewallPolicyRule.__init__  s    	
#T3 4 r   c                     | j                   j                  d| j                  j                  ||| j                  j
                        fS )NAddRuler(   firewallPolicyRuler+   )r   r   r   ,ComputeNetworkFirewallPoliciesAddRuleRequestr
   r+   r   r.   firewall_policy_rules      r   _MakeCreateRuleRequestTuplez5NetworkFirewallPolicyRule._MakeCreateRuleRequestTuple  sI     	,,CC*3HH$$ 	D 	
 r   c                     | j                   j                  d| j                  j                  ||| j                  j
                        fS )N
RemoveRuler(   priorityr+   )r   r   r   /ComputeNetworkFirewallPoliciesRemoveRuleRequestr
   r+   r   r   r.   s      r   _MakeDeleteRuleRequestTuplez5NetworkFirewallPolicyRule._MakeDeleteRuleRequestTuple$  sG    ,,FF*HH$$ 	G 	
 r   c                     | j                   j                  d| j                  j                  ||| j                  j
                        fS )NGetRuler   )r   r   r   ,ComputeNetworkFirewallPoliciesGetRuleRequestr
   r+   r   s      r   _MakeDescribeRuleRequestTuplez7NetworkFirewallPolicyRule._MakeDescribeRuleRequestTuple/  sG    ,,CC*HH$$ 	D 	
 r   c                     | j                   j                  d| j                  j                  |||| j                  j
                        fS )N	PatchRuler   r(   r   r+   )r   r   r   .ComputeNetworkFirewallPoliciesPatchRuleRequestr
   r+   r   r   r.   r   s       r   _MakeUpdateRuleRequestTuplez5NetworkFirewallPolicyRule._MakeUpdateRuleRequestTuple:  sL     	,,EE*3HH$$	 	F 	
	 	r   c                 h    | j                  ||      g}|s| j                  j                  |      S |S )z8Sends request to create an network firewall policy rule.)r.   r   )r   r   r\   )r   r.   r   r]   r^   s        r   
CreateRulez$NetworkFirewallPolicyRule.CreateRuleH  sE     	((+!5 	) 	
H !!!..x88Or   c                 h    | j                  ||      g}|s| j                  j                  |      S |S )z8Sends request to delete an network firewall policy rule.r   r.   )r   r   r\   r   r   r.   r]   r^   s        r   
DeleteRulez$NetworkFirewallPolicyRule.DeleteRuleY  sD     	(( 	) 	
H
 !!!..x88Or   c                 h    | j                  ||      g}|s| j                  j                  |      S |S )z1Sends request to describe a firewall policy rule.r   )r   r   r\   r   s        r   DescribeRulez&NetworkFirewallPolicyRule.DescribeRuleg  sD    
 	** 	+ 	
H
 !!!..x88Or   c                 j    | j                  |||      g}|s| j                  j                  |      S |S )z8Sends request to update an network firewall policy rule.)r   r.   r   )r   r   r\   )r   r   r.   r   r]   r^   s         r   
UpdateRulez$NetworkFirewallPolicyRule.UpdateRulet  sH     	((+!5 	) 	
H !!!..x88Or   NNNNNro   )NNNF)rp   rq   rr   rs   r   r   r   r   r   r   r   r   r   __classcell__r|   s   @r   rw   rw     sf    . 8<		 GK  !	$ HM HM !r   rw   c                   H     e Zd ZdZd fd	Z	 ddZddZddZ	 ddZ xZ	S )	(NetworkFirewallPolicyPacketMirroringRulez7Abstracts Network FirewallPolicy Packet Mirroring Rule.c                 0    t         t        |   ||       y ry   )rz   r   r   r{   s      r   r   z1NetworkFirewallPolicyPacketMirroringRule.__init__  s    	
2DB C r   c                     | j                   j                  d| j                  j                  ||| j                  j
                        fS )NAddPacketMirroringRuler   )r   r   r   ;ComputeNetworkFirewallPoliciesAddPacketMirroringRuleRequestr
   r+   r   s      r   r   zDNetworkFirewallPolicyPacketMirroringRule._MakeCreateRuleRequestTuple  sI     	,, RR*3HH$$ 	S 	
 r   c                     | j                   j                  d| j                  j                  ||| j                  j
                        fS )NRemovePacketMirroringRuler   )r   r   r   >ComputeNetworkFirewallPoliciesRemovePacketMirroringRuleRequestr
   r+   r   s      r   r   zDNetworkFirewallPolicyPacketMirroringRule._MakeDeleteRuleRequestTuple  sG    ,,#UU*HH$$ 	V 	
 r   c                     | j                   j                  d| j                  j                  ||| j                  j
                        fS )NGetPacketMirroringRuler   )r   r   r   ;ComputeNetworkFirewallPoliciesGetPacketMirroringRuleRequestr
   r+   r   s      r   r   zFNetworkFirewallPolicyPacketMirroringRule._MakeDescribeRuleRequestTuple  sG    ,, RR*HH$$ 	S 	
 r   c                     | j                   j                  d| j                  j                  |||| j                  j
                        fS )NPatchPacketMirroringRuler   )r   r   r   =ComputeNetworkFirewallPoliciesPatchPacketMirroringRuleRequestr
   r+   r   s       r   r   zDNetworkFirewallPolicyPacketMirroringRule._MakeUpdateRuleRequestTuple  sL     	,,"TT*3HH$$	 	U 	
	 	r   r   r   )
rp   rq   rr   rs   r   r   r   r   r   r   r   s   @r   r   r     s+    ? 8<		 GKr   r   N)rs   
__future__r   r   r   OP_COLLECTION_NAMEAPI_COLLECTION_NAMEobjectr   rw   r   ru   r   r   <module>r      sM     &  ' 0 7 rF rjw 5 wt7/H 7r   