
                         $   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
\5      r\
R"                  \
R$                  " \
R&                  R(                  5       " S S\
R*                  5      5       5       r\
R"                  \
R$                  " \
R&                  R.                  5       " S S\5      5       5       r\
R"                  \
R$                  " \
R&                  R2                  5       " S S\5      5       5       rg)z5Command for modifying the target of forwarding rules.    )absolute_import)division)unicode_literals)base_classes)forwarding_rules_utils)base)flagsc                   D    \ rS rSrSrSrS r\S 5       rS r	S r
S rS	rg)
SetTargetHelper   z,Helper that sets a forwarding rule's target.Nc                     Xl         g N_holder)selfholders     2lib/surface/compute/forwarding_rules/set_target.py__init__SetTargetHelper.__init__!   s    L    c                     [         R                  " 5       U l        [         R                  " U5        U R                  R	                  U5        g)z2Adds flags to set the target of a forwarding rule.N)r	   ForwardingRuleArgumentFORWARDING_RULE_ARGAddSetTargetArgsAddArgumentclsparsers     r   ArgsSetTargetHelper.Args$   s7     $::<C	6"''/r   c                    U R                   R                  nU R                  R                  UU R                   R                  [
        R                  " U5      S9nUR                  5       S:X  a'  U R                  X R                   R                  X15      nO:UR                  5       S:X  a&  U R                  X R                   R                  X15      nUR                  W5      $ )z;Issues requests necessary to set target on Forwarding Rule.)scope_listerzcompute.globalForwardingRuleszcompute.forwardingRules)r   clientr   ResolveAsResource	resourcescompute_flagsGetDefaultScopeLister
CollectionCreateGlobalRequestsCreateRegionalRequestsMakeRequests)r   argsr#   forwarding_rule_refrequestss        r   RunSetTargetHelper.Run+   s    \\  F22DD"88@ E B
 %%'+JJ**6<<3I3I+>Fh		'	'	)-F	F,,V\\5K5K-@Hh x((r   c                    [         R                  " X$5      nUR                  R                  UR	                  5       UR
                  UR                  R                  UR                  5       S9S9nUR                  R                  SU4/$ )z!Create a globally scoped request.target)forwardingRuleprojecttargetReference	SetTarget)
utilsGetGlobalTargetmessages,ComputeGlobalForwardingRulesSetTargetRequestNamer5   TargetReferenceSelfLinkapitools_clientglobalForwardingRules)r   r#   r%   r-   r,   
target_refrequests          r   r)   $SetTargetHelper.CreateGlobalRequests=   s    &&y7JooJJ*//1#++77&&( 8 + K G ##99;P  r   c           	      *   [         R                  " XXCS9u  pVUR                  R                  UR	                  5       UR
                  UR                  UR                  R                  UR                  5       S9S9nUR                  R                  SU4/$ )z#Create a regionally scoped request.)r-   r2   )r4   r5   regionr6   r7   )r8   GetRegionalTargetr:   &ComputeForwardingRulesSetTargetRequestr<   r5   rE   r=   r>   r?   forwardingRules)r   r#   r%   r-   r,   rA   _rB   s           r   r*   &SetTargetHelper.CreateRegionalRequestsK   s     ++4MJ ooDD*//1#++"))77&&( 8 +	 E G ##33['JKKr   r   )__name__
__module____qualname____firstlineno____doc__r   r   classmethodr   r/   r)   r*   __static_attributes__ r   r   r   r      s4    4 0 0)$Lr   r   c                   h    \ rS rSrSrSrSSR                  \R                  S90r	\
S 5       rS rS	rg)
Set]   CModify a forwarding rule to direct network traffic to a new target.NDESCRIPTIONa  
          *{{command}}* is used to set a new target for a forwarding
          rule. {overview}

          When creating a forwarding rule, exactly one of  ``--target-instance'',
          ``--target-pool'', ``--target-http-proxy'', ``--target-https-proxy'',
          ``--target-grpc-proxy'', ``--target-ssl-proxy'',
          ``--target-tcp-proxy'' or ``--target-vpn-gateway''
          must be specified.)overviewc                 .    [         R                  U5        g r   )r   r   r   s     r   r   Set.Argsq   s     r   c                 ~    [         R                  " U R                  5       5      n[        U5      R	                  U5      $ r   )r   ComputeApiHolderReleaseTrackr   r/   )r   r,   r   s      r   r/   Set.Runu   s1    **4+<+<+>?F6"&&t,,r   rR   )rK   rL   rM   rN   rO   r   formatr	   FORWARDING_RULES_OVERVIEWdetailed_helprP   r   r/   rQ   rR   r   r   rT   rT   ]   sL     L    !'0O0O P- ! !-r   rT   c                       \ rS rSrSrSrg)SetBetaz   rV   rR   NrK   rL   rM   rN   rO   rQ   rR   r   r   rc   rc   z        Lr   rc   c                       \ rS rSrSrSrg)SetAlpha   rV   rR   Nre   rR   r   r   rh   rh      rf   r   rh   N)rO   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   r8   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   r&   3googlecloudsdk.command_lib.compute.forwarding_rulesobjectr   UniverseCompatibleReleaseTracksr]   GAUpdateCommandrT   BETArc   ALPHArh   rR   r   r   <module>rv      s    < &  ' 7 J ( E E>Lf >LB D%%(()-$

 - * -6 D%%**+c  , 
 D%%++,w  - r   