
                             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iZd Z ej                  ej                  j                        ej                    G d	 d
ej"                                      Zy)z&Delete instant snapshot group command.    )base_classes)utils)base)flagsbriefz!Delete an instant snapshot group.c                     t        j                  d      t        _        t        j                  j	                  | d       y)z?A helper function to build args based on different API version.T)pluraldelete)operation_typeN)	isg_flagsMakeInstantSnapshotGroupArgDeleteISG_ARGAddArgument)parsers    5lib/surface/compute/instant_snapshot_groups/delete.py_CommonArgsr      s+    88E&...VH=    c                   J    e Zd ZdZd Zd Zed        Zed	d       Zd Z	d Z
y)
r   z/Delete a Compute Engine instant snapshot group.c                 `    t        d |D              }t        d |D              }|r|sy|r|syy)z!Gets common scope for references.c              3   4   K   | ]  }t        |d         yw)zoneNhasattr.0refs     r   	<genexpr>z4Delete._GetCommonScopeNameForRefs.<locals>.<genexpr>*   s     84C73'4   c              3   4   K   | ]  }t        |d         yw)regionNr   r   s     r   r   z4Delete._GetCommonScopeNameForRefs.<locals>.<genexpr>+   s     <tWS(+tr   r   r!   N)any)selfrefshas_zone
has_regions       r   _GetCommonScopeNameForRefsz!Delete._GetCommonScopeNameForRefs(   s5    8488H<t<<J
	Hr   c                     |j                   }g }|D ]  }|j                         dk(  rC|j                  }|j                  |j	                         |j
                  |j                        }n~|j                         dk(  rC|j                  }|j                  |j	                         |j
                  |j                        }n(t        dj                  |j                                     |j                  |d|f        |S )z>Returns a list of delete messages for instant snapshot groups.zcompute.instantSnapshotGroups)instantSnapshotGroupprojectr   z#compute.regionInstantSnapshotGroups)r)   r*   r!   zUnknown reference type {0}r   )MESSAGES_MODULE
CollectioninstantSnapshotGroups)ComputeInstantSnapshotGroupsDeleteRequestNamer*   r   regionInstantSnapshotGroups/ComputeRegionInstantSnapshotGroupsDeleteRequestr!   
ValueErrorformatappend)r#   clientisg_refsmessagesrequestsisg_refservicerequests           r   _CreateDeleteRequestszDelete._CreateDeleteRequests4   s     %%HH				!@	@..DD!(OO E  #HH44JJ!(OO>> K #
 5<< " # 	# oow'23# $ Or   c                     t        |       y N)r   )clsr   s     r   ArgszDelete.ArgsM   s
    r   c                 H    t        j                  | j                               S r>   )r   ComputeApiHolderReleaseTrack)r?   no_https     r   _GetApiHolderzDelete._GetApiHolderQ   s    (()9)9);<<r   c                    t        j                  | j                               }|j                  }t        j
                  j                  ||j                  t        j                  |            }| j                  |      }t        j                  ||d        t        | j                  |j                  |            }|j!                  |      S )N)scope_lister)
scope_nameprompt_title)r   rB   rC   r5   r   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr'   r   PromptForDeletionlistr<   apitools_clientMakeRequests)r#   argsholderr5   r9   rH   r8   s          r   _RunzDelete._RunU   s    **4+<+<+>?F]]Fnn.."88@ / G 009J	G
N""6#9#97CEH x((r   c                 $    | j                  |      S r>   )rT   )r#   rR   s     r   Runz
Delete.Runh   s    99T?r   N)F)__name__
__module____qualname____doc__r'   r<   classmethodr@   rE   rT   rV    r   r   r   r   #   sC     8
2   = =)&r   r   N)rZ   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   rL   :googlecloudsdk.command_lib.compute.instant_snapshot_groupsr   DETAILED_HELPr   ReleaseTracksrC   ALPHADefaultUniverseOnlyDeleteCommandr   r\   r   r   <module>rf      sx    - 7 0 ( E Y 0
> D%%++,DT D  -Dr   