
                            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  e	j$                  e	j&                  j(                         G d de	j*                               Z e	j$                  e	j&                  j.                         G d de             Z e	j$                  e	j&                  j2                         G d de             Zy)&Update a Cloud NetApp Volume Snapshot.    )absolute_import)division)unicode_literals)client)base)
exceptions)flags)labels_util)logc                   \    e Zd ZdZej
                  j                  ZdddZe	d        Z
d Zy)Updater   zX          Update a Cloud NetApp Volume Snapshot and its specified parameters.
          z          The following command updates a Snapshot named NAME and its specified parameters:

              $ {command} NAME --location=us-central1 --description="new" --update-labels=key2=val2 --volume=vol1
          )DESCRIPTIONEXAMPLESc                 .    t        j                  |        y )N)snapshots_flagsAddSnapshotUpdateArgs)parsers    .lib/surface/netapp/volumes/snapshots/update.pyArgszUpdate.Args/   s    ))&1    c                 F   |j                   j                  j                         }|j                   j                  j                         t	        j
                  dd      t        j                  | j                        }t        j                  j                  |      }|j                  |      }|j                         rI|j                  |j                  j                   j"                  |j$                        j'                         }nd}|j)                  ||j*                  |      }g }|j-                  d      r|j/                  d       |j-                  d      s"|j-                  d      s|j-                  d      r|j/                  d	       d
j1                  |      }	|j3                  |||	|j4                        }
|j4                  rWdj7                  | j9                         j:                        }t<        j>                  jA                  dj7                  |             |
S )z=Update a Cloud NetApp Volume Snapshot in the current project.Nz--volumez'Requires a volume to update snapshot of)descriptionlabelsr   update_labelsremove_labelsclear_labelsr   ,z'gcloud {} netapp volumes snapshots listzJCheck the status of the updated snapshot by listing all snapshots:
  $ {} )!CONCEPTSsnapshotParsevolumer	   RequiredArgumentExceptionsnapshots_clientSnapshotsClient_RELEASE_TRACKr   DiffFromUpdateArgsGetSnapshotMayHaveUpdatesApplymessagesSnapshotLabelsValuer   	GetOrNoneParseUpdatedSnapshotConfigr   IsSpecifiedappendjoinUpdateSnapshotasync_formatReleaseTrackprefixr   statusPrint)selfargssnapshot_refr   labels_difforiginal_snapshotr   r    updated_fieldsupdate_maskresultcommands               r   Runz
Update.Run3   s   ==))//1L}}!!#+00
?A A --d.A.ABF""11$7K**<8 !!#  
//
"
"
.
.0A0H0H	  f00t'7'7 1 H N &M*)O,N+H%((>*K""hT[[F {{9@@




$
$g 
jjF7O Mr   N)__name__
__module____qualname____doc__r   r7   GAr&   detailed_helpstaticmethodr   rD    r   r   r   r      s@    .$$''.		- 2 20r   r   c                   <    e Zd ZdZej
                  j                  Zy)
UpdateBetar   N)rE   rF   rG   rH   r   r7   BETAr&   rL   r   r   rN   rN   f   s    .$$)).r   rN   c                   <    e Zd ZdZej
                  j                  Zy)UpdateAlphar   N)rE   rF   rG   rH   r   r7   ALPHAr&   rL   r   r   rQ   rQ   m   s    .$$**.r   rQ   N)rH   
__future__r   r   r   /googlecloudsdk.api_lib.netapp.volumes.snapshotsr   r$   googlecloudsdk.callioper   r	   3googlecloudsdk.command_lib.netapp.volumes.snapshotsr
   r   $googlecloudsdk.command_lib.util.argsr   googlecloudsdk.corer   ReleaseTracksr7   rI   UpdateCommandr   rO   rN   rR   rQ   rL   r   r   <module>r[      s    - &  ' V ( . X < # D%%(()DT D *DN D%%**+* * ,* D%%++,+* + -+r   