
                            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KJr  SSKJr  SSKJr  SSKJr  SSKJr  \R6                  " \R8                  R:                  \R8                  R<                  \R8                  R>                  5       " S S\R@                  5      5       r!SSSS.\!l"        g)z,Command for deleting managed instance group.    )absolute_import)division)unicode_literals)base_classes)managed_instance_groups_utils)poller)waiter)arg_parsers)base)flags)scope)instance_configs_messages)
properties)mapc                   ^    \ rS rSrSr\S 5       r\S 5       r\S 5       r\S 5       r	S r
Srg	)
Delete$   z8Delete per-instance configs from managed instance group.c           	          [         R                  R                  U SS9  [         R                  " U 5        U R	                  SSS[
        R                  " SS9SS	9  g )
Ndelete)operation_typez--instancesINSTANCET   )
min_lengthz3Names of instances to delete instance-configs from.)metavarrequiredtypehelp)instance_groups_flags%MULTISCOPE_INSTANCE_GROUP_MANAGER_ARGAddArgument AddMigStatefulUpdateInstanceFlagadd_argumentr
   ArgList)parsers    Flib/surface/compute/instance_groups/managed/instance_configs/delete.pyArgsDelete.Args)   s]    ??KKx L )::6B
  A.B  D    c                     U Vs/ s H+  o R                   R                  U5      R                  5       PM-     nnU$ s  snf )N)	resourcesParseURLName)holder	instancesinstanceinstance_namess       r%   _GetInstanceNameListFromUrlList&Delete._GetInstanceNameListFromUrlList5   sG     DMCLx!!(+0029   s   2;c                     U R                   R                  nUR                  [        R	                  X5      S9nUR                  UR                  5       UUR                  UR                  S9$ )z4Returns a delete message for instance group manager.names)instanceGroupManager0instanceGroupManagersDeletePerInstanceConfigsReqprojectzone)	clientmessages0InstanceGroupManagersDeletePerInstanceConfigsReqr   r1   ;ComputeInstanceGroupManagersDeletePerInstanceConfigsRequestr,   r8   r9   r-   igm_refr.   r;   reqs        r%   #_GetDeletePerInstanceConfigRequests*Delete._GetDeletePerInstanceConfigRequests<   sk     }}%%H

C
C44VG D ICOO$\\^9<\\	 P  r(   c                     U R                   R                  nUR                  [        R	                  X5      S9nUR                  UR                  5       UUR                  UR                  S9$ )z=Returns a delete message for regional instance group manager.r4   )r6   1regionInstanceGroupManagerDeleteInstanceConfigReqr8   region)	r:   r;   1RegionInstanceGroupManagerDeleteInstanceConfigReqr   r1   AComputeRegionInstanceGroupManagersDeletePerInstanceConfigsRequestr,   r8   rE   r>   s        r%   )_GetRegionDeletePerInstanceConfigRequests0Delete._GetRegionDeletePerInstanceConfigRequestsI   sk     }}%%H

D
D44VG E ICMM%,\\^BE~~	 N r(   c           
         [         R                  " U R                  5       5      n[        R                  R
                  R                  R                  SS9n[        R                  R                  UUR                  [        R                  R                  [        R                   " UR"                  U5      S9n[%        ['        [(        [*        R,                  " X$UR.                  5      5      5      nUR1                  5       S:X  a5  SnUR"                  R2                  R4                  nU R7                  X$U5      nOqUR1                  5       S:X  a5  SnUR"                  R2                  R8                  nU R;                  X$U5      nO([=        SR?                  UR1                  5       5      5      eURA                  U5      n	UR                  RC                  U	RD                  US	9n
[F        RH                  " U5      n[J        RL                  " XS
5      nURN                  (       a8  [P        RR                  " UUUURT                  S9n[J        RL                  " XS5      $ U$ )NT)r   )default_scopescope_listerzcompute.instanceGroupManagerszcompute.zoneOperationsz#compute.regionInstanceGroupManagerszcompute.regionOperationszUnknown reference type {0})
collectionzDeleting instance configs.)r-   r?   r.   minimal_actionzApplying updates to instances.)+r   ComputeApiHolderReleaseTrackr   VALUEScorer8   Getr   r   ResolveAsResourcer*   compute_scope	ScopeEnumZONEr   GetDefaultScopeListerr:   listr   strr   CreateInstanceReferencesr.   
Collectionapitools_clientinstanceGroupManagersrA   regionInstanceGroupManagersrH   
ValueErrorformatDeletePerInstanceConfigsParseselfLinkr   Pollerr	   WaitForupdate_instancer   CallApplyUpdatesToInstancesinstance_update_minimal_action)selfargsr-   r8   r?   r.   operation_collectionservicedelete_request	operationoperation_refoperation_pollerdelete_resultapply_operation_refs                 r%   Run
Delete.RunX   s   **4+<+<+>?F$$,,00$0?G$JJ  ##!.!8!8!=!= % ; ;}}g!/	 ! 0  S6OO#dnn>? @I >>5--CCg??
9&n				!F	F7--IIgEE
9&n 3::



  ! ! 00@I$$**'; + =M }}W-NN#3#?AM 
#
?
?!!@@B ^^,<> >r(    N)__name__
__module____qualname____firstlineno____doc__staticmethodr&   r1   rA   rH   rt   __static_attributes__rv   r(   r%   r   r   $   s]     A	D 	D   
 
  /r(   r   z:Delete per-instance configs from a managed instance group.aX          *{command}* deletes one or more per-instance configs from a Google
        Compute Engine managed instance group.

        Changes are applied immediately to the corresponding instances, by
        performing the necessary action (for example, REFRESH), unless
        overridden by providing the ``--no-update-instance'' flag.
        al          To delete the per-instance config from ``my-instance'', run:

          $ {command} my-group --region=europe-west4 --instances=my-instance

        This removes all metadata and detaches all disks that were defined in
        the per-instance config (except for disks that are also defined in the
        instance template, which remain attached).
        )briefDESCRIPTIONEXAMPLESN)#r{   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   )googlecloudsdk.api_lib.compute.operationsr   googlecloudsdk.api_lib.utilr	   googlecloudsdk.callioper
   r   "googlecloudsdk.command_lib.computer   r   rU   2googlecloudsdk.command_lib.compute.instance_groupsr   Kgooglecloudsdk.command_lib.compute.instance_groups.managed.instance_configsr   googlecloudsdk.corer   	six.movesr   ReleaseTracksrP   GABETAALPHADeleteCommandr   detailed_helprv   r(   r%   <module>r      s     3 &  ' 7 H < . / ( 4 E ] q *  D%%(($*;*;*@*@%%++-aT a-aL 	E		 r(   