
    !                     0   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
 rS r\R"                  \R$                  " \R&                  R(                  5       " S S\R*                  5      5       5       r\R$                  " \R&                  R.                  5      \R"                   " S S\5      5       5       r\R$                  " \R&                  R2                  5       " S S\5      5       rSSS.\l        SSS.\l        g)z/Command for compute future reservations create.    )absolute_import)division)unicode_literals)base_classes)base)flags)resource_args)utilc                     [         R                  " XX5      nU R                  Ul        U R                  Ul        UR                  UUUR                  S9$ )z7Common routine for creating future reservation request.)futureReservationprojectzone)r
   $MakeFutureReservationMessageFromArgsdescriptionname_prefix
namePrefix&ComputeFutureReservationsInsertRequestr   )argsmessages	resourcesr   future_reservation_reffuture_reservations         1lib/surface/compute/future_reservations/create.py_MakeCreateRequestr      s_     @@49#'#3#3 "&"2"2		8	8*!&& 
9 
( (    c                 z   U R                   n[        R                  " 5       R                  UU[        R
                  " U R                  5      S9nU R                  R                  nUR                  n[        XX%U5      nU R                  R                  R                  nU R                  R                  USU4/5      $ )z/Common routine for creating future reservation.)scope_listerInsert)r   r	   GetFutureReservationResourceArgResolveAsResourcecompute_flagsGetDefaultScopeListerclientr   r   r   apitools_clientfutureReservationsMakeRequests)compute_apir   r   r   r   r   create_requestservices           r   
_RunCreater*   +   s    ##)(HH 
 66{7I7IJ  L  ((("**'%di&<>. ..AA'				(	(7Hn*M)N	OOr   c                   ^    \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrSrSrSr\S 5       rS rSrg)	CreateV1=   $Create a Compute Engine reservation.TFc                 z   [         R                  " 5       R                  USS9  [        R                  " UU R
                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                   S9  g Ncreateoperation_type)support_share_settingsupport_location_hintsupport_fleetsupport_planning_statussupport_instance_templatesupport_local_ssd_countsupport_auto_delete$support_require_specific_reservationsupport_gscsupport_dws_gpusupport_cudssupport_dws_tpur	   r   AddArgumentr   AddCreateFlags_support_share_setting_support_location_hint_support_fleet_support_planning_status_support_instance_template_support_local_ssd_count_support_auto_delete%_support_require_specific_reservation_support_gsc_support_dws_gpu_support_cuds_support_dws_tpuclsparsers     r   ArgsCreateV1.ArgsN   s    113??x @ )	!88!88(( # < <"%"@"@ # < <44-0-V-V$$,,&&,,r   c                 r    [        [        R                  " [        R                  R
                  5      U5      $ N)r*   r   ComputeApiHolderr   ReleaseTrackGAselfr   s     r   RunCreateV1.Runb   s-    %%d&7&7&:&:;TC Cr    N__name__
__module____qualname____firstlineno____doc__rC   rD   rG   rE   rF   rH   rI   rJ   rK   rL   rM   rN   classmethodrR   r[   __static_attributes__r]   r   r   r,   r,   =   sd     - #.!!*.',- &Cr   r,   c                   ^    \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrSrSrSr\S 5       rS rSrg)	
CreateBetag   r.   TFc                 z   [         R                  " 5       R                  USS9  [        R                  " UU R
                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                   S9  g r0   r@   rO   s     r   rR   CreateBeta.Argsx   s    113??x @  
!88!88(( # < <"%"@"@ # < <44-0-V-V$$,,&&,,r   c                 r    [        [        R                  " [        R                  R
                  5      U5      $ rU   )r*   r   rV   r   rW   BETArY   s     r   r[   CreateBeta.Run   s-    %%d&7&7&<&<=tE Er   r]   Nr^   r]   r   r   rg   rg   g   sd     - #.!!*.',- (Er   rg   c                   ^    \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrSrSrSr\S 5       rS rSrg)CreateAlpha   +Create a Compute Engine future reservation.Tc                 z   [         R                  " 5       R                  USS9  [        R                  " UU R
                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                   S9  g )Nr1   r2   )r4   r5   r6   r7   r8   r9   r:   r;   r<   r>   r=   r?   )r	   r   rA   r   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rM   rL   rN   rO   s     r   rR   CreateAlpha.Args   s    113??x @ )	!88!88(( # < <"%"@"@ # < <44-0-V-V$$&&,,,,r   c                 r    [        [        R                  " [        R                  R
                  5      U5      $ rU   )r*   r   rV   r   rW   ALPHArY   s     r   r[   CreateAlpha.Run   s-    %%d&7&7&=&=>F Fr   r]   N)r_   r`   ra   rb   rc   rC   rD   rG   rE   rF   rH   rI   rJ   rK   rM   rL   rN   rd   rR   r[   re   r]   r   r   ro   ro      sb    3#.!!*.',- &Fr   ro   rq   a  
        To create a Compute Engine future reservation by specifying VM properties using an instance template, run:

            $ {command} my-future-reservation --total-count=1000 --start-time=2022-11-10 --end-time=2022-12-10 --name-prefix=prefix-reservation --source-instance-template=example-instance-template --zone=fake-zone

        To create a Compute Engine future reservation by directly specifying VM properties, run:

            $ {command} my-future-reservation --total-count=1000 --start-time=2022-11-10 --end-time=2022-12-10 --name-prefix=prefix-reservation --machine-type=custom-8-10240 --min-cpu-platform="Intel Haswell" --accelerator=count=2,type=nvidia-tesla-v100 --local-ssd=size=375,interface=scsi
        )briefEXAMPLESN)rc   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r!   6googlecloudsdk.command_lib.compute.future_reservationsr	   r
   r   r*   DefaultUniverseOnlyReleaseTracksrW   rX   CreateCommandr,   rl   rg   ru   ro   detailed_helpr]   r   r   <module>r      s   6 &  ' 7 ( E H P G(P$ D%%(()%Ct!! %C * %CP D%%**+&E &E  ,&ER D%%++,&F* &F -&FT 	6
   	6 r   