
                         z   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  e
j"                  e
j$                  j&                  e
j$                  j(                  e
j$                  j*                        e
j,                   G d de
j.                                      Zy)z)`gcloud api-gateway apis update` command.    )absolute_import)division)print_function)unicode_literals)apis)
operations)base)common_flags)operations_util)resource_args)labels_utilc                   6    e Zd ZdZdddZed        Zd Zd Zy)	UpdatezUpdate an API Gateway API.zv          {description}

          NOTE: Only the display name and labels attributes are mutable on an API.
          z          To update the display name of an API, run:

            $ {command} my-api --display-name="New Display Name"

          NOTE: Only the display name and labels attributes are mutable on an API.
          )DESCRIPTIONEXAMPLESc                     t         j                  j                  |        t        j                  |        t        j                  |        t        j                  | dd       y )NupdatedT)
positional)	r	   
ASYNC_FLAGAddToParserr
   AddDisplayNameArgr   AddUpdateLabelsFlagsr   AddApiResourceArg)parsers    &lib/surface/api_gateway/apis/update.pyArgszUpdate.Args7   sB    OO'""6*$$V,##FI$G    c           	         |j                   j                  j                         }t        j                         }| j                  |j                  |      |      \  }}|j                  ||      }t        j                  |j                  t        j                         |j                  dj                  |j                               |j                         S )N)update_maskz"Waiting for API [{}] to be updated)servicewait_stringis_async)CONCEPTSapiParser   	ApiClientProcessUpdatesGetr   r   PrintOperationResultnamer   OperationsClientr    formatNameasync_)selfargsapi_ref
api_clientr$   maskresps          r   Runz
Update.Run>   s    mm%%'G!J##JNN7$;TBICSd3D//		##%""8??O r   c                 .   g }t        j                  |j                  fd      }|j                  r"|j                  _        |j                  d       |j                  r"|j                  _        |j                  d       dj                  |      fS )Nc                       j                   S )N)labels)r$   s   r   <lambda>z'Update.ProcessUpdates.<locals>.<lambda>S   s	    

r   r8   displayName,)	r   ProcessUpdateArgsLazyLabelsValueneeds_updater8   appenddisplay_namer:   join)r/   r$   r0   r   labels_updates    `   r   r'   zUpdate.ProcessUpdatesM   s    K55M !! ''cj"))co'%%%r   N)	__name__
__module____qualname____doc__detailed_helpstaticmethodr   r5   r'    r   r   r   r       s8     #-" H H&r   r   N)rF   
__future__r   r   r   r   "googlecloudsdk.api_lib.api_gatewayr   r   googlecloudsdk.callioper	   &googlecloudsdk.command_lib.api_gatewayr
   r   r   $googlecloudsdk.command_lib.util.argsr   ReleaseTracksReleaseTrackALPHABETAGADefaultUniverseOnlyUpdateCommandr   rI   r   r   <module>rV      s     0 &  % ' 3 9 ( ? B @ < D%%++T->->-C-C%%((*9&T 9& *9&r   