
                         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)z0`gcloud api-gateway api_configs update` command.    )absolute_import)division)print_function)unicode_literals)api_configs)
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 config.zm          {description}

          NOTE: Only the name and labels may be updated on an API config.
          z          To update the display name of an API config, run:

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

          NOTE: Only the display name and labels attributes are mutable on an API config.
          )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   AddApiConfigResourceArg)parsers    -lib/surface/api_gateway/api_configs/update.pyArgsUpdate.Args7   sB    OO'""6*$$V,))&)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[        R                  " UR                  [        R                  " 5       UR                  SR                  UR                  5       5      UR                   S9$ )N)update_maskz)Waiting for API Config [{}] to be updated)servicewait_stringis_async)CONCEPTS
api_configParser   ApiConfigClientProcessUpdatesGetr   r   PrintOperationResultnamer   OperationsClientr"   formatNameasync_)selfargsapi_config_refapi_config_client	api_cofigmaskresps          r   Run
Update.Run>   s    ]]--335N#335))*;*?*?*O*.0OI ##I#@D//		##%!))?FF!# 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)r5   s   r   <lambda>'Update.ProcessUpdates.<locals>.<lambda>U   s    	  r   r<   displayName,)	r   ProcessUpdateArgsLazyLabelsValueneeds_updater<   appenddisplay_namer?   join)r1   r5   r2   r!   labels_updates    `   r   r)   Update.ProcessUpdatesO   s    K55 "M !!&--i""//i'chh{+++r    N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   r8   r)   __static_attributes__rI   r   r   r   r       s8     *-" N N",r   r   N)rN   
__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>r^      s     7 &  % ' : 9 ( ? B @ < D%%++T->->-C-C%%((*;,T ;, *;,r   