
    V                     .   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  \R"                  \R$                  " \R&                  R(                  5       " S S\R*                  5      5       5       rS rSS0\l        g)z%Command for listing network policies.    )absolute_import)division)unicode_literalsN)
list_pager)base_classes)lister)base)flags)
propertiesc                   .    \ rS rSrSr\S 5       rS rSrg)List   zList Compute Engine network policies.

*{command}* is used to list network policies. A network policy is a set of
rules that controls network traffic classification.
c                     UR                   R                  S5        [        R                  " U5        UR                   R	                  [
        R                  5        g )NzX      table(
        name,
        region.basename(),
        description
      )
      )display_info	AddFormatr   AddRegionsArgWithoutBaseArgsAddCacheUpdaterr
   NetworkPoliciesCompleter)clsparsers     ,lib/surface/compute/network_policies/list.pyArgs	List.Args(   sE    
!! #
  ''/
''(F(FG    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  UR                   Vs/ s HJ  n[        R                  " UR                  UR                  XVR!                  5       S9SUR"                  S S9PML     nn[$        R&                  R)                  U5      $ UR+                  USS9n[-        X85      u  pU
(       a   Xl        [-        X85      u  pX-  n	U
(       a  M   U	$ s  snf )N)projectregionitems)fieldlimit
batch_sizeT)r   returnPartialSuccess)r   ComputeApiHolderReleaseTrackclientapitools_clientMESSAGES_MODULEr   r   VALUEScore	GetOrFailregionsr   YieldFromListregionNetworkPolicies'ComputeRegionNetworkPoliciesListRequeststripr    	itertoolschainfrom_iterable1ComputeRegionNetworkPoliciesAggregatedListRequest_GetListPage	pageToken)selfargsholderr%   messagesr   r   regional_generatorsrequestnetwork_policiesnext_page_token	list_pages               r   RunList.Run4   sO   **4+<+<+>?F]]**F%%H||g!!&&..88:g ||  %f 
"
"**>>!,,. ?  JJ %   __**+>?? HHd I G )5V(E%
)#/#@ i# /
 3s   6AE. N)	__name__
__module____qualname____firstlineno____doc__classmethodr   r?   __static_attributes__rA   r   r   r   r      s"     	H 	H%r   r   c                     U R                   R                  U5      n[        R                  R	                  S UR
                  R                   5       5      n[        U5      UR                  4$ )Nc              3   N   #    U  H  nUR                   R                  v   M     g 7f)N)valuenetworkPolicies).0network_policy_in_scopes     r   	<genexpr>_GetListPage.<locals>.<genexpr>^   s$      7%H
! ##33%Hs   #%)	r-   AggregatedListr0   r1   r2   r   additionalPropertieslistnextPageToken)r%   r;   responsenetwork_policy_chains       r   r4   r4   \   s]    ))88A("66 7%-^^%H%H7  
"	#X%;%;	;;r   EXAMPLESaA      To list regional network policies under project ``my-project'',
    specify a list of regions with ``--regions'':

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

    To list all network policies under project
    ``my-project'', omit ``--regions'':

      $ {command} --project=my-project
    )rF   
__future__r   r   r   r0   apitools.base.pyr   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper	   3googlecloudsdk.command_lib.compute.network_policiesr
   googlecloudsdk.corer   UniverseCompatibleReleaseTracksr$   ALPHAListCommandr   r4   detailed_helprA   r   r   <module>rc      s    , &  '  ' 7 1 ( E * D%%++,84 8 - 8v<  
 r   