
    @                        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 ej"                   ej$                  ej&                  j(                  ej&                  j*                  ej&                  j,                         G d dej.                                      Zddie_        y)z4Command for performing maintenance on a reservation.    )absolute_import)division)unicode_literals)base_classes)base)flags)scope)resource_args)utilc                   &    e Zd ZdZed        Zd Zy)PerformMaintenancez^Perform maintenance on a reservation, only applicable to reservations with reservation blocks.c                 x    t        j                         j                  | d       t        j                  |        y )Nzperform-maintenance)operation_type)r
   GetReservationResourceArgAddArgumentr   AddScopeFlags)parsers    7lib/surface/compute/reservations/perform_maintenance.pyArgszPerformMaintenance.Args$   s2    ++-994 : 6	    c                 l   t        j                  | j                               }|j                  }t	        j
                         j                  ||j                  t        j                  j                  t        j                  |            }|j                  j                  |j                  |j                   |j"                  |j                  j%                  t'        j(                  |j                  |j*                                    }|j,                  j.                  }|j1                  |d|fg      S )N)default_scopescope_lister)maintenanceScope)reservationzoneproject%reservationsPerformMaintenanceRequestr   )r   ComputeApiHolderReleaseTrackclientr
   r   ResolveAsResource	resourcescompute_scope	ScopeEnumZONEcompute_flagsGetDefaultScopeListermessages,ComputeReservationsPerformMaintenanceRequestr   r   r   %ReservationsPerformMaintenanceRequestr    MakeReservationsMaintenanceScoper	   apitools_clientreservationsMakeRequests)selfargsholderr!   reservation_refrequestservices          r   RunzPerformMaintenance.Run*   s   **4+<+<+>?F]]F#== #--22"88@	  B  	DD'33 %%#++OOAA!%!F!FvX\XbXb!c B e 	E 	
  $$11G*> HIJJr   N)__name__
__module____qualname____doc__staticmethodr   r6    r   r   r   r      s      g   
Kr   r   EXAMPLESz    To perform maintenance on reservation my-reservation in my-zone with scope all, run:

      $ {command} my-reservation --zone=my-zone --scope=all
    N)r:   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r'   r	   r$   /googlecloudsdk.command_lib.compute.reservationsr
   r   UniverseCompatibleReleaseTracksr    ALPHABETAGAUpdateCommandr   detailed_helpr<   r   r   <module>rJ      s    ; &  ' 7 ( E E A I @ D%%++T->->-C-C%%((* K++  K*  KH 	$   r   