
    6                        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dlmZ ddlmZ dd
lmZ ddlmZ  ej.                  ej0                  j2                  ej0                  j4                  ej0                  j6                         G d dej8                               Z ej<                  d      e_        y)z/Command for adding labels to instant snapshots.    )absolute_import)division)unicode_literals)base_classes)instant_snapshots_utils)poller)waiter)base)flags)labels_doc_helper)labels_flags)labels_utilc                   *    e Zd ZdZdZed        Zd Zy)	AddLabelsz)add-labels command for instant snapshots.Nc                     t        j                         | _        | j                  j                  |       t	        j
                  |       y )N)	ips_flagsMakeInstantSnapshotArgIPS_ARGAddArgumentr   AddArgsForAddLabels)clsparsers     3lib/surface/compute/instant_snapshots/add_labels.pyArgszAddLabels.Args'   s2    224CKKKF#$$V,    c                    t        j                  | j                               }|j                  j                  }|j                  j
                  }| j                  j                  ||j                  t        j                  |j                              }t        j                  |      }t        j                  |||      }|j                         }|j!                         }	t        j"                  |      j%                  |	j&                  |j(                        }
|j+                  ||
j-                               }|
j.                  s|S |j1                         }|j3                  |      }|j                  j5                  |j6                  |j9                               }t;        j<                  |      }t?        j@                  ||djC                  |jE                                     S )N)scope_lister)	additions)
collectionz)Updating labels of instant snapshot [{0}])#r   ComputeApiHolderReleaseTrackclientapitools_clientmessagesr   ResolveAsResource	resourcesr   GetDefaultScopeListerr   GetUpdateLabelsDictFromArgsapi_utilGetInstantSnapshotInfoGetInstantSnapshotResourceGetSetLabelsRequestMessageDiffApplyLabelsValuelabels)GetSetInstantSnapshotLabelsRequestMessage	GetOrNoneneeds_update
GetService	SetLabelsParseselfLinkGetOperationCollectionr   Pollerr	   WaitForformatName)selfargsholderr"   r$   ips_ref
add_labelsips_infoipsset_label_reqlabels_updaterequestservice	operationoperation_refoperation_pollers                   r   RunzAddLabels.Run-   s   **4+<+<+>?F]]**F}}%%Hll,,00? - AG
 88>J..wIH

-
-
/C779M$$z:@@!!3::/M @@]$$&(G %%j!!#G!!'*I$$**x'F'F'H + JM }}W->>-3::7<<>JL Lr   )__name__
__module____qualname____doc__r   classmethodr   rK    r   r   r   r   !   s$     2'- -
 Lr   r   zinstant-snapshotsN) rO   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   r)   )googlecloudsdk.api_lib.compute.operationsr   googlecloudsdk.api_lib.utilr	   googlecloudsdk.callioper
   "googlecloudsdk.command_lib.computer   r   r   4googlecloudsdk.command_lib.compute.instant_snapshotsr   $googlecloudsdk.command_lib.util.argsr   ReleaseTracksr!   GABETAALPHAUpdateCommandr    GenerateDetailedHelpForAddLabelsdetailed_helprQ   r   r   <module>ra      s    6 &  ' 7 N < . ( 4 @ ; S < D%%((%%**D,=,=,C,CE*L"" *LE*L\ 7667JK 
 r   