
    9                        S r SSKJr  SSKJr  SSKJr  SSK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  SSS.r\R.                  \R0                  " \R2                  R4                  \R2                  R6                  \R2                  R8                  5       " S S\R:                  5      5       5       rg)z-Export network firewall policy rules command.    )absolute_import)division)unicode_literalsN)base_classes)client)region_client)base)flags)util)fileszG        Exports Firewall Policy rules configuration to a file.
        z        Firewall Policy rules can be exported by running:

          $ {command} FIREWALL_POLICY --destination=<path-to-file> --global
        )DESCRIPTIONEXAMPLESc                   Z    \ rS rSrSrSr\r\S 5       r	\S	S j5       r
\S 5       rS rSrg)
Export,   zExport Compute Engine network firewall policy rules.

Exports network firewall policy rules configuration to a file.
This configuration can be imported at a later time.
Nc                     U R                  5       [        R                   R                  :X  a  gU R                  5       [        R                   R                  :X  a  gg)z3Returns the API version based on the release track.alphabetav1)ReleaseTrackr	   ALPHABETA)clss    =lib/surface/compute/network_firewall_policies/export_rules.pyGetApiVersionExport.GetApiVersion:   sG     T..444				t0055	5    c                 L    [         R                  " SU R                  5       SUS9$ )z!Returns the resource schema path.computeFirewallPolicyfor_help)export_utilGetSchemaPathr   )r   r"   s     r   r$   Export.GetSchemaPathC   s,     $$	 r   c                     [         R                  " SSS9U l        U R                  R                  USS9  [        R
                  " XR                  SS95        g )NTzexport rules from)required	operationzexport-rules)operation_typer!   )r
   NetworkFirewallPolicyArgumentNETWORK_FIREWALL_POLICY_ARGAddArgumentr#   AddExportFlagsr$   )r   parsers     r   ArgsExport.ArgsM   sY    &+&I&I!4'C# ##//~ 0  v'8'8$'8'GHr   c                 "   [         R                  " U R                  5       5      nU R                  R	                  UUR
                  [        R                  " [        5      S9n[        R                  " X2R                  S9n[        US5      (       a  [        R                  " X2R                  S9nUR                  SS9S   nUR                  R                  R                  UR                   S9nUR"                  (       aN  [$        R&                  " UR"                  5       n[(        R*                  " UUU R-                  5       S9  S S S 5        g [(        R*                  " U[.        R0                  U R-                  5       S9  g ! , (       d  f       g = f)	N)scope_lister)compute_clientregionF)only_generate_requestr   )rules)messagestreamschema_path)r   ComputeApiHolderr   r+   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr   NetworkFirewallPolicyhasattrr   RegionNetworkFirewallPolicyDescribemessagesr    r6   destinationr   
FileWriterr#   r   r$   sysstdout)selfargsholderfirewall_policy_refnetwork_firewall_policy_clientfirewall_policyfirewall_policy_rulesr8   s           r   Run
Export.RunW   s\   **4+<+<+>?F::LL"88@ M 
 &,%A%AMM&" "H--

3
3!-- % 5==# > 	O
 #MM22AA## B  D,,-)**,	
 .- '((* .-s   %F  
F )F)__name__
__module____qualname____firstlineno____doc__r+   DETAILED_HELPdetailed_helpclassmethodr   r$   r/   rO   __static_attributes__rQ   r   r   r   r   ,   sU    
 !%-    I I&r   r   )rV   
__future__r   r   r   rF   googlecloudsdk.api_lib.computer   8googlecloudsdk.api_lib.compute.network_firewall_policiesr   r   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.computer
   r=   <googlecloudsdk.command_lib.compute.network_firewall_policies!googlecloudsdk.command_lib.exportr   r#   googlecloudsdk.core.utilr   rW   DefaultUniverseOnlyReleaseTracksr   r   r   GACommandr   rQ   r   r   <module>rg      s    4 &  ' 
 7 K R ( E N A *		 T..33T5F5F5I5IMT\\ M Mr   