
    B                     P   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Zd
 Z e	j                  e	j                  j                   e	j                  j"                  e	j                  j$                         G d de	j&                               Zdddde_        y	)zCommand for listing addresses.    )absolute_import)division)unicode_literals)base_classes)lister)base)flagsNc                     | j                  d      }| j                  d      }|r|dz   t        j                  |      z   S |S )NprefixLengthaddress/)getsix	text_type)resourceprefix_lengthr   s      %lib/surface/compute/addresses/list.py_TransformAddressRanger      s>    ,,~.-LL#'S=3==777	.    c                   &    e Zd ZdZed        Zd Zy)ListzList addresses.c                     | j                   j                  d       t        j                  | dd       | j                   j	                  t
        j                         | j                   j                  dt        i       y )Na          table(
          name,
          address_range():label=ADDRESS/RANGE,
          address_type:label=TYPE,
          purpose,
          network.basename(),
          region.basename(),
          subnetwork.basename():label=SUBNET,
          status
        )T)regionalglobal_address_range)	display_info	AddFormatr   AddMultiScopeListerFlagsAddCacheUpdaterr	   AddressesCompleterAddTransformsr   )parsers    r   Argsz	List.Args)   sc    
!! 
# 
 ##FT4H
''(@(@A
%%8N&OPr   c                 v   t        j                  | j                               }|j                  }t	        j
                  ||j                        }t	        j                  ||j                  j                  |j                  j                  |j                  j                        }t	        j                  ||      S )N)regional_serviceglobal_serviceaggregation_service)r   ComputeApiHolderReleaseTrackclientr   ParseMultiScopeFlags	resourcesMultiScopeListerapitools_client	addressesglobalAddressesInvoke)selfargsholderr*   request_datalist_implementations         r   RunzList.Run:   s    **4+<+<+>?F]]F..tV5E5EFL 11//99--=="22<<	> ==':;;r   N)__name__
__module____qualname____doc__staticmethodr#   r7    r   r   r   r   $   s      Q Q <r   r   zList addressesa  
        *{command}* lists summary information of addresses in a project. The
        *--uri* option can be used to display URIs instead. Users who want to
        see more data should use `gcloud compute addresses describe`.

        By default, global addresses and addresses from all regions are listed.
        The results can be narrowed down by providing the *--regions* or
        *--global* flag.
        a  
        To list all addresses in a project in table form, run:

          $ {command}

        To list the URIs of all addresses in a project, run:

          $ {command} --uri

        To list all of the global addresses in a project, run:

          $ {command} --global

        To list all of the addresses from the ``us-central1'' region, run:

          $ {command} --filter=region:us-central1
        )briefDESCRIPTIONEXAMPLES)r;   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   ,googlecloudsdk.command_lib.compute.addressesr	   r   r   ReleaseTracksr)   BETAGAALPHAListCommandr   detailed_helpr=   r   r   <module>rK      s    % &  ' 7 1 ( > 
 D%%**D,=,=,@,@%%++- <4  <- <J 			 r   