
    {                        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
\5      r\R&                  " \R(                  R*                  5       " S S\R,                  5      5       r\R&                  " \R(                  R0                  5       " S S\5      5       r\R&                  " \R(                  R4                  5       " S S\5      5       rg)z&Command for creating target instances.    )absolute_import)division)unicode_literals)base_classes)base)
exceptions)flagsc                   <    \ rS rSrSrSrSr\S 5       rS r	S r
Srg)CreateHelper   z(Helper class to creat a target instance.Nc                    UR                   R                  [        R                  5        [        R
                  " 5       U l        U R                  R                  U5        [        R                  " 5       U l	        U R                  R                  U5        [        R                  " U5        UR                  SSS9  UR                   R                  [        R                  5        g)z4Add flags to create a target instance to the parser.z--descriptionz8An optional, textual description of the target instance.)helpN)display_info	AddFormatr	   DEFAULT_LIST_FORMATinstance_flags!InstanceArgumentForTargetInstanceINSTANCE_ARGAddArgumentTargetInstanceArgumentTARGET_INSTANCE_ARG
AddNetworkadd_argumentAddCacheUpdaterTargetInstancesCompleterclsparsers     .lib/surface/compute/target_instances/create.pyArgsCreateHelper.Args$   s     !!%";";<%GGIC  (#::<C''/	V
G  I ''(F(FG    c                     g N )selfs    r   __init__CreateHelper.__init__5   s    r"   c                 r   UR                   nU R                  R                  UUR                  [        R
                  " U5      S9nUR                  (       a"  UR                  (       d  UR                  Ul        U R                  R                  XR                  5      nUR                  UR                  :w  a  [        R                  " S5      eUR                  R                  UR                  UR                  5       UR                  5       S9nUR!                  S5      (       a<  ["        R$                  R                  XR                  5      R                  5       Ul        UR                  R)                  UUR*                  UR                  S9nUR-                  UR.                  R0                  SU4/5      $ )z5Issues request necessary to create a target instance.)scope_listerzBTarget instance zone must match the virtual machine instance zone.)descriptionnameinstancenetwork)targetInstanceprojectzoneInsert)clientr   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr1   instance_zoner   compute_exceptionsArgumentErrormessagesTargetInstancer+   NameSelfLinkIsSpecifiedr	   NETWORK_ARGr.   #ComputeTargetInstancesInsertRequestr0   MakeRequestsapitools_clienttargetInstances)r&   argsholderr3   target_instance_refinstance_reftarget_instancerequests           r   RunCreateHelper.Run8   s   ]]F22DD"88@ E B
 (:(:.33d$$66t=M=MNL<#4#44,,
NP P oo44$$ %%'&&( 5 *O
 	"" % 1 1 C C
  !""*(*  ooAA&#++ %% B 'G
 !7!7!G!G!)7!4  5 6 6r"   r%   )__name__
__module____qualname____firstlineno____doc__r   r   classmethodr    r'   rK   __static_attributes__r%   r"   r   r   r      s.    0,H H 	!6r"   r   c                   .    \ rS rSrSr\S 5       rS rSrg)CreateGA\     Create a target instance for handling traffic from a forwarding rule.

  *{command}* is used to create a target instance for handling
traffic from one or more forwarding rules. Target instances
are ideal for traffic that should be managed by a single
source. For more information on target instances, see
[](https://cloud.google.com/compute/docs/protocol-forwarding/#targetinstances)
c                 .    [         R                  U5        g r$   )r   r    r   s     r   r    CreateGA.Argsg   s    fr"   c                 |    [         R                  " U R                  5       5      n[        5       R	                  X5      $ r$   )r   ComputeApiHolderReleaseTrackr   rK   )r&   rE   rF   s      r   rK   CreateGA.Runk   s.    **4+<+<+>?F>d++r"   r%   N)	rM   rN   rO   rP   rQ   rR   r    rK   rS   r%   r"   r   rU   rU   \   s       ,r"   rU   c                       \ rS rSrSrSrg)
CreateBetap   rW   r%   NrM   rN   rO   rP   rQ   rS   r%   r"   r   r_   r_   p       r"   r_   c                       \ rS rSrSrSrg)CreateAlpha|   rW   r%   Nra   r%   r"   r   rd   rd   |   rb   r"   rd   N)rQ   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r9   r	   r6   ,googlecloudsdk.command_lib.compute.instancesr   3googlecloudsdk.command_lib.compute.target_instancesobjectr   ReleaseTracksr\   GACreateCommandrU   BETAr_   ALPHArd   r%   r"   r   <module>rr      s    - &  ' 7 ( O EJ E;66 ;6| D%%((),t!! , *,& D%%**+  , D%%++,*  -r"   