Create future reservation requests for a single project Stay organized with collections Save and categorize content based on your preferences.
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
- You must verify that you have sufficient quota for the resources that youwant to reserve. If your quota is insufficient, then Google Cloud islikely to decline your future reservation request. Or, if the request isapproved but you lack quota at the start time of your request,Compute Engine only delivers part, or none, of the reserved resources.For more information about the different types of quota inCompute Engine, seeAllocation quotas.
- If you haven't already, set upauthentication. Authentication verifies your identity for access to Google Cloud services and APIs. To run code or samples from a local development environment, you can authenticate to Compute Engine by selecting one of the following options:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
Install the Google Cloud CLI. After installation,initialize the Google Cloud CLI by running the following command:
gcloudinit
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Note: If you installed the gcloud CLI previously, make sure you have the latest version by runninggcloud components update.- Set a default region and zone.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
Install the Google Cloud CLI. After installation,initialize the Google Cloud CLI by running the following command:
gcloudinit
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Note: If you installed the gcloud CLI previously, make sure you have the latest version by runninggcloud components update.For more information, seeAuthenticate for using REST in the Google Cloud authentication documentation.
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.createon the project - To let Compute Engine auto-create reservations:
compute.reservations.createon the project - To specify an instance template:
compute.instanceTemplates.useReadOnlyon 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.
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.
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 the
us-central1-azone, 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
In the Google Cloud console, go to theReservations page.
Click theFuture reservations tab.
ClickCreate future reservation.
TheCreate a future reservation page opens.
ForName, enter a name for your future reservation request.
ForPrefix, enter a name prefix. The name of each auto-createdreservation from this future reservation request starts with this prefix.
ForRegion andZone, select the region and zone in which to reserveresources.
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.
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.
In theShare type section, selectLocal if it's not alreadyselected.
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.In theMachine configuration section, do the following:
SelectUse instance template.
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.
In theAuto-generated reservations auto-delete section, do one ofthe following:
To enable Compute Engine to automatically delete theauto-created reservations for your future reservation request, do thefollowing:
Caution: If the auto-delete option is enabled, then all the auto-createdreservations are deleted at the specified deletion time regardless ifthey're fully consumed or not.Click theEnable auto-delete toggle to the on position if itisn't already set to it.
Optional: ForAuto-delete time, enter a date and time when todelete the auto-created reservations. The date and time must beafter the end time of the reservation period. If you leave thisfield empty, then the auto-created reservations are deleted withintwo hours after the reservation period's end time.
Otherwise, click theEnable auto-delete toggle to the off position.
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=ZONEReplace 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.
START_TIME: the start time of the reservation period asanRFC 3339 timestamp, which must beformatted as follows:YYYY-MM-DDTHH:MM:SSOFFSETReplace the following:
YYYY-MM-DD: a data formatted as a 4-digit year,2-digit month, and a 2-digit day of the month, separated by hyphens(-).HH:MM:SS: a time formatted as a 2-digit hour using a24-hour time, 2-digit minutes, and 2-digit seconds, separated by colons(:).OFFSET: the time zone formatted as an offset ofCoordinated Universal Time (UTC).For example, to use the Pacific Standard Time (PST), specify-08:00.Alternatively, to use no offset, specifyZ.
The start time can't be later than one year from the date and time at whichyou submit a future reservation request for review. To have sufficient timeto optionally cancel, delete, or modify a future reservation request afterit's approved and before it enters its lock time, specify arecommended value for the start time.
END_TIME: the end time of the reservation periodformatted as an RFC 3339 timestamp. To increase the likelihood thatGoogle Cloud approves your request after submission, specify aminimum reservation period.To specify a duration instead of an end time, replace the--end-timeflagwith the--duration=END_DURATIONflag. ReplaceEND_DURATIONwith a duration in seconds. For example,specify1209600for 1,209,600 seconds (14 days).To increase the likelihood that Google Cloud approves a futurereservation request after submitting it for review, specify arecommended minimum duration.
Important: To prevent errors when creating the future reservation request,verify that the reservation period doesn't overlap with the reservationperiod of another existing future reservation request with matching VMproperties and zone, and that was created in or is shared with your currentproject. To get an overview of the reservation periods of your futurereservation requests,view a list of future reservation requests.TOTAL_COUNT: thetotal countof VMs that you want reserved.ZONE: the zone in which to reserve resources.
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 region
us-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-aOptionally, 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-timeflag.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=ZONEReplaceAUTO_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-durationflag.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=ZONEReplaceDURATION_BEFORE_DELETE with a duration in days,hours, minutes, or seconds. For example, specify
30mfor 30 minutes,or1d2h3m4sfor 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-reservationsflag with the--no-auto-delete-auto-created-reservationsflag.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-prefixflag.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=ZONEReplace
NAME_PREFIXwith 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.
TOTAL_COUNT: thetotal countof VMs that you want reserved.START_TIME: the start time of the reservation period asanRFC 3339 timestamp, which must beformatted as follows:YYYY-MM-DDTHH:MM:SSOFFSETReplace the following:
YYYY-MM-DD: a data formatted as a 4-digit year,2-digit month, and a 2-digit day of the month, separated by hyphens(-).HH:MM:SS: a time formatted as a 2-digit hour using a24-hour time, 2-digit minutes, and 2-digit seconds, separated by colons(:).OFFSET: the time zone formatted as an offset ofCoordinated Universal Time (UTC).For example, to use the Pacific Standard Time (PST), specify-08:00.Alternatively, to use no offset, specifyZ.
The start time can't be later than one year from the date and time at whichyou submit a future reservation request for review. To have sufficient timeto optionally cancel, delete, or modify a future reservation request afterit's approved and before it enters its lock time, specify arecommended value for the start time.
END_TIME: the end time of the reservation periodformatted as an RFC 3339 timestamp. To increase the likelihood thatGoogle Cloud approves your request after submission, specify aminimum reservation period.To specify a duration instead of an end time, you can replace theendTimefield with thedurationfield:"duration": { "seconds":END_DURATION}Replace
Important: To prevent errors when creating the future reservation request,verify that the reservation period doesn't overlap with the reservationperiod of another existing future reservation request with matching VMproperties and zone, and that was created in or is shared with your currentproject. To get an overview of the reservation periods of your futurereservation requests,view a list of future reservation requests.END_DURATIONwith a duration in seconds. Forexample, specify1209600for 1,209,600 seconds (14 days).
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 region
us-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 the
namePrefixfield.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" }}Replace
NAME_PREFIXwith 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 the
autoDeleteAutoCreatedReservationstotrueand include theautoCreatedReservationsDeleteTimefield.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" }}Replace
DELETE_TIMEwith 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 the
autoDeleteAutoCreatedReservationstotrueand include theautoCreatedReservationsDurationfield.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" }}Replace
DURATION_BEFORE_DELETEwith a duration inseconds. For example, specify604800for 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:
Create and use an instance template as follows:
Create an instance template based on the reference VMwithout overriding the reference VM's properties.
Create VMs using the newly-created template by doing one or both of thefollowing:
Create a VM based on the reference VMwhile ensuring that the properties of the new VM and the reference VMexactly match.
To create a single-project future reservation request that uses the propertiesof an existing VM, do the following:
In the Google Cloud console, go to theReservations page.
Click theFuture reservations tab.
ClickCreate future reservation.
TheCreate a future reservation page opens.
ForName, enter a name for your future reservation request.
ForPrefix, enter a name prefix. The name of each auto-createdreservation from this future reservation request starts with this prefix.
ForRegion andZone, select the region and zone in which to reserveresources.
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.
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.
In theShare type section, selectLocal if it's not alreadyselected.
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.In theMachine configuration section, do the following:
SelectUse existing VM.
ForExisting VM, select the VM which properties you want to useto create the reservation.
In theAuto-generated reservations auto-delete section, do one ofthe following:
To enable Compute Engine to automatically delete theauto-created reservations for your future reservation request, do thefollowing:
Caution: If the auto-delete option is enabled, then all the auto-createdreservations are deleted at the specified deletion time regardless ifthey're fully consumed or not.Click theEnable auto-delete toggle to the on position if itisn't already set to it.
Optional: ForAuto-delete time, enter a date and time when todelete the auto-created reservations. The date and time must beafter the end time of the reservation period. If you leave thisfield empty, then the auto-created reservations are deleted withintwo hours after the reservation period's end time.
Otherwise, click theEnable auto-delete toggle to the off position.
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
In the Google Cloud console, go to theReservations page.
Click theFuture reservations tab.
ClickCreate future reservation.
TheCreate a future reservation page opens.
ForName, enter a name for your future reservation request.
ForPrefix, enter a name prefix. The name of each auto-createdreservation from this future reservation request starts with this prefix.
ForRegion andZone, select the region and zone in which to reserveresources.
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.
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.
In theShare type section, selectLocal if it's not alreadyselected.
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.In theMachine configuration section, do the following:
SelectSpecify machine type if it isn't already selected.
Specify the machine type to use for the reserved VMs.
In theAuto-generated reservations auto-delete section, do one ofthe following:
To enable Compute Engine to automatically delete theauto-created reservations for your future reservation request, do thefollowing:
Caution: If the auto-delete option is enabled, then all the auto-createdreservations are deleted at the specified deletion time regardless ifthey're fully consumed or not.Click theEnable auto-delete toggle to the on position if itisn't already set to it.
Optional: ForAuto-delete time, enter a date and time when todelete the auto-created reservations. The date and time must beafter the end time of the reservation period. If you leave thisfield empty, then the auto-created reservations are deleted withintwo hours after the reservation period's end time.
Otherwise, click theEnable auto-delete toggle to the off position.
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=ZONEReplace the following:
FUTURE_RESERVATION_NAME: the name of the futurereservation request.
MACHINE_TYPE: the machine type to use for each reservedVM.
START_TIME: the start time of the reservation period asanRFC 3339 timestamp, which must beformatted as follows:YYYY-MM-DDTHH:MM:SSOFFSETReplace the following:
YYYY-MM-DD: a data formatted as a 4-digit year,2-digit month, and a 2-digit day of the month, separated by hyphens(-).HH:MM:SS: a time formatted as a 2-digit hour using a24-hour time, 2-digit minutes, and 2-digit seconds, separated by colons(:).OFFSET: the time zone formatted as an offset ofCoordinated Universal Time (UTC).For example, to use the Pacific Standard Time (PST), specify-08:00.Alternatively, to use no offset, specifyZ.
The start time can't be later than one year from the date and time at whichyou submit a future reservation request for review. To have sufficient timeto optionally cancel, delete, or modify a future reservation request afterit's approved and before it enters its lock time, specify arecommended value for the start time.
END_TIME: the end time of the reservation periodformatted as an RFC 3339 timestamp. To increase the likelihood thatGoogle Cloud approves your request after submission, specify aminimum reservation period.To specify a duration instead of an end time, replace the--end-timeflagwith the--duration=END_DURATIONflag. ReplaceEND_DURATIONwith a duration in seconds. For example,specify1209600for 1,209,600 seconds (14 days).To increase the likelihood that Google Cloud approves a futurereservation request after submitting it for review, specify arecommended minimum duration.
Important: To prevent errors when creating the future reservation request,verify that the reservation period doesn't overlap with the reservationperiod of another existing future reservation request with matching VMproperties and zone, and that was created in or is shared with your currentproject. To get an overview of the reservation periods of your futurereservation requests,view a list of future reservation requests.TOTAL_COUNT: thetotal countof VMs that you want reserved.ZONE: the zone in which to reserve resources.
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-aOptionally, you can do one or more of the following:
To attach GPUs to your reserved N1 VMs, include the
--acceleratorflag.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=ZONEReplace 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-timeflag.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=ZONEReplaceAUTO_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-durationflag.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=ZONEReplaceDURATION_BEFORE_DELETE with a duration in days,hours, minutes, or seconds. For example, specify
30mfor 30 minutes,or1d2h3m4sfor 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-reservationsflag with the--no-auto-delete-auto-created-reservationsflag.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-ssdflag. 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=ZONEReplace 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:
nvmeFor 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-platformflag.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=ZONEReplaceMIN_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-prefixflag.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=ZONEReplace
NAME_PREFIXwith 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.
TOTAL_COUNT: thetotal countof VMs that you want reserved.START_TIME: the start time of the reservation period asanRFC 3339 timestamp, which must beformatted as follows:YYYY-MM-DDTHH:MM:SSOFFSETReplace the following:
YYYY-MM-DD: a data formatted as a 4-digit year,2-digit month, and a 2-digit day of the month, separated by hyphens(-).HH:MM:SS: a time formatted as a 2-digit hour using a24-hour time, 2-digit minutes, and 2-digit seconds, separated by colons(:).OFFSET: the time zone formatted as an offset ofCoordinated Universal Time (UTC).For example, to use the Pacific Standard Time (PST), specify-08:00.Alternatively, to use no offset, specifyZ.
The start time can't be later than one year from the date and time at whichyou submit a future reservation request for review. To have sufficient timeto optionally cancel, delete, or modify a future reservation request afterit's approved and before it enters its lock time, specify arecommended value for the start time.
END_TIME: the end time of the reservation periodformatted as an RFC 3339 timestamp. To increase the likelihood thatGoogle Cloud approves your request after submission, specify aminimum reservation period.To specify a duration instead of an end time, you can replace theendTimefield with thedurationfield:"duration": { "seconds":END_DURATION}Replace
Important: To prevent errors when creating the future reservation request,verify that the reservation period doesn't overlap with the reservationperiod of another existing future reservation request with matching VMproperties and zone, and that was created in or is shared with your currentproject. To get an overview of the reservation periods of your futurereservation requests,view a list of future reservation requests.END_DURATIONwith a duration in seconds. Forexample, specify1209600for 1,209,600 seconds (14 days).
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 the
namePrefixfield.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" }}Replace
NAME_PREFIXwith 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 the
guestAcceleratorsfield.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 the
localSsdsfield 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 a
POSTrequest 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" }}Replace
INTERFACE_TYPEwith 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:
NVMEFor 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
minCpuPlatform.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 the
autoDeleteAutoCreatedReservationstotrueand include theautoCreatedReservationsDeleteTimefield.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" }}Replace
DELETE_TIMEwith 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 the
autoDeleteAutoCreatedReservationstotrueand include theautoCreatedReservationsDurationfield.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" }}Replace
DURATION_BEFORE_DELETEwith a duration inseconds. For example, specify604800for 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
In the Google Cloud console, go to theReservations page.
Click theFuture reservations tab.
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.
ClickEdit draft. A page toupdate the draft future reservation request appears.
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=ZONEReplace 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:
To monitor the request's procurement status and see whetherGoogle Cloud has approved or declined your request,view the details of your future reservation request.
To stop Google Cloud from reviewing your request and preventCompute Engine from provisioning the requested capacity,cancel or delete your future reservation request.
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
Learn how toview future reservation requests.
Learn how tomodify future reservation requests.
Learn how tocancel or delete future reservation requests.
After you reach the start time of your reservation period, learn how toconsume the auto-created reservations.
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.