
                         ,   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SK	J
r
  SSK	Jr  SS	KJr  SS
KJr  \R                   \R"                  " \R$                  R&                  5       " S S\R(                  5      5       5       r\R                   \R"                  " \R$                  R,                  5       " S S\5      5       5       r\R                   \R"                  " \R$                  R0                  5       " S S\5      5       5       rSS0\l        g)z:Command for creating network firewall policy associations.    )absolute_import)division)unicode_literals)base_classes)!firewall_policy_association_utils)client)region_client)base)flagsc                   :    \ rS rSrSrSrSrSr\S 5       r	S r
Srg)Create   Create a new association between a firewall policy and a network.

*{command}* is used to create network firewall policy associations. A
network firewall policy is a set of rules that controls access to various
resources.
NFc                    [         R                  " SSS9U l        U R                  R                  USS9  [         R                  " UU R
                  U R                  5        UR                  R                  [         R                  5        g )NTcreate)required	operation)operation_type)
r   (NetworkFirewallPolicyAssociationArgumentNETWORK_FIREWALL_POLICY_ARGAddArgumentAddArgsCreateAssociation_support_priority)_support_associated_policy_to_be_replaceddisplay_infoAddCacheUpdater NetworkFirewallPoliciesCompleter)clsparsers     Dlib/surface/compute/network_firewall_policies/associations/create.pyArgsCreate.Args*   sy     	66X	/ # ##//x/P	""55
 ''(N(NO    c           	      N   [         R                  " U R                  5       5      nU R                  R	                  XR
                  5      n[        R                  " X2R                  S9n[        US5      (       a  [        R                  " X2R                  S9n[        R                  " S5      R	                  XR
                  5      nS nUR                  S5      (       a  UR                  nOSUR                  5       -   nUR!                  5       nS nU R"                  (       a6  UR                  S5      (       a   [$        R&                  " UR(                  5      nS n	U R*                  (       a"  UR                  S5      (       a  UR,                  n	Sn
UR.                  (       a  S	n
S nU R"                  (       a(  Ub%  UR                  R0                  R3                  XvUS
9nO#UR                  R0                  R3                  XvS9nUR5                  UUR6                  U
U	U R*                  SS9$ )N)compute_clientregionz2The network to which the firewall policy attaches.nameznetwork-priority associated_policy_to_be_replacedFT)attachmentTargetr'   r(   )r*   r'   )associationfirewall_policyreplace_existing_associationr)   (support_associated_policy_to_be_replacedonly_generate_request)r   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcesr   NetworkFirewallPolicyhasattrr	   RegionNetworkFirewallPolicyr   NetworkArgumentForOtherResourceIsSpecifiedr'   NameSelfLinkr   association_utilsConvertPriorityToIntr(   r   r)   replace_association_on_targetmessagesFirewallPolicyAssociationAddAssociationr,   )selfargsholderrefnetwork_firewall_policynetwork_refr'   attachment_targetr(   r)   r-   r+   s               r    Run
Create.Run7   s   **4+<+<+>?F

*
*
<
< C %::MM+sH - I I
mm!- 77<>>O>O""?$  DYYd+**,,d#,,.H$"2"2:">">"77Fh'+$55$:J:J*; ; *.)N)N&#( ))%)"K("6MM**DD,( E k MM**DD, E k #11,,%A)I151_1_# 2  r#    )__name__
__module____qualname____firstlineno____doc__NEWORK_FIREWALL_POLICY_ARGr   r   classmethodr!   rH   __static_attributes__rJ   r#   r    r   r      s4      $.3+
P 
P6r#   r   c                        \ rS rSrSrSrSrSrg)
CreateBetap   r   FrJ   NrK   rL   rM   rN   rO   r   r   rR   rJ   r#   r    rT   rT   p   s     .3+r#   rT   c                        \ rS rSrSrSrSrSrg)CreateAlpha~   r   TrJ   NrV   rJ   r#   r    rX   rX   ~   s     .2+r#   rX   EXAMPLESa      To associate a global network firewall policy with name ``my-policy''
    to network ``my-network'' with an association named ``my-association'', run:

      $ {command}
          --firewall-policy=my-policy
          --network=my-network
          --name=my-association
          --global-firewall-policy

    To associate a network firewall policy with name ``my-region-policy'' in
    region ``region-a''
    to network ``my-network'' with an association named ``my-association'', run:

      $ {command}
          --firewall-policy=my-policy
          --network=my-network
          --name=my-association
          --firewall-policy-region=region-a
    N)rO   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   r;   8googlecloudsdk.api_lib.compute.network_firewall_policiesr   r	   googlecloudsdk.callioper
   <googlecloudsdk.command_lib.compute.network_firewall_policiesr   UniverseCompatibleReleaseTracksr1   GACreateCommandr   BETArT   ALPHArX   detailed_helprJ   r#   r    <module>rg      s   A &  ' 7 a K R ( N D%%(()NT N * Nb D%%**+	4 	4 , 	4 D%%++,	3& 	3 - 	3 	 r#   