
                             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 d
ZdZddiZd Zd Zd Z e	j,                  e	j.                  j0                        e	j2                   G d de	j4                                      Z e	j,                  e	j.                  j8                         G d de             Z e	j,                  e	j.                  j<                         G d de             Zy)zCommand for deleting snapshots.    )absolute_import)division)unicode_literals)base_classes)utils)base)flags)scopezcompute.regionSnapshotsDeleteEXAMPLESa          To delete Compute Engine snapshots with the names 'snapshot-1'
        and 'snapshot-2', run:

          $ {command} snapshot-1 snapshot-2

        To list all snapshots that were created before a specific date, use
        the --filter flag with the `{parent_command} list` command.

          $ {parent_command} list --filter="creationTimestamp<'2017-01-01'"

        For more information on how to use --filter with the list command,
        run $ gcloud topic filters.
        c                     t        j                  d      t        _        t        j                  j	                  | d       y)z3A helper function to build args for GA API version.Tpluraldeleteoperation_typeN)r	   MakeSnapshotArgr   SnapshotArgAddArgumentparsers    'lib/surface/compute/snapshots/delete.py_GAArgsr   2   s.    ,,D9&   A    c                     t        j                  d      t        _        t        j                  j	                  | d       y)z5A helper function to build args for Beta API version.Tr   r   r   Nr	   #MakeSnapshotArgForRegionalSnapshotsr   r   r   r   s    r   	_BetaArgsr   8   .    @@M&   Ar   c                     t        j                  d      t        _        t        j                  j	                  | d       y)z6A helper function to build args for Alpha API version.Tr   r   r   Nr   r   s    r   
_AlphaArgsr!   >   r   r   c                   2    e Zd ZdZeZed        Zd ZddZ	y)r   z`Delete Compute Engine snapshots.

  *{command}* deletes one or more Compute Engine snapshots.
  c                     t        |        y N)r   r   s    r   ArgszDelete.ArgsN   s	    FOr   c                 $    | j                  |      S r$   _Runselfargss     r   Runz
Delete.RunR   s    99T?r   c           
      $   t        j                  | j                               }|j                  }t        j
                  j                  ||j                  t        j                  |      t        j                  j                        }t        j                  |       g }|D ]  }|r~|j                         t         k(  rg|j#                  |j$                  j&                  t(        |j*                  j-                  |j.                  |j0                  |j2                        f       |j#                  |j$                  j4                  t(        |j*                  j7                  |j.                  |j0                        f        |j9                  |      S )N)scope_listerdefault_scope)projectsnapshotregion)r0   r1   )r   ComputeApiHolderReleaseTrackclientr   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListercompute_scope	ScopeEnumGLOBALr   PromptForDeletion
CollectionREGIONAL_SNAPSHOT_COLLECTIONappendapitools_clientregionSnapshotsDELETEmessages#ComputeRegionSnapshotsDeleteRequestr0   r1   r2   	snapshotsComputeSnapshotsDeleteRequestMakeRequests)r*   r+   support_regionholderr5   snapshot_refsrequestssnapshot_refs           r   r(   zDelete._RunU   sR   **4+<+<+>?F]]F&&88"88@#--44	 9 M 
M*H%
%%'+GG""22OO??$,,%..#** @ 
 	 	"",,OO99$,,|7L7L : 
 	 &. x((r   N)F)
__name__
__module____qualname____doc__DETAILED_HELPdetailed_helpstaticmethodr%   r,   r(    r   r   r   r   D   s*    
  - $)r   c                   &    e Zd ZdZed        Zd Zy)
DeleteBeta Delete Compute Engine snapshots.c                     t        |        y r$   )r   r   s    r   r%   zDeleteBeta.Args   s
    fr   c                 (    | j                  |d      S NT)rI   r'   r)   s     r   r,   zDeleteBeta.Run       99   r   NrN   rO   rP   rQ   rT   r%   r,   rU   r   r   rW   rW   |   s    ( r   rW   c                   &    e Zd ZdZed        Zd Zy)DeleteAlpharX   c                     t        |        y r$   )r!   r   s    r   r%   zDeleteAlpha.Args   s
    vr   c                 (    | j                  |d      S r[   r'   r)   s     r   r,   zDeleteAlpha.Run   r\   r   Nr]   rU   r   r   r_   r_      s    ( r   r_   N) rQ   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   r8   r
   r:   ,googlecloudsdk.command_lib.compute.snapshotsr?   rC   rR   r   r   r!   ReleaseTracksr4   GAUniverseCompatibleDeleteCommandr   BETArW   ALPHAr_   rU   r   r   <module>rm      s   & &  ' 7 0 ( E E >8 	 	&BBB D%%(()3)T 3)  *3)l D%%**+  , D%%++,&  -r   