Create future reservation requests for a single project

This document explains how to create single-project future reservation requests.

After Google Cloud approves a single-project future reservation request,Compute Engine automatically creates (auto-creates) reservations with yourrequested resources at your specified start time. You have very high assurancethat Compute Engine delivers your reserved resources, giving yourproject exclusive access to those resources for your entire reservation period.You can then use the reserved resources to create virtual machine (VM)instances.

To learn more about the requirements and limitations that you apply when youcreate a future reservation request, seeAbout future reservation requests.

Important: Before you create and submit a future reservation request for GPUVMs, you must contact youraccount team or thesales team to discuss your request.Otherwise, Google Cloud is likely to decline it.

Before you begin

Required roles

To get the permissions that you need to create single-project future reservation requests, ask your administrator to grant you theCompute Future Reservation User (roles/compute.futureReservationUser) IAM role on the project. For more information about granting roles, seeManage access to projects, folders, and organizations.

This predefined role contains the permissions required to create single-project future reservation requests. To see the exact permissions that are required, expand theRequired permissions section:

Required permissions

The following permissions are required to create single-project future reservation requests:

  • To create a future reservation request: compute.futureReservations.create on the project
  • To let Compute Engine auto-create reservations: compute.reservations.create on the project
  • To specify an instance template: compute.instanceTemplates.useReadOnly on the instance template

You might also be able to get these permissions withcustom roles or otherpredefined roles.

Create a draft request

When creating a future reservation request, you can either save the request asa draft and later submit it to Google Cloud for review, or directly submitthe request for review. Google recommends creating a draft request first as thislets youdetermine the number of VMsthat Compute Engine will provision for your request instead of manuallyestimating this number, and optionallymodify the number of reserved VMs in the requestbefore submitting it for review.

To consume an auto-created reservation for a future reservation, a VM must haveproperties thatexactly matchthat reservation. To specify the properties of the VMs that you want to requestto reserve by creating a future reservation request, use one of the followingmethods:

  • Recommended:Specify an instance template

    You can use an existinginstance template to define theproperties of a future reservation request. By using an instance template,you can define the properties of a future reservation and the VMs that canconsume the auto-created reservations in the same place.

  • Specify an existing VM

    You can use an existing VM to define the properties of a future reservationrequest. By using the properties of an existing VM, you can consume theauto-created reservations provisioned for the future reservation by creatingVMs with properties that match the reference VM.

  • Specify properties directly

    You can directly define the properties of a future reservation request. Thismethod requires you to manually ensure that the properties of your VMs andthe auto-created reservationsexactly match—any mismatchedproperties prevent consumption.

An auto-created reservation for a future reservation can be automaticallyconsumed by any VM with matching properties. If you want to prevent a VM fromconsuming any of these auto-created reservations, see how tocreate VMs without consuming reservations.

Specify an instance template

When creating a future reservation request by specifying an instance template,consider the following:

  • You must create your future reservation request in the same region and zoneas the resources within the instance template. Anyregionalorzonal resourcesthat are specified in an instance template—such as a machine type or aPersistent Disk—restrict the use of the template to the locations wherethose resources are located. For example, if your instance templatespecifies an existing Persistent Disk in theus-central1-a zone, thenyou must create your future reservation request in the same zone. Otherwise,creating the future reservation request fails.

    To check if an existing template specifies any resources that bind thetemplate to a specific region or zone,view the details of the templateand look for references to regional or zonal resources inside of it.

  • If you want to attach the auto-created reservations provisioned for a futurereservation to a commitment, then you must disable the auto-delete option.For more information, seeRestrictions after creation.

After creating a future reservation request, you can't modify the futurereservation request to override the template's VM properties or specify anothertemplate. Instead, you mustcreate a new future reservation request.

To create a single-project future reservation by specifying an existing instancetemplate, select one of the following options:

