
                            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
S.r\R                  \R                  " \R                  R                   5       " S S\R"                  5      5       5       r\R                  \R                  " \R                  R&                  5       " S S\5      5       5       rg)zGCommand for advicing best zone and window time for future reservations.    )absolute_import)division)unicode_literals)base_classes)base)flags)utilzP
      Recommends the optimal time window and zone for Future Reservations.
    a  
      To request an advice for a future reservation of 8 a3-highgpu-8g VMs, run:

      $ {command}
        --region=fake-region
        --machine-type=a3-megagpu-8g
        --vm-count=8
        --duration-range=min=7d,max=14d
        --start-time-range=from=2025-02-20,to=2025-03-25
        --end-time-range=from=2025-02-20,to=2025-03-25

      To request advice for a future reservation of 512 v5e TPUs, run:

        $ {command}
          --region=fake-region
          --location-policy=fake-zone-1=DENY,fake-zone-2=ALLOW
          --tpu-version=V5E
          --chip-count=16
          --workload-type=BATCH
          --duration-range=min=30d,max=90d
          --start-time-range=from=2025-02-25,to=2025-06-25
          --end-time-range=from=2025-02-25,to=2025-06-25
    )DESCRIPTIONEXAMPLESc                   2    \ rS rSrSr\r\S 5       rS r	Sr
g)CalendarMode:   DRecommends the optimal time window and zone for Future Reservations.c                 8   [         R                  " U5        [         R                  " U5        [         R                  " U5        [         R                  " U5        [         R
                  " U5        [         R                  " U5        [         R                  " U5        g)z9Adds arguments for the calendar-mode command to a parser.N)r   AddRegionFlagAddLocationPolicyFlagAddStartTimeRangeFlagAddEndTimeRangeFlagAddDurationRangeFlagAddAcceleratorPropertiesFlagsAddDeploymentTypeFlag)clsparsers     +lib/surface/compute/advice/calendar_mode.pyArgsCalendarMode.ArgsA   sf     
	'	'	f%	v&	''/	'    c                     [         R                  " U R                  5       5      nUR                  nUR                  n[
        R                  " X5      nUR                  R                  nSnUR                  XgU4/5      $ )zRuns the calendar-mode command.r   )
r   ComputeApiHolderReleaseTrackclientmessagesr	   #GetComputeAdviceCalendarModeRequestapitools_clientadviceMakeRequests)selfargsholderr!   r"   request_messageservicemethod_names           r   RunCalendarMode.RunL   sr     **4+<+<+>?F]]FH >>tNO $$++G K GHIIr    N)__name__
__module____qualname____firstlineno____doc__DETAILED_HELPdetailed_helpclassmethodr   r-   __static_attributes__r/   r   r   r   r   :   s%     M-( (Jr   r   c                       \ rS rSrSr\rSrg)CalendarModeAlpha\   r   r/   N)r0   r1   r2   r3   r4   r5   r6   r8   r/   r   r   r:   r:   \   s     M-r   r:   N)r4   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   )googlecloudsdk.command_lib.compute.advicer   r	   r5   DefaultUniverseOnlyReleaseTracksr    BETABaseCommandr   ALPHAr:   r/   r   r   <module>rE      s     N &  ' 7 ( ; :	< D%%**+J<++ J , J@ D%%++,    -  r   