
                             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 updating a firewall rule.    )absolute_import)division)unicode_literals)util)appengine_firewall_api_client)base)firewall_rules_util)flags)logc                   0    e Zd ZdZdddZed        Zd Zy)UpdatezUpdates a firewall rule.z{description}z          To update an App Engine firewall rule, run:

              $ {command} 1234
                  --source-range='2001:db8::/32'
                  --action=allow
                  --description='This is an example rule.'
          )DESCRIPTIONEXAMPLESc                 p    t         j                  j                  |        t        j                  | d       y )NF)required)r
   FIREWALL_PRIORITY_FLAGAddToParserAddFirewallRulesFlags)parsers    (lib/surface/app/firewall_rules/update.pyArgszUpdate.Args.   s&    	  ,,V4	7    c                    t        j                  | j                               }t        j                  |j
                        }t        j                  ||      }t        j                  |j                  |j                        }	 |j                  |||j                  ||j                        }t!        j"                  |       S # t        j                  $ r t        j                          Y @w xY w)N)
api_clientGetApiClientForTrackReleaseTrackr	   ParsePrioritypriorityParseFirewallRuleParseActionmessagesactionr   source_rangedescriptionr   NoFieldsSpecifiedErrorRaiseMinArgumentr   UpdatedResource)selfargsclientr   resourcer"   rules          r   Runz
Update.Run3   s    ,,T->->-@AF"00?H"44VXFH ,,V__dkkJF-]]8Xt/@/@&++-d
 !K	 && -**,-s   )C 'C.-C.N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   r-    r   r   r   r      s/      	- 8 8r   r   N)r1   
__future__r   r   r   googlecloudsdk.api_lib.appr   googlecloudsdk.api_lib.app.apir   r   googlecloudsdk.callioper   googlecloudsdk.command_lib.appr	   r
   googlecloudsdk.corer   UpdateCommandr   r4   r   r   <module>r<      s7    , &  ' 3 V ( > 0 ##T #r   