
                         N   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	KJr  SSKJr  S rS rS r\R6                  " \R8                  R:                  5      \R<                   " S S\R>                  5      5       5       r \R6                  " \R8                  RB                  5       " S S\ 5      5       r"\R6                  " \R8                  RF                  5       " S S\ 5      5       r$\RJ                  " S5      \ l&        g)z'Command for adding labels to snapshots.    )absolute_import)division)unicode_literals)base_classes)poller)waiter)base)flags)labels_doc_helper)labels_flags)scope)labels_utilc                     [         R                  " 5       [        l        [        R                  R	                  U 5        [
        R                  " U 5        g)z3A helper function to build args for GA API version.N)snapshots_flagsMakeSnapshotArgSnapshotsAddLabelsSnapshotArgAddArgumentr   AddArgsForAddLabelsparsers    +lib/surface/compute/snapshots/add_labels.py_GAArgsr   !   s6    #2#B#B#D   ,,V4""6*    c                     [         R                  " 5       [        l        [        R                  R	                  U 5        [
        R                  " U 5        g)z5A helper function to build args for Beta API version.Nr   #MakeSnapshotArgForRegionalSnapshotsr   r   r   r   r   r   s    r   	_BetaArgsr   (   <     99;     ,,V4""6*r   c                     [         R                  " 5       [        l        [        R                  R	                  U 5        [
        R                  " U 5        g)z6A helper function to build args for Alpha API version.Nr   r   s    r   
_AlphaArgsr!   1   r   r   c                   8    \ rS rSrSr\S 5       rS rSS jrSr	g)	r   :   a  Add labels to Compute Engine snapshots.

*{command}* adds labels to a Compute Engine snapshot.
For example, running:

  $ {command} example-snapshot --labels=k0=v0,k1=v1

will add key-value pairs ``k0''=``v0'' and ``k1''=``v1'' to
'example-snapshot'.

Labels can be used to identify the snapshot and to filter them as in

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

To list existing labels

  $ {parent_command} describe example-snapshot --format="default(labels)"
c                     [        U 5        g N)r   r   s    r   ArgsSnapshotsAddLabels.ArgsP   s	    FOr   c                 $    U R                  U5      $ r%   _Runselfargss     r   RunSnapshotsAddLabels.RunT   s    99T?r   c           
         [         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a  [         R"                  " U5      nUR$                  R'                  UR(                  " S0 UR+                  5       D65      n[         R,                  " US9R/                  UR0                  R2                  UR4                  5      n	U	R6                  (       d  U$ UR9                  UR:                  UR<                  UR>                  UR1                  UR@                  U	R4                  S9S9n
UR$                  RC                  U
5      nUR                  RE                  URF                  SS9n[H        RJ                  " UR$                  5      n[L        RN                  " XSRQ                  URS                  5       5      5      $ [         R"                  " U5      nURT                  R'                  URV                  " S0 UR+                  5       D65      n[         R,                  " US9R/                  URX                  R2                  UR4                  5      n	U	R6                  (       d  U$ UR[                  UR:                  UR<                  URY                  UR@                  U	R4                  S9S	9n
URT                  RC                  U
5      nUR                  RE                  URF                  S
S9n[H        RJ                  " URT                  5      n[L        RN                  " XSRQ                  URS                  5       5      5      $ )N)scope_listerdefault_scopezcompute.regionSnapshots)	additions)labelFingerprintlabels)projectresourceregionregionSetLabelsRequestzcompute.regionOperations)
collectionz!Updating labels of snapshot [{0}])r6   r7   globalSetLabelsRequestzcompute.globalOperations ).r   ComputeApiHolderReleaseTrackclientapitools_clientmessagesr   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListercompute_scope	ScopeEnumGLOBAL
Collectionr   GetUpdateLabelsDictFromArgsregionSnapshotsGet ComputeRegionSnapshotsGetRequestAsDictDiffApplyRegionSetLabelsRequestLabelsValuer5   needs_update&ComputeRegionSnapshotsSetLabelsRequestr6   snapshotr8   r4   	SetLabelsParseselfLinkr   Pollerr   WaitForformatName	snapshotsComputeSnapshotsGetRequestGlobalSetLabelsRequest ComputeSnapshotsSetLabelsRequest)r,   r-   support_regionholderr?   rA   snapshot_ref
add_labelsregional_snapshotlabels_updaterequest	operationoperation_refoperation_pollerrU   s                  r   r*   SnapshotsAddLabels._RunW   sP   **4+<+<+>?F]]**F}}%%H%11CC"88G#--44	 D L 	##%)BB::4@j 0044

3
3
Ll6I6I6K
L "&&<BB

)
)
5
5

"
"$m ''  ??&&(($$

)
)0AA")) *  @ g ((227;i&&,,


)C - Emv'='=>^^

-
4
4!#$ $ ::4@j!!%%

-
-
F0C0C0E
FHh "&&<BB

)
)
5
5
//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__staticmethodr&   r.   r*   __static_attributes__r<   r   r   r   r   :   s&    &  M$r   r   c                   .    \ rS rSrSr\S 5       rS rSrg)SnapshotsAddLabelsBeta   'Add labels to Compute Engine snapshots.c                     [        U 5        g r%   )r   r   s    r   r&   SnapshotsAddLabelsBeta.Args   s
    fr   c                 "    U R                  USS9$ NT)ra   r)   r+   s     r   r.   SnapshotsAddLabelsBeta.Run       99   r   r<   N	rl   rm   rn   ro   rp   rq   r&   r.   rr   r<   r   r   rt   rt      s    / r   rt   c                   .    \ rS rSrSr\S 5       rS rSrg)SnapshotsAddLabelsAlpha   rv   c                     [        U 5        g r%   )r!   r   s    r   r&   SnapshotsAddLabelsAlpha.Args   s
    vr   c                 "    U R                  USS9$ rz   r)   r+   s     r   r.   SnapshotsAddLabelsAlpha.Run   r|   r   r<   Nr}   r<   r   r   r   r      s    / r   r   rU   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
   rD   r   r   r   rF   ,googlecloudsdk.command_lib.compute.snapshotsr   $googlecloudsdk.command_lib.util.argsr   r   r   r!   ReleaseTracksr>   GAUniverseCompatibleUpdateCommandr   BETArt   ALPHAr    GenerateDetailedHelpForAddLabelsdetailed_helpr<   r   r   <module>r      s   . &  ' 7 < . ( E @ ; E Q <+++ D%%(()h$++ h$  *h$V D%%**+/  , D%%++,0  - 66zB   r   