
                             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 dd
lmZ  G d de	j                         Zy)z%Surface for creating a firewall rule.    )absolute_import)division)unicode_literals)appengine_firewall_api_client)base)
exceptions)firewall_rules_util)flags)logc                   0    e Zd ZdZdddZed        Zd Zy)CreatezCreates a firewall rule.z{description}z          To create a new App Engine firewall rule, run:

              $ {command} 1234
                --source-range='2001:db8::/32'
                --action=deny
                --description='block traffic from the example range.'
          )DESCRIPTIONEXAMPLESc                 p    t         j                  j                  |        t        j                  | d       y )NT)required)r
   FIREWALL_PRIORITY_FLAGAddToParserAddFirewallRulesFlags)parsers    (lib/surface/app/firewall_rules/create.pyArgszCreate.Args.   s&    	  ,,V4	6    c                    t        j                  | j                               }t        j                  |j
                        }|t        j                  k(  rt        j                  dd      t        j                  |j                  |j                        }|j                  ||j                  ||j                        }t        j                   |j
                         |S )Npriorityz/The `default` can not be created, only updated.)
api_clientGetApiClientForTrackReleaseTrackr	   ParsePriorityr   DEFAULT_RULE_PRIORITYr   InvalidArgumentExceptionParseActionmessagesactionr   source_rangedescriptionr   CreatedResource)selfargsclientr   r#   rules         r   Runz
Create.Run3   s    ,,T->->-@AF"00?H&<<<//
GI I !,,V__dkkJF==4#4#4fd>N>NOD&Kr   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   r+    r   r   r   r      s/      	- 7 7r   r   N)r/   
__future__r   r   r   googlecloudsdk.api_lib.app.apir   r   googlecloudsdk.callioper   r   googlecloudsdk.command_lib.appr	   r
   googlecloudsdk.corer   CreateCommandr   r2   r   r   <module>r9      s7    , &  ' V ( . > 0 #"T "r   