
    
                         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Ze
j                   G d
 de
j                               Zddde_        y	)z4Command for creating organization firewall policies.    )absolute_import)division)unicode_literals)base_classes)client)base)flagsNc                   *    e Zd ZdZdZed        Zd Zy)CreatezCreate a Compute Engine organization firewall policy.

  *{command}* is used to create organization firewall policies. An organization
  firewall policy is a set of rules that controls access to various resources.
  Nc                     t        j                  |       |j                  j                  t         j                         y )N)r	   AddArgFirewallPolicyCreationdisplay_infoAddCacheUpdaterFirewallPoliciesCompleter)clsparsers     /lib/surface/compute/firewall_policies/create.pyArgszCreate.Args&   s*    	&&v.
''(G(GH    c                    t        j                  | j                               }t        j                  |j                  |j
                  t        j                  | j                               j                               }|j                  d      rd|j                  z   }n |j                  d      rd|j                  z   }|j                  j                  j                  |j                  |j                        }|j!                  |d      S )	N)compute_client	resourcesversionorganizationzorganizations/folderzfolders/)descriptiondisplayNameF)firewall_policy	parent_idonly_generate_request)r   ComputeApiHolderReleaseTrackr   OrgFirewallPolicyr   six	text_typelowerIsSpecifiedr   r   messagesFirewallPolicyr   
short_namer   )selfargsholderorg_firewall_policyr   r   s         r   Runz
Create.Run+   s    **4+<+<+>?F 22}}""d//1288:<
 '"T%6%66i			(	#t{{*imm,,;;$$$// < CO%%'# & % %r   )__name__
__module____qualname____doc__FIREWALL_POLICY_ARGclassmethodr   r/    r   r   r   r      s(     I I%r   r   z    To create an organization firewall policy under folder with ID ``123456789",
    run:

      $ {command} --short-name=my-policy --folder=123456789
    a      To create rules to a firewall policy, the user must have the following
    permission: *`compute.firewallPolicies.create`.

    To find predefined roles that contain those permissions, see the [Compute
    Engine IAM roles](https://cloud.google.com/compute/docs/access/iam).
    )EXAMPLESzIAM PERMISSIONS)r3   
__future__r   r   r   googlecloudsdk.api_lib.computer   0googlecloudsdk.api_lib.compute.firewall_policiesr   googlecloudsdk.callioper   4googlecloudsdk.command_lib.compute.firewall_policiesr	   r$   DefaultUniverseOnlyCreateCommandr   detailed_helpr6   r   r   <module>r@      s^    ; &  ' 7 C ( F 
 %T % %F	 r   