Console

  1. In the Google Cloud console, go to theReservations page.

    Go to Reservations

  2. Click theFuture reservations tab.

  3. ClickCreate future reservation.

    TheCreate a future reservation page opens.

  4. ForName, enter a name for your future reservation request.

  5. ForPrefix, enter a name prefix. The name of each auto-createdreservation from this future reservation request starts with this prefix.

  6. ForRegion andZone, select the region and zone in which to reserveresources.

  7. ForStart time, enter a start time for the reservation period. The starttime can't be later than one year from the date and time at which you submita future reservation request for review. To have sufficient time tooptionally modify, cancel, or delete the future reservation before it entersits lock time, specify arecommended value for the start time.

  8. ForEnd time, enter an end time for the reservation period. In theDuration summary section, you can see the length of the reservationperiod. To increase the likelihood that Google Cloud approves yourfuture reservation request after submitting it for review, specify arecommended value for the reservation period.

  9. In theShare type section, selectLocal if it's not alreadyselected.

  10. ForTotal capacity needed, enter thetotal countof VMs that you want reserved for the period, VM configuration, and projectsspecified in this future reservation request.

    Important: Verify that you have sufficient quota for the resources thatyou're requesting to reserve. Otherwise, if you submit the futurereservation request for review, Google Cloud declines it.
  11. In theMachine configuration section, do the following:

    1. SelectUse instance template.

    2. ForInstance template, select the instance template of your choice.If you select a regional instance template, then you can only reserveresources within the same region as the template's region.

  12. In theAuto-generated reservations auto-delete section, do one ofthe following:

  13. To finish creating the draft future reservation request, clickSave a draft.

TheReservations page opens. Creating the future reservation request cantake up to a minute to complete.

gcloud

To create asingle-projectfuture reservation request by specifyingan instance template, use thegcloud compute future-reservations create command.

To create a draft future reservation request by specifyingan instance template without includingany optional flags, and auto-delete the auto-created reservation at the end ofthe reservation period, run the following command:

gcloud compute future-reservations createFUTURE_RESERVATION_NAME \    --auto-delete-auto-created-reservations \    --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE

Replace the following:

  • FUTURE_RESERVATION_NAME: the name of the futurereservation request.
  • PROJECT_ID: the ID of the project where you want toreserve resources and where the instance template is located.

  • LOCATION: the location of the instance template. Specifyone of the following values:

    • For a regional instance template:regions/REGION. ReplaceREGIONwith the region where the instance template is located. If you specify aregional instance template, then you can only create the futurereservation request within the same region as the template's region.

    • For a global instance template:global.

  • INSTANCE_TEMPLATE_NAME: the name of an existing instancetemplate.

For example, suppose that you want to create a draft future reservation requestnamedfr-01 inzoneus-central1-a with the following properties:

  • A reservation period that starts at midnight on November 10, 2024 UTC, andends at midnight on December 10, 2024 UTC.

  • A total count of 80 VMs.

  • A regional instance template from regionus-central1.
  • The auto-delete option enabled. The auto-created reservations are deleted atthe end of the reservation period.

To createfr-01,run the following command:

gcloud compute future-reservations create fr-01 \    --auto-delete-auto-created-reservations \    --source-instance-template=projects/example-project/regions/us-central1/instanceTemplates/example-template \    --start-time=2024-11-10T00:00:00Z \    --end-time=2024-12-10T00:00:00Z \    --total-count=80 \    --zone=us-central1-a

