
    
                         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  e
j                  e
j                  j                         G d	 d
e
j                                Zy)z7Command for listing internal IP addresses in a network.    )absolute_import)division)unicode_literals)
list_pager)base_classes)base)
propertiesc                   6    e Zd ZdZdZddedZed        Zd Zy)	ListIpAddressesz4List internal IP addresses/ranges related a network.z    List all internal IP addresses in a network:

      $ {command} my-network

    List IP addresses only for given types:

      $ {command} my-network           --types=SUBNETWORK,PEER_USED,REMOTE_USED
  z(List internal IP addresses in a network.zL      *{command}* is used to list internal IP addresses in a network.
      )briefDESCRIPTIONEXAMPLESc                     t         j                  j                  |        | j                  dd       | j                  dd d       | j                  j                  d       y )	NnamezThe name of the network.)helpz--typesc                 B    | j                  dd      j                         S )N-_)replaceupper)xs    1lib/surface/compute/networks/list_ip_addresses.py<lambda>z&ListIpAddresses.Args.<locals>.<lambda>9   s    qyyc*002    z        Optional comma separate list of ip address types to filter on. Valid
        values are `SUBNETWORK`, `RESERVED`, `PEER_USED`, `PEER_RESERVED`,
        `REMOTE_USED` and `REMOTE_RESERVED`.
        )typer   z        table(
            type,
            cidr:label=IP_RANGE,
            region,
            owner,
            purpose)
    )r   URI_FLAGRemoveFromParseradd_argumentdisplay_info	AddFormat)parsers    r   ArgszListIpAddresses.Args3   sa    MM""6*
%?@
2   !! # 	r   c                    t        j                  | j                               }|j                  j                  }|j
                  }t        j                  j                  j                  j                  d      }|j                  ||j                  |j                        }t        j                  |j                   |dd|j"                  d       }|S )NT)required)projectnetworktypesr   items)methodfieldlimit
batch_size)r   ComputeApiHolderReleaseTrackclientapitools_clientMESSAGES_MODULEr	   VALUEScorer%   Get%ComputeNetworksListIpAddressesRequestr   r'   r   YieldFromListnetworksr+   )selfargsholderr/   messagesr%   requestr(   s           r   RunzListIpAddresses.RunI   s    **4+<+<+>?F]]**F%%H$$,,00$0?G<<$** = >G$$ jjE Lr   N)	__name__
__module____qualname____doc__exampledetailed_helpstaticmethodr"   r=    r   r   r   r      s;    <	' 5
 - 	 	*r   r   N)rA   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   googlecloudsdk.corer	   ReleaseTracksr.   ALPHAListCommandr   rE   r   r   <module>rN      sY    > &  ' ' 7 ( * D%%++,<d&& < -<r   