
                         z   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  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.    )absolute_import)division)print_function)unicode_literals)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.Args7   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>S   s	    

r   r;   displayName,)	r   ProcessUpdateArgsLazyLabelsValueneeds_updater;   appenddisplay_namer>   join)r1   r&   r2   r!   labels_updates    `   r   r)   Update.ProcessUpdatesM   s    K55M !! ''cj"))co'%%%r    N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   r7   r)   __static_attributes__rH   r   r   r   r       s8     #-" H H&r   r   N)rM   
__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   rH   r   r   <module>r]      s     0 &  % ' 3 9 ( ? B @ < D%%++T->->-C-C%%((*9&T 9& *9&r   