Optionally, you can do one or more of the following:

  • To delete the auto-created reservations after the end time of thereservation period, select one of the following methods:

    • To delete the auto-created reservations at a specific date and timeafter the end time of the reservation period, include the--auto-created-reservations-delete-time flag.

      gcloud compute future-reservations createFUTURE_RESERVATION_NAME \--auto-created-reservations-delete-time=AUTO_CREATED_RESERVATIONS_DELETE_TIME \    --auto-delete-auto-created-reservations \    --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE

      ReplaceAUTO_CREATED_RESERVATIONS_DELETE_TIME with adate and time formatted as an RFC 3339 timestamp.

    • To delete the auto-created reservations after a specific duration afterthe end time of the reservation period, include the--auto-created-reservations-duration flag.

      gcloud compute future-reservations createFUTURE_RESERVATION_NAME \--auto-created-reservations-duration=DURATION_BEFORE_DELETE \    --auto-delete-auto-created-reservations \    --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE

      ReplaceDURATION_BEFORE_DELETE with a duration in days,hours, minutes, or seconds. For example, specify30m for 30 minutes,or1d2h3m4s for one day, two hours, three minutes, and four seconds.

  • To disable the auto-delete option for the auto-created reservations, replacethe--auto-delete-auto-created-reservations flag with the--no-auto-delete-auto-created-reservations flag.

    gcloud compute future-reservations createFUTURE_RESERVATION_NAME \--no-auto-delete-auto-created-reservations \    --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE
  • To specify a name prefix for the auto-created reservations, include the--name-prefix flag.

    gcloud compute future-reservations createFUTURE_RESERVATION_NAME \    --auto-delete-auto-created-reservations \--name-prefix=NAME_PREFIX \    --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE

    ReplaceNAME_PREFIX with the name prefix for eachauto-created reservation. To help you identify the auto-created reservationsfor this future reservation request, Google Cloud recommends tospecify a unique name prefix.

REST

To create asingle-projectfuture reservation request by specifyingan instance template, make aPOST request to thefutureReservations.insert method.

