
    9                        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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,                  ej*                  j.                         G d dej0                               Z ej(                  ej*                  j2                         G d de             Zej                   e_         y)z-Command for listing available configurations.    )absolute_import)division)unicode_literals)base)commands)connection_context)flags)	platforms)pretty_print)resource_args)serverless_operations)concept_parsers)presentation_specs)logc                   H    e Zd ZdZdddZed        Zed        Zd
dZd Z	y	)ListcList available Configurations.

  Every Configuration is paired with a Service of the same name.
  z"          {description}
          zK          To list available services:

              $ {command}
          )DESCRIPTIONEXAMPLESc                     t        j                  dt        j                         dddd      }t	        j
                  |g      j                  |       |j                  j                  | j                         y )Nz--namespacez$Namespace to list configurations in.TF)requiredprefixeshidden)
r   ResourcePresentationSpecr   GetNamespaceResourceSpecr   ConceptParserAddToParserdisplay_info
AddUriFunc_GetResourceUri)clsparsernamespace_presentations      &lib/surface/run/configurations/list.py
CommonArgszList.CommonArgs4   sj     0HH..0. !!	 ""-+f"5
""3#6#67    c                 &    | j                  |       y Nr%   r!   r"   s     r$   Argsz	List.ArgsC       NN6r&   c                 4   t         j                  dg}|r|j                  d       |r|j                  d       |j                  ddg       |j	                         j                  dj                  dj                  |      t        j                               y	)
zSet display format for output.

    Args:
      args: Namespace, the args namespace
      show_region: bool, True to show region of listed services
      show_namespace: bool, True to show namespace of listed services
    z-firstof(id,metadata.name):label=CONFIGURATIONzregion:label=REGIONznamespace:label=NAMESPACEz8status.latestCreatedRevisionName:label="LATEST REVISION"z5status.latestReadyRevisionName:label="READY REVISION"ztable({columns}):({alias}),)columnsaliasN)
r   READY_COLUMNappendextendGetDisplayInfo	AddFormatformatjoinr   SATISFIES_PZS_ALIAS)selfargsshow_regionshow_namespacer/   s        r$   
_SetFormatzList._SetFormatG   s     	!!7G nn*+nn01NNB?  	##$++HHW%X-I-I 	, 	
r&   c                    t        j                         t         j                  k(  }t        j                  |t
        j                  j                  | j                               }| j                  |||        |j                  j                  j                         }t        j                  |      5 }| j                  |j                          |scdj#                  |j$                        }t&        j(                  j+                  dj#                  |j,                  |j$                  r|nd             t/        j0                  |j3                  |            cddd       S # 1 sw Y   yxY w)zList available configurations.)r;   r<   z in zone [{}]zFor cluster [{cluster}]{zone}: )clusterzoneN)r
   GetPlatformPLATFORM_MANAGEDr   GetConnectionContextr	   ProductRUNReleaseTrackr=   CONCEPTS	namespaceParser   ConnectSetCompleteApiEndpointendpointr6   cluster_locationr   statusPrintcluster_namer   
SortByNameListConfigurations)r9   r:   
is_managedconn_contextnamespace_refclient
zone_labels          r$   RunzList.Runa   s   &&(I,F,FFJ%::emm!2!2!46LOO**n  GMM++113M		&	&|	4
!!,"7"78$++L,I,IJ


9@@ --+<<" A F 	G   !:!:=!IJ 
5	4	4s   1B$EE(N)FF)
__name__
__module____qualname____doc__detailed_helpclassmethodr%   r+   r=   rY    r&   r$   r   r   "   sK    		- 8 8  4Kr&   r   c                        e Zd ZdZed        Zy)	AlphaListr   c                 &    | j                  |       y r(   r)   r*   s     r$   r+   zAlphaList.Argsz   r,   r&   N)rZ   r[   r\   r]   r_   r+   r`   r&   r$   rb   rb   s   s    
  r&   rb   N)r]   
__future__r   r   r   googlecloudsdk.callioper   googlecloudsdk.command_lib.runr   r   r	   r
   r   r   r   (googlecloudsdk.command_lib.util.conceptsr   r   googlecloudsdk.corer   ReleaseTracksrG   BETAGAr   ALPHArb   r`   r&   r$   <module>rm      s    4 &  ' ( 3 = 0 4 7 8 @ D G # D%%**D,=,=,@,@AMK8== MK BMK` D%%++,  - LL	 r&   