
    >                     n   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  e	j                   e	j"                  j$                  e	j"                  j&                  e	j"                  j(                        e	j*                   G d de	j,                                      Zy)z-`gcloud api-gateway gateways update` command.    )absolute_import)division)unicode_literals)gateways)
operations)base)common_flags)operations_util)resource_args)labels_utilc                   4    e Zd ZdZddiZed        Zd Zd Zy)UpdatezUpdate an API Gateway.EXAMPLESz          To update the display name of a gateway, run:

            $ {command} my-gateway --location=us-central1 --display-name="New Display Name"
          c                     t         j                  j                  |        t        j                  |        t        j                  |        t        j                  | dd       y )NupdatedF)api_config_required)	r   
ASYNC_FLAGAddToParserr	   AddDisplayNameArgr   AddUpdateLabelsFlagsr   AddGatewayApiConfigResourceArgs)parsers    *lib/surface/api_gateway/gateways/update.pyArgszUpdate.Args.   sF    OO'""6*$$V,11&)FKM    c                    |j                   j                  j                         }t        j                         }| j                  |j                  |      |      \  }}|j                  ||      }dj                  |j                               }t        j                  |j                  t        j                         |j                  ||j                         S )N)update_maskz*Waiting for API Gateway [{}] to be updated)servicewait_stringis_async)CONCEPTSgatewayParser   GatewayClientProcessUpdatesGetr   formatNamer
   PrintOperationResultnamer   OperationsClientr   async_)selfargsgateway_refgateways_clientr"   maskrespwaits           r   Runz
Update.Run6   s    --''--/K,,.O''(;(;K(H$OMGT!!'t!<D7>>D //		##%'' r   c                    |j                   j                  j                         }g }t        j                  |j
                  fd      }|j                  r"|j                  _        |j                  d       |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>O   s	    r   r7   	apiConfigdisplayName,)r!   
api_configr#   r   ProcessUpdateArgsLazyLabelsValueneeds_updater7   appendRelativeNamer9   display_namer:   join)r-   r"   r.   api_config_refr   labels_updates    `    r   r%   zUpdate.ProcessUpdatesH   s    ]]--335NK55 M !!$++gn"(557g% --g'CHH[)))r   N)	__name__
__module____qualname____doc__detailed_helpstaticmethodr   r4   r%    r   r   r   r      s8      - M M$*r   r   N)rI   
__future__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   rL   r   r   <module>rY      s     4 &  ' 7 9 ( ? B @ < D%%++T->->-C-C%%((*:*T :* *:*r   