
    1                         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\
R                   5      rSSS.\l        g)z(Command for updating target TCP proxies.    )absolute_import)division)unicode_literals)base_classes)target_proxies_utils)utils)base)
exceptions)flagsc                   6    \ rS rSrSrSrSr\S 5       rS r	Sr
g)Update   zUpdate a target TCP proxy.Nc                     [         R                  " U5        [        R                  " SS9U l        U R                  R                  U5        [        R                  " 5       U l        U R                  R                  USS9  g )NF)requiredupdate)operation_type)	r   AddProxyHeaderRelatedUpdateArgsbackend_service_flags'BackendServiceArgumentForTargetTcpProxyBACKEND_SERVICE_ARGAddArgumentr   TargetTcpProxyArgumentTARGET_TCP_PROXY_ARG)clsparsers     0lib/surface/compute/target_tcp_proxies/update.pyArgsUpdate.Args%   sk    88@ 	EE	  ''/$;;=C(((I    c                    UR                   (       d*  UR                  (       d  [        R                  " SS/S5      e[        R
                  " U R                  5       5      n/ nU R                  R                  XR                  5      nUR                  R                  nUR                  R                  nUR                  (       a  U R                  R                  XR                  5      nUR                  UR                  SUR!                  UR"                  UR%                  5       UR'                  UR)                  5       S9S945        UR                   (       aw  UR*                  R-                  UR                   5      nUR                  UR                  SUR/                  UR"                  UR%                  5       UR+                  US9S	945        / n	UR                  R1                  X95      n
U	(       a  [2        R4                  " U	5        U
$ )
Nz--backend-servicez--proxy-headerzIYou must specify at least one of [--backend-service] or [--proxy-header].SetBackendService)service)projecttargetTcpProxy(targetTcpProxiesSetBackendServiceRequestSetProxyHeader)proxyHeader)r#   r$   %targetTcpProxiesSetProxyHeaderRequest)proxy_headerbackend_servicer
   OneOfArgumentsRequiredExceptionr   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcesclientapitools_clientmessagesr   appendtargetTcpProxies/ComputeTargetTcpProxiesSetBackendServiceRequestr#   Name(TargetTcpProxiesSetBackendServiceRequestSelfLink%TargetTcpProxiesSetProxyHeaderRequestProxyHeaderValueValuesEnum,ComputeTargetTcpProxiesSetProxyHeaderRequestMakeRequestsr   RaiseToolException)selfargsholderrequeststarget_tcp_proxy_refr0   r2   backend_service_refr)   errorsr/   s              r   Run
Update.Run0   s   !5!566 0
1 
 **4+<+<+>?FH44FF  ]]**F}}%%H 44FF
  "oo""CC+332779DD2;;= E ?	 D ABC DD001B1BC oo""@@+332779AA#/ B 1	 A 345 F**8<Iv&r    )__name__
__module____qualname____firstlineno____doc__r   r   classmethodr   rE   __static_attributes__rG   r   r   r   r      s*    "J J.r   r   zUpdate a target TCP proxyag  
        *{command}* is used to change the backend service or proxy header
        of existing target TCP proxies. A target TCP proxy is referenced
        by one or more forwarding rules which define which packets the
        proxy is responsible for routing. The target TCP proxy in turn
        points to a backend service which will handle the requests.  )briefDESCRIPTIONN)rL   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   r   googlecloudsdk.callioper	   r
   3googlecloudsdk.command_lib.compute.backend_servicesr   r   5googlecloudsdk.command_lib.compute.target_tcp_proxiesSilentCommandr   detailed_helprG   r   r   <module>rX      sR    / &  ' 7 ? 0 ( .$ G?T ?F )I	 r   