
                             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 r\R$                   " S S\R&                  5      5       rSS0\l        g)z.Command for listing network firewall policies.    )absolute_import)division)unicode_literalsN)
list_pager)base_classes)lister)base)flags)
propertiesc                     U R                   R                  U5      n/ nUR                  R                   H  nUUR                  R
                  -  nM     X2R                  4$ )N)networkFirewallPoliciesAggregatedListitemsadditionalPropertiesvaluefirewallPoliciesnextPageToken)clientrequestresponsefirewall_policy_listsattachment_in_scopes        5lib/surface/compute/network_firewall_policies/list.py_GetListPager      s_    ++::7C(%^^@@!!224 A 
 6 6	66    c                   .    \ rS rSrSr\S 5       rS rSrg)List(   zList Compute Engine network firewall policies.

*{command}* is used to list network firewall policies. A network
firewall policy is a set of rules that controls access to various resources.
c                    SnSnUR                   R                  U R                  5       [        R                  R                  :X  a  UOU5        [
        R                  " USSS9  UR                   R                  [        R                  5        g )Nz{      table(
        name,
        region.basename(),
        policySource:label=SOURCE,
        description
      )
      zX      table(
        name,
        region.basename(),
        description
      )
      T)regionalglobal_)
display_info	AddFormatReleaseTrackr	   GAr   AddMultiScopeListerFlagsAddCacheUpdaterr
    NetworkFirewallPoliciesCompleter)clsparserbetagas       r   Args	List.Args0   su    
D

B !! D$5$5$8$88d ##FT4H
''(N(NOr   c                    [         R                  " U R                  5       5      nUR                  R                  nUR
                  nUR                  (       a  UR                  nO2[        R                  R                  R                  R                  5       nUR                  (       a  / nUR                   HY  nUR                  [        R                  " UR                  UR!                  XWR#                  5       S9SUR$                  S S95        M[     [&        R(                  R+                  U5      $ [-        USS 5      (       a9  [        R                  " UR.                  UR1                  US9SUR$                  S S9$ UR3                  US9n[5        US5      (       a  SUl        [9        X85      u  pU
(       a   Xl        [9        X85      u  pX-  n	U
(       a  M   U	$ )N)projectregionr   )fieldlimit
batch_sizeglobal)r0   returnPartialSuccessT)r   ComputeApiHolderr$   r   apitools_clientMESSAGES_MODULEr0   r   VALUEScore	GetOrFailregionsappendr   YieldFromListregionNetworkFirewallPolicies/ComputeRegionNetworkFirewallPoliciesListRequeststripr3   	itertoolschainfrom_iterablegetattrr   )ComputeNetworkFirewallPoliciesListRequest3ComputeNetworkFirewallPoliciesAggregatedListRequesthasattrr6   r   	pageToken)selfargsholderr   messagesr0   regional_generatorsr1   r   firewall_policiesnext_page_token	list_pages               r   RunList.RunG   s   **4+<+<+>?F]]**F%%H||g!!&&..88:g ||LL&""$$44HH#LLN I <jj!	" ! __**+>?? tXt$$%%

(
(

<
<W
<
M

  JJ K Gw.//%)g")5*&
)#/
$ i$	 / r    N)	__name__
__module____qualname____firstlineno____doc__classmethodr-   rS   __static_attributes__rU   r   r   r   r   (   s"     P P,/r   r   EXAMPLESa      To list global network firewall policies under project
    ``my-project'', run:

      $ {command} --project=my-project --global

    To list regional network firewall policies under project
    ``my-project'', specify a list of regions with ``--regions'':

      $ {command} --project=my-project --regions="region-a, region-b"

    To list all global and regional network firewall policies under project
    ``my-project'', omit ``--global'' and ``--regions'':

      $ {command} --project=my-project
    )rZ   
__future__r   r   r   rC   apitools.base.pyr   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper	   <googlecloudsdk.command_lib.compute.network_firewall_policiesr
   googlecloudsdk.corer   r   UniverseCompatibleListCommandr   detailed_helprU   r   r   <module>rg      sl    5 &  '  ' 7 1 ( N *7 M4 M M` 	 r   