
                            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 ddlmZ d Zej0                   ej2                  ej4                  j6                  ej4                  j8                         G d dej:                                      Zej0                   ej2                  ej4                  j>                         G d de                    Z y)z4Command for obtaining details about a given service.    )absolute_import)division)unicode_literals)base)connection_context)
exceptions)flags)resource_args)serverless_operations)threat_detection_util)export_printer)service_printer)concept_parsers)presentation_specs)resource_printerc                 j    | rt         j                  S |rt         j                  S t         j                  S N)r   MultiRegionServicePrinterServicePrinterAlphaServicePrinter)is_multi_regionis_alphas     $lib/surface/run/services/describe.py_GetFormatterr   #   s,    444...)))    c                   H    e Zd ZdZdddZed
d       Zed        Zd Zd Z	y	)Describe%Obtain details about a given service.z"          {description}
          a            To obtain details about a given service:

              $ {command} <service-name>

          To get those details in the YAML format:

              $ {command} <service-name> --format=yaml

          To get them in YAML format suited to export (omitting metadata
          specific to this deployment and status info):

              $ {command} <service-name> --format=export
          )DESCRIPTIONEXAMPLESc                    t        j                  dt        j                         ddd      }t	        j
                  |g      j                  |        t        ||      }t        j                  t        j                  |d       | j                  j                  t        j                         t        j                  t        j                  t        j                   d       y )NSERVICEzService to describe.TF)requiredprefixes)hidden)r   ResourcePresentationSpecr
   GetServiceResourceSpecr   ConceptParserAddToParserr   r   RegisterFormatterr   SERVICE_PRINTER_FORMATdisplay_info	AddFormatr   EXPORT_PRINTER_FORMATExportPrinter)parserr   r   service_presentation	formatters        r   
CommonArgszDescribe.CommonArgsE   s    -FF,,. !!#7"89EEfMox8I&&..	$ !!/"H"HI&&,,$$r   c                 2    t         j                  | d       y )NFr   r   r3   r0   s    r   ArgszDescribe.Args[   s    /r   c                 |    t        j                  |t        j                  j                  | j                               S r   )r   GetConnectionContextr	   ProductRUNReleaseTrack)selfargss     r   _ConnectionContextzDescribe._ConnectionContext_   s/    22emm!2!2!4 r   c                    | j                  |      }|j                  j                  j                         }t	        j
                  |       t        j                  |      5 }|j                  |      }t        j                  ||       ddd       s.t        j                  dj                  |j                              |S # 1 sw Y   ;xY w)r   NzCannot find service [{}])r@   CONCEPTSserviceParser	   ValidateResourcer   Connect
GetService	crtd_utilUpdateThreatDetectionStater   ArgumentErrorformat
servicesId)r>   r?   conn_contextservice_refclientservs         r   RunzDescribe.Rund   s    **40L--''--/K	;'		&	&|	4{+d**48 
5 $$
$
+
+K,B,B
C  K 
5	4s    (CCN)FF)
__name__
__module____qualname____doc__detailed_helpstaticmethodr3   r8   r@   rQ    r   r   r   r   ,   sJ     .	-(  * 0 0
r   r   c                        e Zd ZdZed        Zy)DescribeAlphar   c                 2    t         j                  | d       y )NTr5   r6   r7   s    r   r8   zDescribeAlpha.Argsx   s    .r   N)rR   rS   rT   rU   rW   r8   rX   r   r   rZ   rZ   s   s     ./ /r   rZ   N)!rU   
__future__r   r   r   googlecloudsdk.callioper   googlecloudsdk.command_lib.runr   r   r	   r
   r   r   rH   'googlecloudsdk.command_lib.run.printersr   r   (googlecloudsdk.command_lib.util.conceptsr   r   googlecloudsdk.core.resourcer   r   UniverseCompatibleReleaseTracksr=   BETAGACommandr   ALPHArZ   rX   r   r   <module>rh      s    ; &  ' ( = 5 0 8 @ M B C D G 9* D%%**D,=,=,@,@ABt|| B B BJ D%%++,/H / - /r   