
                            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0rS rS rS r\R4                  " \R6                  R8                  5      \R:                   " S S\R<                  5      5       5       r\R4                  " \R6                  R@                  5       " S S\5      5       r!\R4                  " \R6                  RD                  5       " S S\5      5       r#g)z'Command for labels update to snapshots.    )absolute_import)division)unicode_literals)base_classes)poller)waiter)base)flags)scope)labels_utilEXAMPLESa6          To update labels ``k0'' and ``k1'' and remove labels with key ``k3'', run:

          $ {command} example-snapshot --update-labels=k0=value1,k1=value2 --remove-labels=k3

          ``k0'' and ``k1'' will be added as new labels if not already present.

        Labels can be used to identify the snapshot and to filter them like:

          $ {parent_command} list --filter='labels.k1:value2'

        To list only the labels when describing a resource, use --format:

          $ {parent_command} describe example-snapshot --format="default(labels)"
        c                     [         R                  " 5       [        l        [        R                  R	                  U SS9  [
        R                  " U 5        gz Set Args based on Release Track.update)operation_typeN)snapshots_flagsMakeSnapshotArgUpdateSnapshotArgAddArgumentr   AddUpdateLabelsFlagsparsers    'lib/surface/compute/snapshots/update.py_GAArgsr   2   s:    &668&   A""6*    c                     [         R                  " 5       [        l        [        R                  R	                  U SS9  [
        R                  " U 5        gr   r   #MakeSnapshotArgForRegionalSnapshotsr   r   r   r   r   r   s    r   	_BetaArgsr    9   :    &JJL&   A""6*r   c                     [         R                  " 5       [        l        [        R                  R	                  U SS9  [
        R                  " U 5        gr   r   r   s    r   
_AlphaArgsr#   @   r!   r   c                   <    \ rS rSrSr\r\S 5       rS r	SS jr
Srg)	r   G   z]Update a Compute Engine snapshot.

*{command}* updates labels for a Compute Engine snapshot.
c                     [        U 5        g N)r   r   s    r   ArgsUpdate.ArgsQ   s	    FOr   c                 $    U R                  U5      $ r'   _Runselfargss     r   Run
Update.RunU   s    99T?r   c           
      d   [         R                  " U R                  5       5      nUR                  R                  nUR                  R
                  n[        R                  R                  UUR                  [        R                  " UR                  5      [        R                  R                  S9nU(       Ga  UR                  5       S:X  Gax  [         R"                  " U5      nUR$                  R'                  UR(                  " S
0 UR+                  5       D65      nUR-                  UR.                  R0                  UR2                  5      n	U	R4                  (       d  U$ UR7                  UR8                  UR:                  UR<                  UR/                  UR>                  U	R2                  S9S9n
UR$                  RA                  U
5      nUR                  RC                  URD                  SS9n[F        RH                  " UR$                  5      n[J        RL                  " UUSRO                  URQ                  5       5      5      $ [         R"                  " U5      nURR                  R'                  URT                  " S
0 UR+                  5       D65      nUR-                  URV                  R0                  UR2                  5      n	U	R4                  (       d  U$ URY                  UR8                  UR:                  URW                  UR>                  U	R2                  S9S9n
URR                  RA                  U
5      nUR                  RC                  URD                  S	S9n[F        RH                  " URR                  5      n[J        RL                  " XSRO                  URQ                  5       5      5      $ )N)scope_listerdefault_scopezcompute.regionSnapshots)labelFingerprintlabels)projectresourceregionregionSetLabelsRequestzcompute.regionOperations)
collectionz!Updating labels of snapshot [{0}])r7   r8   globalSetLabelsRequestzcompute.globalOperations )-r   ComputeApiHolderReleaseTrackclientapitools_clientmessagesr   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListercompute_scope	ScopeEnumGLOBAL
Collectionr   GetAndValidateOpsFromArgsregionSnapshotsGet ComputeRegionSnapshotsGetRequestAsDictApplyRegionSetLabelsRequestLabelsValuer6   needs_update&ComputeRegionSnapshotsSetLabelsRequestr7   snapshotr9   r5   	SetLabelsParseselfLinkr   Pollerr   WaitForformatName	snapshotsComputeSnapshotsGetRequestGlobalSetLabelsRequest ComputeSnapshotsSetLabelsRequest)r.   r/   support_regionholderr@   rB   snapshot_reflabels_diffregional_snapshotlabels_updaterequest	operationoperation_refoperation_pollerrU   s                  r   r,   Update._RunX   s9   **4+<+<+>?F]]**F}}%%H%%77"88G#--44	 8 7L 	##%)BB99$?k 0044

3
3
Ll6I6I6K
L "''

)
)
5
57H7O7Om ''  ??&&(($$!)!@!@0AA")) "A "	 @ g ((227;i&&,,


)C - m  v'='=>^^


-
4
4\5F5F5H
I   99$?k!!%%

-
-
F0C0C0E
Fh "''

)
)
5
5xm ''99&&((

)
)'88")) * +	 : ,g "",,W5i&&,,


)C - Em  v'7'78^^

-
4
4!#$ $r   r=   N)F)__name__
__module____qualname____firstlineno____doc__DETAILED_HELPdetailed_helpstaticmethodr(   r0   r,   __static_attributes__r=   r   r   r   r   G   s+    
  - N$r   r   c                   .    \ rS rSrSr\S 5       rS rSrg)
UpdateBeta   !Update a Compute Engine snapshot.c                     [        U 5        g r'   )r    r   s    r   r(   UpdateBeta.Args   s
    fr   c                 "    U R                  USS9$ NT)ra   r+   r-   s     r   r0   UpdateBeta.Run       99   r   r=   N	rl   rm   rn   ro   rp   rs   r(   r0   rt   r=   r   r   rv   rv      s    ) r   rv   c                   .    \ rS rSrSr\S 5       rS rSrg)UpdateAlpha   rx   c                     [        U 5        g r'   )r#   r   s    r   r(   UpdateAlpha.Args   s
    vr   c                 "    U R                  USS9$ r|   r+   r-   s     r   r0   UpdateAlpha.Run   r~   r   r=   Nr   r=   r   r   r   r      s    ) r   r   N)$rp   
__future__r   r   r   googlecloudsdk.api_lib.computer   )googlecloudsdk.api_lib.compute.operationsr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.computer
   rE   r   rG   ,googlecloudsdk.command_lib.compute.snapshotsr   $googlecloudsdk.command_lib.util.argsr   rq   r   r    r#   ReleaseTracksr?   GAUniverseCompatibleUpdateCommandr   BETArv   ALPHAr   r=   r   r   <module>r      s    . &  ' 7 < . ( E E Q < 	(+++ D%%(()]$T ]$  *]$@ D%%**+  , D%%++,&  -r   