
    z                        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	 Zd
 Zd Z ej$                  ej&                  j(                        ej*                   G d dej,                                      Z ej$                  ej&                  j0                         G d de             Z ej$                  ej&                  j4                         G d de             Zdddde_        y)z!Command for describing snapshots.    )absolute_import)division)unicode_literals)base_classes)base)flags)scopec                     t        j                         t        _        t        j                  j	                  | d       y)z Set Args based on Release Track.describeoperation_typeN)r   MakeSnapshotArgDescribeSnapshotArgAddArgumentparsers    )lib/surface/compute/snapshots/describe.py_GAArgsr      s,    ..0(
""6*"E    c                     t        j                         t        _        t        j                  j	                  | d       y Nr   r   r   #MakeSnapshotArgForRegionalSnapshotsr   r   r   r   s    r   	_BetaArgsr   "   ,    BBD(
""6*"Er   c                     t        j                         t        _        t        j                  j	                  | d       y r   r   r   s    r   
_AlphaArgsr   '   r   r   c                   .    e Zd ZdZed        Zd ZddZy)r   z#Describe a Compute Engine snapshot.c                     t        |        y N)r   r   s    r   ArgszDescribe.Args1   s	    FOr   c                 $    | j                  |      S r!   _Runselfargss     r   RunzDescribe.Run5   s    99T?r   c                    t        j                  | j                               }|j                  }|j                  }t
        j                  j                  ||j                  t        j                  |      t        j                  j                        }|r_|j                         dk(  rL |j                  di |j!                         }|j#                  |j$                  j&                  d|fg      d   S  |j(                  di |j!                         }|j#                  |j$                  j*                  d|fg      d   S )N)scope_listerdefault_scopezcompute.regionSnapshotsGetr    )r   ComputeApiHolderReleaseTrackclientmessagesr   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListercompute_scope	ScopeEnumGLOBAL
Collection ComputeRegionSnapshotsGetRequestAsDictMakeRequestsapitools_clientregionSnapshotsComputeSnapshotsGetRequest	snapshots)r'   r(   support_regionholderr1   r2   snapshot_refrequests           r   r%   zDescribe._Run8   s7   **4+<+<+>?F]]FH''99"88@#--44	 : L 	##%)BB :99 !g   ""22E7C
D	  2h11JL4G4G4IJG

 
 
*
*E7	;<	 	r   N)F)__name__
__module____qualname____doc__staticmethodr"   r)   r%   r.   r   r   r   r   ,   s#     , 	r   r   c                   "    e Zd Zed        Zd Zy)DescribeBetac                     t        |        y r!   )r   r   s    r   r"   zDescribeBeta.ArgsZ   s
    fr   c                 (    | j                  |d      S NT)rB   r$   r&   s     r   r)   zDescribeBeta.Run^       99   r   NrF   rG   rH   rJ   r"   r)   r.   r   r   rL   rL   W   s      r   rL   c                   "    e Zd Zed        Zd Zy)DescribeAlphac                     t        |        y r!   )r   r   s    r   r"   zDescribeAlpha.Argsh   s
    vr   c                 (    | j                  |d      S rO   r$   r&   s     r   r)   zDescribeAlpha.Runl   rP   r   NrQ   r.   r   r   rS   rS   e   s      r   rS   z"Describe a Compute Engine snapshota  
    *{command}* displays all data associated with a Compute Engine snapshot
    in a project.

    Given an existing snapshot is queried, successful output of this command
    looks like the following:

    ```
    creationTimestamp: '2018-05-07T10:45:46.988-07:00'
    diskSizeGb: '500'
    id: '1234567891234567890'
    kind: compute#snapshot
    labelFingerprint: 12345abcdWW=
    name: zs9utdhb8r1x
    selfLink: https://www.googleapis.com/compute/v1/projects/test-project-name/global/snapshots/snapshot-number
    sourceDisk: https://www.googleapis.com/compute/v1/projects/test-project-name/zones/us-central1-c/disks/test
    sourceDiskId: '1234567891234567890'
    status: READY
    storageBytes: '0'
    storageBytesStatus: UP_TO_DATE
    ```
    a{  

    To run `{command}`, you'll need the name of a snapshot. To list existing
    snapshots by name, run:

      $ {parent_command} list

    To display specific details of an existing Compute Engine snapshot (like
    its creation time, status, and storage details), run:

      $ {command} SNAPSHOT_NAME --format="table(creationTimestamp, status, storageBytesStatus)"
        )briefDESCRIPTIONEXAMPLESN)rI   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r5   r	   r7   ,googlecloudsdk.command_lib.compute.snapshotsr   r   r   ReleaseTracksr0   GAUniverseCompatibleDescribeCommandr   BETArL   ALPHArS   detailed_helpr.   r   r   <module>re      s    ( &  ' 7 ( E E >FF
F
 D%%(()&	t## &	  *&	R D%%**+
8 
 ,
 D%%++,
H 
 -
 2.3% r   