
    _                        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  ej                  ej                  j                   ej                  j"                         G d	 d
ej$                               Zy)zDCommand for updating the reservations in Compute Engine commitments.    )absolute_import)division)unicode_literals)base_classes)base)flags)reservation_helperc                   .    e Zd ZdZddiZed        Zd Zy)UpdateReservationsAlphaz@Update the resource shape of reservations within the commitment.EXAMPLESa  
        To update reservations of the commitment called ``commitment-1'' in
        the ``us-central1'' region with values from ``reservations.yaml'', run:

          $ {command} commitment-1 --reservations-from-file=reservations.yaml

        For detailed examples, please refer to [](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources#modifying_reservations_that_are_attached_to_commitments)
      c                 z    t        j                  d      j                  | d       t        j                  |        y )NFzupdate reservation)operation_type)r   MakeCommitmentArgAddArgumentAddUpdateReservationGroup)parsers    6lib/surface/compute/commitments/update_reservations.pyArgszUpdateReservationsAlpha.Args*   s4    	E"..3 / 5	##F+    c                    t        j                  | j                               }|j                  }|j                  }t        j                  d      j                  ||t        j                  |            }|j                  j                  }|j                  }|j                  t        j                  |||            }|j!                  |j#                         |j$                  |j&                  |      }	|j)                  |d|	fg      S )NF)scope_lister)reservations)
commitmentprojectregion*regionCommitmentsUpdateReservationsRequestUpdateReservations)r   ComputeApiHolderReleaseTrackclient	resourcesr   r   ResolveAsResourcecompute_flagsGetDefaultScopeListerapitools_clientregionCommitmentsmessages*RegionCommitmentsUpdateReservationsRequestr	   MakeUpdateReservations1ComputeRegionCommitmentsUpdateReservationsRequestNamer   r   MakeRequests)
selfargsholderr    r!   commitment_refservicer'   update_reservation_requestrequests
             r   RunzUpdateReservationsAlpha.Run0   s   **4+<+<+>?F]]F  I,,U3EE"88@ F BN $$66GH!)!T!T'>>(I' "U "( HH!&&(&&$$3M	 I OG
 *> HIJJr   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   r4    r   r   r   r      s.    H 
	- , ,
Kr   r   N)r8   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r#   .googlecloudsdk.command_lib.compute.commitmentsr	   ReleaseTracksr   ALPHABETAUpdateCommandr   r;   r   r   <module>rE      so    K &  ' 7 ( E @ M D%%++T->->-C-CD%Kd00 %K E%Kr   