
                            d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	lmZ ej                   ej                  ej                   j"                         G d
 dej$                                      Z ej                  ej                   j(                         G d de             Z ej                  ej                   j,                         G d de             Zddie_        y)z/Command for creating network firewall policies.    )absolute_import)division)unicode_literals)base_classes)client)region_client)base)flagsc                   2    e Zd ZdZdZdZdZed        Zd Z	y)CreateCreate 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                    t        j                  dd      | _        | j                  j                  |d       t        j                  |       | j
                  r&t        j                  || j                  rdgng        y y )NTcreate)required	operation)operation_type
ULL_POLICY)r
   NetworkFirewallPolicyArgumentNETWORK_FIREWALL_POLICY_ARGAddArgument#AddArgNetworkFirewallPolicyCreationsupport_policy_typeAddPolicyTypesupport_ull_policy_type)clsparsers     7lib/surface/compute/network_firewall_policies/create.pyArgszCreate.Args)   sp    &+&I&I'C# ##//x/P	--f5

C$?$?<.R     c                    t        j                  | j                               }| j                  j	                  ||j
                        }t        j                  ||j                        }t        |d      r!t        j                  ||j                        }|j                  j                  j                  |j                  |j                               }| j                  rO|j!                  d      r>|j                  j                  j                  j#                  |j$                        |_        |j)                  |d      S )N)compute_clientregion)descriptionnamepolicy_typeF)firewall_policyonly_generate_request)r   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcesr   NetworkFirewallPolicyhasattrr   RegionNetworkFirewallPolicymessagesFirewallPolicyr#   Namer   IsSpecifiedPolicyTypeValueValuesEnumr%   
policyTyper   )selfargsholderrefnetwork_firewall_policyr&   s         r   Runz
Create.Run6   s   **4+<+<+>?F

*
*
<
<fC %::FMM sH - I I
fmm! mm,,;;$$388: < O D$4$4]$C
--
 
 
/
/
I
I   #))'u *  r   )
__name__
__module____qualname____doc__r   r   r   classmethodr   r:    r   r   r   r      s2     ! $
 
r   r   c                       e Zd ZdZdZdZy)
CreateBetar   TFNr;   r<   r=   r>   r   r   r@   r   r   rB   rB   S   s     !r   rB   c                       e Zd ZdZdZdZy)CreateAlphar   TNrC   r@   r   r   rE   rE   _   s      r   rE   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)r>   
__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   BETArB   ALPHArE   detailed_helpr@   r   r   <module>rS      s    6 &  ' 7 K R ( N D%%(()2T 2 * 2j D%%**+" " ," D%%++,!& ! -!   r   