
                            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  \R                  \R                  " \R                   R"                  5       " S
 S\R$                  5      5       5       r\R                  " \R                   R(                  5       " S S\5      5       r\R                  " \R                   R,                  5       " S S\5      5       rSS0\l        g)z/Command for creating network firewall policies.    )absolute_import)division)unicode_literals)base_classes)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 Compute Engine Network firewall policy.

*{command}* is used to create network firewall policies. A network
firewall policy is a set of rules that controls access to various resources.
FNc                 P   [         R                  " SSS9U l        U R                  R                  USS9  [         R                  " U5        / nU R
                  (       a  UR                  S5        U R                  (       a  UR                  S5        [         R                  " X5        g )NTcreate)required	operation)operation_type
ULL_POLICYRDMA_FALCON_POLICY)	r
   NetworkFirewallPolicyArgumentNETWORK_FIREWALL_POLICY_ARGAddArgument#AddArgNetworkFirewallPolicyCreationsupport_ull_policy_typeappendsupport_falcon_policy_typeAddPolicyType)clsparseradditional_policy_typess      7lib/surface/compute/network_firewall_policies/create.pyArgsCreate.Args)   s    &+&I&I'C# ##//x/P	--f5 
""$$\2
%%$$%9:	8    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UR                  R                  R                  UR                  UR                  5       S9nUR                  S5      (       a>  UR                  R                  R                  R!                  UR"                  5      Ul        UR'                  USS9$ )N)compute_clientregion)descriptionnamepolicy_typeF)firewall_policyonly_generate_request)r   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcesr   NetworkFirewallPolicyhasattrr   RegionNetworkFirewallPolicymessagesFirewallPolicyr(   NameIsSpecifiedPolicyTypeValueValuesEnumr*   
policyTyper   )selfargsholderrefnetwork_firewall_policyr+   s         r!   Run
Create.Run9   s   **4+<+<+>?F

*
*
<
<C %::MM sH - I I
mm! mm,,;;$$388: < O &&
--
 
 
/
/
I
I   #))'u *  r$    )__name__
__module____qualname____firstlineno____doc__r   r   r   classmethodr"   r?   __static_attributes__rA   r$   r!   r   r      s2     "$ $9 9r$   r   c                        \ rS rSrSrSrSrSrg)
CreateBetaV   r   FrA   NrB   rC   rD   rE   rF   r   r   rH   rA   r$   r!   rJ   rJ   V   s     "$r$   rJ   c                        \ rS rSrSrSrSrSrg)CreateAlphab   r   TrA   NrL   rA   r$   r!   rN   rN   b   s     !#r$   rN   EXAMPLESa      To create a global network firewall policy named ``my-policy'' under project
    with ID ``test-project'', run:

      $ {command} my-policy           --project=test-project           --global

    To create a regional network firewall policy named ``my-region-policy'' under project
    with ID ``test-project'', in region ``my-region'', run:

      $ {command} my-region-policy           --project=test-project           --region=my-region
    N)rF   
__future__r   r   r   googlecloudsdk.api_lib.computer   8googlecloudsdk.api_lib.compute.network_firewall_policiesr   r   googlecloudsdk.callioper	   <googlecloudsdk.command_lib.compute.network_firewall_policiesr
   UniverseCompatibleReleaseTracksr.   GACreateCommandr   BETArJ   ALPHArN   detailed_helprA   r$   r!   <module>r]      s    6 &  ' 7 K R ( N D%%(()5T 5 * 5p D%%**+% % ,% D%%++,$& $ -$   r$   