
    &                        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j0                                      Zddie_        y)z:Command for performing maintenance on a reservation block.    )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 block within a reservation.c                     t        j                         j                  | d       t        j                  |        t        j
                  |        y )Nzperform-maintenance)operation_type)r
   GetReservationResourceArgAddArgumentr   AddDescribeFlagsAddScopeFlags)parsers    >lib/surface/compute/reservations/blocks/perform_maintenance.pyArgszPerformMaintenance.Args$   s@    ++-994 : 6	6"	    c                 ~   t        j                  | j                               }|j                  }t	        j
                         j                  ||j                  t        j                  j                  t        j                  |            }|j                  j                  |j                  |j                   |j"                  |j$                  |j                  j'                  t)        j*                  |j                  |j,                                    }|j/                  |j0                  j2                  d|fg      S )N)default_scopescope_lister)maintenanceScope)reservationzoneprojectreservationBlock+reservationsBlocksPerformMaintenanceRequestr   )r   ComputeApiHolderReleaseTrackclientr
   r   ResolveAsResource	resourcescompute_scope	ScopeEnumZONEcompute_flagsGetDefaultScopeListermessages1ComputeReservationBlocksPerformMaintenanceRequestr   r   r   
block_name+ReservationsBlocksPerformMaintenanceRequestr   %MakeReservationBlocksMaintenanceScoper	   MakeRequestsapitools_clientreservationBlocks)selfargsholderr#   reservation_refrequests         r   RunzPerformMaintenance.Run+   s   **4+<+<+>?F]]F#== #--22"88@	  B  	II'33 %%#++!__OOGG!%!K!KOOTZZ"1 H 2 	J 		
  !7!7!I!I!5w!@  A B Br   N)__name__
__module____qualname____doc__staticmethodr   r8    r   r   r   r      s      I   Br   r   EXAMPLESa      To perform maintenance on a reservation block in reservation my-reservation
    in my-zone with block name my-reservation-block-0001 with scope all, run:

      $ {command} my-reservation --zone=my-zone --block-name=my-reservation-block-0001 --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   6googlecloudsdk.command_lib.compute.reservations.blocksUniverseCompatibleReleaseTracksr"   ALPHABETAGAUpdateCommandr   detailed_helpr>   r   r   <module>rM      s    A &  ' 7 ( E E I @ H D%%++T->->-C-C%%((*#B++ #B* #BL 	$   r   