
    >                     n   S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SS	K
Jr  SS
K
Jr  SSKJr  \	R                   " \	R"                  R$                  \	R"                  R&                  \	R"                  R(                  5      \	R*                   " S S\	R,                  5      5       5       rg)z-`gcloud api-gateway gateways update` command.    )absolute_import)division)unicode_literals)gateways)
operations)base)common_flags)operations_util)resource_args)labels_utilc                   <    \ rS rSrSrSS0r\S 5       rS rS r	Sr
g	)
Update   z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                     [         R                  R                  U 5        [        R                  " U 5        [
        R                  " U 5        [        R                  " U SSS9  g )NupdatedF)api_config_required)	r   
ASYNC_FLAGAddToParserr	   AddDisplayNameArgr   AddUpdateLabelsFlagsr   AddGatewayApiConfigResourceArgs)parsers    *lib/surface/api_gateway/gateways/update.pyArgsUpdate.Args.   sF    OO'""6*$$V,11&)FKM    c                    UR                   R                  R                  5       n[        R                  " 5       nU R                  UR                  U5      U5      u  pEUR                  XES9nSR                  UR                  5       5      n[        R                  " UR                  [        R                  " 5       UR                  UUR                   S9$ )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   Run
Update.Run6   s    --''--/K,,.O''(;(;K(H$OMG!!'!<D7>>D //		##%'' r   c                   ^ UR                   R                  R                  5       n/ n[        R                  " UTR
                  U4S j5      nUR                  (       a"  UR                  Tl        UR                  S5        U(       a&  UR                  5       Tl
        UR                  S5        UR                  (       a"  UR                  Tl        UR                  S5        TSR                  U5      4$ )Nc                     > T R                   $ )N)labels)r$   s   r   <lambda>'Update.ProcessUpdates.<locals>.<lambda>O   s	    r   r:   	apiConfigdisplayName,)r#   
api_configr%   r   ProcessUpdateArgsLazyLabelsValueneeds_updater:   appendRelativeNamer=   display_namer>   join)r/   r$   r0   api_config_refr   labels_updates    `    r   r'   Update.ProcessUpdatesH   s    ]]--335NK55 M !!$++gn"(557g% --g'CHH[)))r    N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   r6   r'   __static_attributes__rK   r   r   r   r      s8      - M M$*r   r   N)rP   
__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   rK   r   r   <module>r`      s     4 &  ' 7 9 ( ? B @ < D%%++T->->-C-C%%((*:*T :* *:*r   