To create a draft future reservation request by specifyingan instance template without includingany optional fields, make aPOST request as follows:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{  "autoDeleteAutoCreatedReservations":AUTO_DELETE_AUTO_CREATED_RESERVATIONS,  "name": "FUTURE_RESERVATION_NAME",  "specificSkuProperties": {     "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME",    "totalCount":TOTAL_COUNT  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

Replace the following:

  • PROJECT_ID: the ID of the project in which you want toreserveresources and where the instance template is located.

  • ZONE: the zone in which to reserve resources.

  • AUTO_DELETE_AUTO_CREATED_RESERVATIONS: if you set thisfield totrue, then Compute Engine automatically deletes theauto-created reservations for this future reservation within two hours fromthe end time of reservation period. If you want to attach your auto-createdreservations to a commitment, then set this field tofalse.

  • LOCATION: the location of the instance template. Specifyone of the following values:

    • For a regional instance template:regions/REGION. ReplaceREGIONwith the region where the instance template is located. If you specify aregional instance template, then you can only create the futurereservation request within the same region as the template's region.

    • For a global instance template:global.

  • INSTANCE_TEMPLATE_NAME: the name of an existing instancetemplate.

For example, suppose that you want to create a draft future reservation requestnamedfr-01 inzoneus-central1-a with the following properties:

  • A reservation period that starts at midnight on November 10, 2024 UTC, andends at midnight on December 10, 2024 UTC.

  • A total count of 80 VMs.

  • A regional instance template from regionus-central1.
  • The auto-delete option enabled. The auto-created reservations are deleted atthe end of the reservation period.

To createfr-01,make aPOST request as follows:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/futureReservations{  "autoDeleteAutoCreatedReservations": true,  "name": "fr-01",  "specificSkuProperties": {     "sourceInstanceTemplate": "projects/example-project/regions/us-central1/instanceTemplates/example-template",    "totalCount": 80  },  "timeWindow": {    "startTime": "2024-11-10T00:00:00Z",    "endTime": "2024-12-10T00:00:00Z"  }}

Optionally, you can do one or more of the following:

  • To specify a name prefix for the auto-created reservations, include thenamePrefix field.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{  "autoDeleteAutoCreatedReservations":AUTO_DELETE_AUTO_CREATED_RESERVATIONS,  "name": "FUTURE_RESERVATION_NAME","namePrefix": "NAME_PREFIX",  "specificSkuProperties": {     "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME",    "totalCount":TOTAL_COUNT  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

    ReplaceNAME_PREFIX with the name prefix for eachauto-created reservation. To help you identify the auto-created reservationsfor this future reservation request, Google Cloud recommends tospecify a unique name prefix.

  • To delete the auto-created reservations after the end time of thereservation period, select one of the following methods:

    • To delete the auto-created reservations after a specific time after theend of your reservation period, set theautoDeleteAutoCreatedReservations totrue and include theautoCreatedReservationsDeleteTime field.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{"autoCreatedReservationsDeleteTime": "DELETE_TIME",  "autoDeleteAutoCreatedReservations": true,  "name": "FUTURE_RESERVATION_NAME",  "specificSkuProperties": {     "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME",    "totalCount":TOTAL_COUNT  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

      ReplaceDELETE_TIME with a date and time whenCompute Engine deletes the auto-created reservations. The dateand time must be formatted as an RFC 3339 timestamp.

    • To delete the auto-created reservations after a specific duration fromthe start time of the reservation period, set theautoDeleteAutoCreatedReservations totrue and include theautoCreatedReservationsDuration field.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{"autoCreatedReservationsDuration": {    "seconds": "DURATION_BEFORE_DELETE"  },  "autoDeleteAutoCreatedReservations": true,  "name": "FUTURE_RESERVATION_NAME",  "specificSkuProperties": {     "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME",    "totalCount":TOTAL_COUNT  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

      ReplaceDURATION_BEFORE_DELETE with a duration inseconds. For example, specify604800 for 604,800 seconds (7 days).

After creating a draft future reservation request, you can determine thenumber of VMs that Compute Engine will provision for the request.

Specify an existing VM

You can only create a draft future reservation request based on an existing VMin the same zone as the VM.

After the future reservation request is approved by Google Cloud and itenters its reservation period, you can consume its auto-created reservations bycreating VMs with properties that match the reference VM. You can do this bydoing one of the following:

To create a single-project future reservation request that uses the propertiesof an existing VM, do the following:

  1. In the Google Cloud console, go to theReservations page.

    Go to Reservations

  2. Click theFuture reservations tab.

  3. ClickCreate future reservation.

    TheCreate a future reservation page opens.

  4. ForName, enter a name for your future reservation request.

  5. ForPrefix, enter a name prefix. The name of each auto-createdreservation from this future reservation request starts with this prefix.

  6. ForRegion andZone, select the region and zone in which to reserveresources.

  7. ForStart time, enter a start time for the reservation period. The starttime can't be later than one year from the date and time at which you submita future reservation request for review. To have sufficient time tooptionally modify, cancel, or delete the future reservation before it entersits lock time, specify arecommended value for the start time.

  8. ForEnd time, enter an end time for the reservation period. In theDuration summary section, you can see the length of the reservationperiod. To increase the likelihood that Google Cloud approves yourfuture reservation request after submitting it for review, specify arecommended value for the reservation period.

  9. In theShare type section, selectLocal if it's not alreadyselected.

  10. ForTotal capacity needed, enter thetotal countof VMs that you want reserved for the period, VM configuration, and projectsspecified in this future reservation request.

    Important: Verify that you have sufficient quota for the resources thatyou're requesting to reserve. Otherwise, if you submit the futurereservation request for review, Google Cloud declines it.
  11. In theMachine configuration section, do the following:

    1. SelectUse existing VM.

    2. ForExisting VM, select the VM which properties you want to useto create the reservation.

  12. In theAuto-generated reservations auto-delete section, do one ofthe following:

  13. To finish creating the draft future reservation request, clickSave a draft.

TheReservations page opens. Creating the future reservation request cantake up to a minute to complete.

After creating a draft future reservation request, you can determine thenumber of VMs that Compute Engine will provision for the request.

Specify properties directly

If you want to attach the auto-created reservations provisioned for a futurereservation to a commitment, then you must disable the auto-delete option. Formore information, seeRestrictions after creation.

To create a single-project future reservation by specifying properties directly,select one of the following options:

Console

  1. In the Google Cloud console, go to theReservations page.

    Go to Reservations

  2. Click theFuture reservations tab.

  3. ClickCreate future reservation.

    TheCreate a future reservation page opens.

  4. ForName, enter a name for your future reservation request.

  5. ForPrefix, enter a name prefix. The name of each auto-createdreservation from this future reservation request starts with this prefix.

  6. ForRegion andZone, select the region and zone in which to reserveresources.

  7. ForStart time, enter a start time for the reservation period. The starttime can't be later than one year from the date and time at which you submita future reservation request for review. To have sufficient time tooptionally modify, cancel, or delete the future reservation before it entersits lock time, specify arecommended value for the start time.

  8. ForEnd time, enter an end time for the reservation period. In theDuration summary section, you can see the length of the reservationperiod. To increase the likelihood that Google Cloud approves yourfuture reservation request after submitting it for review, specify arecommended value for the reservation period.

  9. In theShare type section, selectLocal if it's not alreadyselected.

  10. ForTotal capacity needed, enter thetotal countof VMs that you want reserved for the period, VM configuration, and projectsspecified in this future reservation request.

    Important: Verify that you have sufficient quota for the resources thatyou're requesting to reserve. Otherwise, if you submit the futurereservation request for review, Google Cloud declines it.
  11. In theMachine configuration section, do the following:

    1. SelectSpecify machine type if it isn't already selected.

    2. Specify the machine type to use for the reserved VMs.

  12. In theAuto-generated reservations auto-delete section, do one ofthe following:

  13. To finish creating the draft future reservation request, clickSave a draft.

TheReservations page opens. Creating the future reservation request cantake up to a minute to complete.

gcloud

To create asingle-projectfuture reservation request by specifyingproperties directly, use thegcloud compute future-reservations create command.

To create a draft future reservation request by specifyingproperties directly without includingany optional flags, and auto-delete the auto-created reservation at the end ofthe reservation period, run the following command:

gcloud compute future-reservations createFUTURE_RESERVATION_NAME \    --auto-delete-auto-created-reservations \    --machine-type=MACHINE_TYPE \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE

Replace the following:

  • FUTURE_RESERVATION_NAME: the name of the futurereservation request.
  • MACHINE_TYPE: the machine type to use for each reservedVM.

For example, suppose that you want to create a draft future reservation requestnamedfr-01 inzoneus-central1-a with the following properties:

  • A reservation period that starts at midnight on November 10, 2024 UTC, andends at midnight on December 10, 2024 UTC.

  • A total count of 80 VMs.

  • An N2 predefined machine type with 4 vCPUs.
  • The auto-delete option enabled. The auto-created reservations are deleted atthe end of the reservation period.

To createfr-01,run the following command:

gcloud compute future-reservations create fr-01 \    --auto-delete-auto-created-reservations \    --machine-type=n2-standard-4 \    --start-time=2024-11-10T00:00:00Z \    --end-time=2024-12-10T00:00:00Z \    --total-count=80 \    --zone=us-central1-a

Optionally, you can do one or more of the following:

  • To attach GPUs to your reserved N1 VMs, include the--accelerator flag.

    gcloud compute future-reservations createFUTURE_RESERVATION_NAME \--accelerator=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE \    --auto-delete-auto-created-reservations \    --machine-type=MACHINE_TYPE \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE

    Replace the following:

    • NUMBER_OF_ACCELERATORS: the number of GPUs to add perreserved VM.

    • ACCELERATOR_TYPE: asupported GPU model for N1 VMs. To preventerrors, verify that your chosen GPU model is available in the zone whereyou're creating the future reservation request.

  • To delete the auto-created reservations after the end time of thereservation period, select one of the following methods:

    • To delete the auto-created reservations at a specific date and timeafter the end time of the reservation period, include the--auto-created-reservations-delete-time flag.

      gcloud compute future-reservations createFUTURE_RESERVATION_NAME \--auto-created-reservations-delete-time=AUTO_CREATED_RESERVATIONS_DELETE_TIME \    --auto-delete-auto-created-reservations \    --machine-type=MACHINE_TYPE \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE

      ReplaceAUTO_CREATED_RESERVATIONS_DELETE_TIME with adate and time formatted as an RFC 3339 timestamp.

    • To delete the auto-created reservations after a specific duration afterthe end time of the reservation period, include the--auto-created-reservations-duration flag.

      gcloud compute future-reservations createFUTURE_RESERVATION_NAME \--auto-created-reservations-duration=DURATION_BEFORE_DELETE \    --auto-delete-auto-created-reservations \    --machine-type=MACHINE_TYPE \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE

      ReplaceDURATION_BEFORE_DELETE with a duration in days,hours, minutes, or seconds. For example, specify30m for 30 minutes,or1d2h3m4s for one day, two hours, three minutes, and four seconds.

  • To disable the auto-delete option for the auto-created reservations, replacethe--auto-delete-auto-created-reservations flag with the--no-auto-delete-auto-created-reservations flag.

    gcloud compute future-reservations createFUTURE_RESERVATION_NAME \--no-auto-delete-auto-created-reservations \    --machine-type=MACHINE_TYPE \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE
  • To attach Local SSD disks to amachine type that doesn't include Local SSD disks by default,include the--local-ssd flag. You can only attach Local SSD disk of375 GB.

    gcloud compute future-reservations createFUTURE_RESERVATION_NAME \    --auto-delete-auto-created-reservations \--local-ssd=count=NUMBER_OF_LOCAL_SSD_DISKS,size=375,interface=INTERFACE_TYPE \    --machine-type=MACHINE_TYPE \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE

    Replace the following:

    • NUMBER_OF_LOCAL_SSD_DISKS: the number of Local SSDdisks to attach.

    • INTERFACE_TYPE: the type of disk interface that youwant the Local SSD disks to use and thatyour specified machine type supports.Specify one of the following values:

      • For the NVME disk interface:nvme

      • For the SCSI disk interface:scsi

  • To have the reserved VMs use a specific minimum CPU platform instead of thezone's default CPU platform, include the--min-cpu-platform flag.

    gcloud compute future-reservations createFUTURE_RESERVATION_NAME \    --auto-delete-auto-created-reservations \    --machine-type=MACHINE_TYPE \--min-cpu-platform="MIN_CPU_PLATFORM" \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE

    ReplaceMIN_CPU_PLATFORM with a minimum CPU platform. Tomake sure that a CPU platform is available in the zone where you'rereserving resources,view the available CPU platforms by zone.

  • To specify a name prefix for the auto-created reservations, include the--name-prefix flag.

    gcloud compute future-reservations createFUTURE_RESERVATION_NAME \    --auto-delete-auto-created-reservations \    --machine-type=MACHINE_TYPE \--name-prefix=NAME_PREFIX \    --start-time=START_TIME \    --end-time=END_TIME \    --total-count=TOTAL_COUNT \    --zone=ZONE

    ReplaceNAME_PREFIX with the name prefix for eachauto-created reservation. To help you identify the auto-created reservationsfor this future reservation request, Google Cloud recommends tospecify a unique name prefix.

REST

To create asingle-projectfuture reservation request by specifyingproperties directly, make aPOST request to thefutureReservations.insert method.

To create a draft future reservation request by specifyingproperties directly without includingany optional fields, make aPOST request as follows:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{  "autoDeleteAutoCreatedReservations":AUTO_DELETE_AUTO_CREATED_RESERVATIONS,  "name": "FUTURE_RESERVATION_NAME",  "specificSkuProperties": {     "instanceProperties": {      "machineType": "MACHINE_TYPE"    },    "totalCount":TOTAL_COUNT  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

Replace the following:

  • PROJECT_ID: the ID of the project in which you want toreserveresources.

  • ZONE: the zone in which to reserve resources.

  • AUTO_DELETE_AUTO_CREATED_RESERVATIONS: if you set thisfield totrue, then Compute Engine automatically deletes theauto-created reservations for this future reservation within two hours fromthe end time of reservation period. If you want to attach your auto-createdreservations to a commitment, then set this field tofalse.

For example, suppose that you want to create a draft future reservation requestnamedfr-01 inzoneus-central1-a with the following properties:

  • A reservation period that starts at midnight on November 10, 2024 UTC, andends at midnight on December 10, 2024 UTC.

  • A total count of 80 VMs.

  • An N2 predefined machine type with 4 vCPUs.
  • The auto-delete option enabled. The auto-created reservations are deleted atthe end of the reservation period.

To createfr-01,make aPOST request as follows:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/futureReservations{  "autoDeleteAutoCreatedReservations": true,  "name": "fr-01",  "specificSkuProperties": {     "instanceProperties": {      "machineType": "n2-standard-4"    },    "totalCount": 80  },  "timeWindow": {    "startTime": "2024-11-10T00:00:00Z",    "endTime": "2024-12-10T00:00:00Z"  }}

Optionally, you can do one or more of the following:

  • To specify a name prefix for the auto-created reservations, include thenamePrefix field.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{  "autoDeleteAutoCreatedReservations":AUTO_DELETE_AUTO_CREATED_RESERVATIONS,  "name": "FUTURE_RESERVATION_NAME","namePrefix": "NAME_PREFIX",  "specificSkuProperties": {     "instanceProperties": {      "machineType": "MACHINE_TYPE"    },    "totalCount":TOTAL_COUNT  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

    ReplaceNAME_PREFIX with the name prefix for eachauto-created reservation. To help you identify the auto-created reservationsfor this future reservation request, Google Cloud recommends tospecify a unique name prefix.

  • To attach GPUs to your reserved N1 VMs, include theguestAcceleratorsfield.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{  "autoDeleteAutoCreatedReservations":AUTO_DELETE_AUTO_CREATED_RESERVATIONS,  "name": "FUTURE_RESERVATION_NAME",  "specificSkuProperties": {    "instanceProperties": {"guestAccelerators": [        {          "acceleratorCount":NUMBER_OF_ACCELERATORS,          "acceleratorType": "ACCELERATOR_TYPE"        }      ],      "machineType": "MACHINE_TYPE"    },    "totalCount":TOTAL_COUNT  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

    Replace the following:

    • NUMBER_OF_ACCELERATORS: the number of GPUs to add perreserved VM.

    • ACCELERATOR_TYPE: asupported GPU model for N1 VMs. To preventerrors, verify that your chosen GPU model is available in the zone whereyou're creating the future reservation request.

  • To attach Local SSD disks to amachine type that doesn't include Local SSD disks by default,include thelocalSsds field in the request body. You can only attach LocalSSD disks of 375 GB.

    For example, to specify two Local SSD disks when creating a draft futurereservation request, make aPOST request as follows:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{  "autoDeleteAutoCreatedReservations":AUTO_DELETE_AUTO_CREATED_RESERVATIONS,  "name": "FUTURE_RESERVATION_NAME",  "specificSkuProperties": {    "instanceProperties": {"localSsds": [        {          "diskSizeGb": "375",          "interface": "INTERFACE_TYPE"        },        {          "diskSizeGb": "375",          "interface": "INTERFACE_TYPE"        }      ],      "machineType": "MACHINE_TYPE"    },    "totalCount":TOTAL_COUNT  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

    ReplaceINTERFACE_TYPE with the type of disk interfacethat you want the Local SSD disks to use and thatyour specified machine type supports.Specify one of the following values:

    • For the NVME disk interface:NVME

    • For the SCSI disk interface:SCSI

  • To have the reserved VMs use a specific minimum CPU platform instead of thezone's default CPU platform, include theminCpuPlatform.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{  "autoDeleteAutoCreatedReservations":AUTO_DELETE_AUTO_CREATED_RESERVATIONS,  "name": "FUTURE_RESERVATION_NAME",  "specificSkuProperties": {    "instanceProperties": {      "machineType": "MACHINE_TYPE","minCpuPlatform": "MINIMUM_CPU_PLATFORM"    },    "totalCount":TOTAL_COUNT  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

    ReplaceMIN_CPU_PLATFORM with a minimum CPU platform. Toverify that a CPU platform is available in the zone where you're reservingresources,view the available CPU platforms by zone.

  • To delete the auto-created reservations after the end time of thereservation period, select one of the following methods:

    • To delete the auto-created reservations after a specific time after theend of your reservation period, set theautoDeleteAutoCreatedReservations totrue and include theautoCreatedReservationsDeleteTime field.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{"autoCreatedReservationsDeleteTime": "DELETE_TIME",  "autoDeleteAutoCreatedReservations": true,  "name": "FUTURE_RESERVATION_NAME",  "specificSkuProperties": {     "instanceProperties": {      "machineType": "MACHINE_TYPE"    },    "totalCount":TOTAL_COUNT  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

      ReplaceDELETE_TIME with a date and time whenCompute Engine deletes the auto-created reservations. The dateand time must be formatted as an RFC 3339 timestamp.

    • To delete the auto-created reservations after a specific duration fromthe start time of the reservation period, set theautoDeleteAutoCreatedReservations totrue and include theautoCreatedReservationsDuration field.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{"autoCreatedReservationsDuration": {    "seconds": "DURATION_BEFORE_DELETE"  },  "autoDeleteAutoCreatedReservations": true,  "name": "FUTURE_RESERVATION_NAME",  "specificSkuProperties": {     "instanceProperties": {      "machineType": "MACHINE_TYPE"    },    "totalCount":TOTAL_COUNT  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

      ReplaceDURATION_BEFORE_DELETE with a duration inseconds. For example, specify604800 for 604,800 seconds (7 days).

After creating a draft future reservation request, you can determine thenumber of VMs that Compute Engine will provision for the request.

Submit a draft request

After a future reservation request is submitted, approved by Google Cloud,and past its lock time, you can delete the future reservation and itsauto-created reservations only after the end of the future reservation'sreservation period. Deleting an existing future reservation is useful if youneed to create another future reservation with the same properties. Thus, beforecreating a future reservation request, make sure of the following:

  • Any existing reservations or future reservations in a project restrict theshare settings of the future reservation requests that you can create. Toensure that you can successfully create a future reservation request, andyour request doesn't cause issues in other projects you share futurereservation requests or reservations with, seeRestrictions.

  • You must commit to pay for the reserved resources thatCompute Engine provisions for the entire reservation period,regardless if the auto-created reservations are consumed or not. For moreinformation, seeBilling.

If you want to modify one or more properties when submitting the draft futurereservation request for review, then seeModify future reservation requestsinstead.

To submit a draft future reservation request to Google Cloud for review,select one of the following options:

Console

  1. In the Google Cloud console, go to theReservations page.

    Go to Reservations

  2. Click theFuture reservations tab.

  3. In theName column, click the name of the future reservation requestwith a procurement status ofDrafting. TheFuture reservationspage with the details of the future reservation request appears.

  4. ClickEdit draft. A page toupdate the draft future reservation request appears.

  5. To submit the draft future reservation request for review, clickCreate. TheReservation page appears.

gcloud

To submit a draft future reservation request for review, use thegcloud compute future-reservations update commandwith the--planning-status flag set toSUBMITTED.

gcloud compute future-reservations updateFUTURE_RESERVATION_NAME \    --planning-status=SUBMITTED \    --zone=ZONE

Replace the following:

  • FUTURE_RESERVATION_NAME: the name of an existingdraft future reservation request.

  • ZONE: the zone where the future reservation requestis located.

REST

To submit a draft future reservation request for review, make aPATCHrequest to thefutureReservations.update method.In the request URL, include theupdateMask query parameter set toplanningStatus.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME?updateMask=planningStatus{  "name": "FUTURE_RESERVATION_NAME",  "planningStatus": "SUBMITTED"}

Replace the following:

  • PROJECT_ID: the ID of the project where the futurereservation request is located.

  • ZONE: the zone where the future reservation requestis located.

  • FUTURE_RESERVATION_NAME: the name of an existingdraft future reservation request.

After you submit a draft future reservation request for review, you can do thefollowing:

Troubleshoot

If you run into errors when creating a future reservation request, see how totroubleshoot future reservation requests.

If you still encounter issues after troubleshooting, then contact youraccount team or thesales team.

What's next

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-02 UTC.