
                         D   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ  ej                   ej"                  j$                  ej"                  j&                  ej"                  j(                         G d	 d
ej*                               Zy)z&Command for updating target instances.    )absolute_import)division)unicode_literals)base_classes)base)
exceptions)flagsc                   .    e Zd ZdZdZdZed        Zd Zy)UpdatezUpdate a Compute Engine target instance.

  *{command}* updates a Compute Engine target instance.

  ## EXAMPLES

  To update the security policy run this:

    $ {command} TARGET_INSTANCE --security-policy='my-policy'
  Nc                     t        j                         | _        | j                  j                  |d       t	        j
                  d      | _        | j                  j                  |       y )Nupdate)operation_typeztarget instance)resource)r	   TargetInstanceArgumentTARGET_INSTANCE_ARGAddArgumentsecurity_policy_flags/SecurityPolicyRegionalArgumentForTargetResourceSECURITY_POLICY_ARG)clsparsers     .lib/surface/compute/target_instances/update.pyArgszUpdate.Args1   s[    #::<C''x'HMM&	
 
 ''/    c                    t        j                  | j                               }|j                  }| j                  j                  ||j                  t        j                  |            }t        |dd       t        |dd       r5| j                  j                  ||j                        j                         }nd }|j                  j                  |j                  |j                         |j                   |j                  j#                  |            }|j%                  |j&                  j(                  d|fg      S dg}t+        j,                  |d      )N)scope_listersecurity_policy)securityPolicy)projecttargetInstancezonesecurityPolicyReferenceSetSecurityPolicyz--security-policyz.Please specify at least one property to update)r   ComputeApiHolderReleaseTrackclientr   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListergetattrr   SelfLinkmessages.ComputeTargetInstancesSetSecurityPolicyRequestr   Namer!   SecurityPolicyReferenceMakeRequestsapitools_clienttargetInstancesr   MinimumArgumentException)selfargsholderr&   target_instance_refsecurity_policy_refrequestparameter_namess           r   Runz
Update.Run<   sY   **4+<+<+>?F]]F22DD"88@ E  t&-9	($	/"66HH&""$$,HJ 	 #NN%--,113"''"(//"I"I0 #J #	 O g   6#9#9#I#I#6#A "B C C ++O

-
-I r   )	__name__
__module____qualname____doc__r   r   classmethodr   r<    r   r   r   r      s,    	 0 0 r   r   N)r@   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   r   "googlecloudsdk.command_lib.computer	   r)   4googlecloudsdk.command_lib.compute.security_policiesr   3googlecloudsdk.command_lib.compute.target_instancesReleaseTracksr%   ALPHABETAGAUpdateCommandr   rB   r   r   <module>rN      s    - &  ' 7 ( . E F T..33T5F5F5I5I:T ::r   