
    <                     J   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  \R                  " \R                  R                  \R                  R                  \R                  R                   5      \R"                   " S	 S
\R$                  5      5       5       rg)z)`gcloud api-gateway apis update` command.    )apis)
operations)base)common_flags)operations_util)resource_args)labels_utilc                   >    \ rS rSrSrSSS.r\S 5       rS rS r	S	r
g
)Update   z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                     [         R                  R                  U 5        [        R                  " U 5        [
        R                  " U 5        [        R                  " U SSS9  g )NupdatedT)
positional)	r   
ASYNC_FLAGAddToParserr   AddDisplayNameArgr	   AddUpdateLabelsFlagsr   AddApiResourceArg)parsers    &lib/surface/api_gateway/apis/update.pyArgsUpdate.Args3   sB    OO'""6*$$V,##FI$G    c           	         UR                   R                  R                  5       n[        R                  " 5       nU R                  UR                  U5      U5      u  pEUR                  XES9n[        R                  " UR                  [        R                  " 5       UR                  SR                  UR                  5       5      UR                   S9$ )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   Run
Update.Run:   s    mm%%'G!J##JNN7$;TBICS3D//		##%""8??O r   c                 F  ^ / n[         R                  " UTR                  U4S j5      nUR                  (       a"  UR                  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   r7   displayName,)	r	   ProcessUpdateArgsLazyLabelsValueneeds_updater7   appenddisplay_namer:   join)r-   r"   r.   r   labels_updates    `   r   r%   Update.ProcessUpdatesI   s    K55M !! ''cj"))co'%%%r    N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   r3   r%   __static_attributes__rD   r   r   r   r      s8     #-" H H&r   r   N)rI   "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   rD   r   r   <module>rX      s     0 4 9 ( ? B @ < D%%++T->->-C-C%%((*9&T 9& *9&r   