
    b                         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g)z>Command for removing instances from unmanaged instance groups.    )absolute_import)division)unicode_literals)base_classes)instance_groups_utils)arg_parsers)base)flags)scopec                   .    \ rS rSrSr\S 5       rS rSrg)RemoveInstances   zRemoves resources from an unmanaged instance group by instance name.

  *{command}* removes instances from an unmanaged instance group using
the instance name.

This does not delete the actual instance resources but removes
it from the instance group.
c                     [         R                  " 5       [        l        [        R                  R	                  U 5        U R                  SS[        R                  " SS9SSS9  g )Nz--instancesT   )
min_lengthINSTANCEz=The names of the instances to remove from the instance group.)requiredtypemetavarhelp)instance_groups_flagsMakeZonalInstanceGroupArgr   ZONAL_INSTANCE_GROUP_ARGAddArgumentadd_argumentr   ArgList)parsers    Alib/surface/compute/instance_groups/unmanaged/remove_instances.pyArgsRemoveInstances.Args(   sZ     	779 ,,,88@
  A.L  N    c                 v   [         R                  " U R                  5       5      nUR                  n[        R
                  R                  XR                  [        R                  R                  [        R                  " U5      S9n/ nUR                   HF  nUR                  R                  UUR                  UR                   S.SS9nUR#                  U5        MH     [$        R&                  " UUR                   5        U Vs/ s H*  nUR(                  R+                  UR-                  5       S9PM,     nnUR(                  R/                  US9n	UR(                  R1                  UR3                  5       U	UR                   UR                  S9n
UR5                  UR6                  R8                  SU
4/5      $ s  snf )	N)default_scopescope_lister)projectzonezcompute.instances)params
collection)instance)	instances)instanceGroup$instanceGroupsRemoveInstancesRequestr&   r%   r   )r   ComputeApiHolderReleaseTrackclientr   r   ResolveAsResource	resourcescompute_scope	ScopeEnumZONEr
   GetDefaultScopeListerr*   Parser%   r&   appendr   ValidateInstanceInZonemessagesInstanceReferenceSelfLink$InstanceGroupsRemoveInstancesRequest+ComputeInstanceGroupsRemoveInstancesRequestNameMakeRequestsapitools_clientinstanceGroups)selfargsholderr/   	group_refinstance_referencesr)   refinstrequest_payloadrequests              r   RunRemoveInstances.Run5   s   **4+<+<+>?F]]F 	00BB""'116644V< 	C 	>  NN""
"**nn ) # *c   % # 001D1:A
 ()'D 	))4==?)C'  ) ooJJ% K 'O ooIInn&-<^^!!	 J G !7!7!F!F!2G!=  > ? ?)s   1F6 N)	__name__
__module____qualname____firstlineno____doc__staticmethodr   rK   __static_attributes__rM   r!   r   r   r      s"     
N 
N&?r!   r   N)rR   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   r	   "googlecloudsdk.command_lib.computer
   r   r2   2googlecloudsdk.command_lib.compute.instance_groupsr   SilentCommandr   rM   r!   r   <module>r[      s;    E &  ' 7 @ / ( 4 E ]=?d(( =?r!   