REST Resource: reservations

Resource: Reservation

Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources.

JSON representation
{
  "kind": string,
  "id": string,
  "creationTimestamp": string,
  "selfLink": string,
  "zone": string,
  "description": string,
  "name": string,
  "commitment": string,
  "linkedCommitments": [
    string
  ],
  "specificReservationRequired": boolean,
  "status": enum (Status),
  "shareSettings": {
    object (ShareSettings)
  },
  "satisfiesPzs": boolean,
  "resourcePolicies": {
    string: string,
    ...
  },
  "resourceStatus": {
    object (ResourceStatus)
  },
  "reservationSharingPolicy": {
    object (ReservationSharingPolicy)
  },
  "deploymentType": enum (DeploymentType),
  "advancedDeploymentControl": {
    object (AdvancedDeploymentControl)
  },
  "enableEmergentMaintenance": boolean,
  "schedulingType": enum (SchedulingType),

  // Union field type can be only one of the following:
  "specificReservation": {
    object (SpecificSKUReservation)
  },
  "aggregateReservation": {
    object (AggregateReservation)
  }
  // End of list of possible types for union field type.

  // Union field auto_delete_time can be only one of the following:
  "deleteAtTime": string,
  "deleteAfterDuration": {
    object (Duration)
  }
  // End of list of possible types for union field auto_delete_time.
}
Fields
kind

string

[Output Only] Type of the resource. Always

compute#reservations

for reservations.

id

string (uint64 format)

[Output Only] The unique identifier for the resource. This identifier is defined by the server.

creationTimestamp

string

[Output Only] Creation timestamp in RFC3339 text format.

zone

string

Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment.

description

string

An optional description of this resource. Provide this property when you create the resource.

name

string

The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.

commitment

string

[Output Only] Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment.

linkedCommitments[]

string

[Output Only] Full or partial URL to parent commitments. This field displays for reservations that are tied to multiple commitments.

specificReservationRequired

boolean

Indicates whether the reservation can be consumed by VMs with affinity for "any" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation.

status

enum (Status)

[Output Only] The status of the reservation.

  • CREATING

    : Reservation resources are being allocated.

  • READY

    : Reservation resources have been allocated, and the reservation is ready for use.

  • DELETING

    : Reservation deletion is in progress.

  • UPDATING

    : Reservation update is in progress.

shareSettings

object (ShareSettings)

Specify share-settings to create a shared reservation. This property is optional. For more information about the syntax and options for this field and its subfields, see the guide for creating a shared reservation.

satisfiesPzs

boolean

[Output Only] Reserved for future use.

resourcePolicies

map (key: string, value: string)

Resource policies to be added to this reservation. The key is defined by user, and the value is resource policy url. This is to define placement policy with reservation.

resourceStatus

object (ResourceStatus)

[Output Only] Status information for Reservation resource.

reservationSharingPolicy

object (ReservationSharingPolicy)

Specify the reservation sharing policy. If unspecified, the reservation will not be shared with Trusted Cloud managed services.

deploymentType

enum (DeploymentType)

Specifies the deployment strategy for this reservation.

advancedDeploymentControl

object (AdvancedDeploymentControl)

Advanced control for cluster management, applicable only to DENSE deployment type reservations.

enableEmergentMaintenance

boolean

Indicates whether Compute Engine allows unplanned maintenance for your VMs; for example, to fix hardware errors.

schedulingType

enum (SchedulingType)

The type of maintenance for the reservation.

Union field type.

type can be only one of the following:

specificReservation

object (SpecificSKUReservation)

Reservation for instances with specific machine shapes.

aggregateReservation

object (AggregateReservation)

Reservation for aggregated resources, providing shape flexibility.

Union field auto_delete_time.

auto_delete_time can be only one of the following:

deleteAtTime

string

Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 text format.

deleteAfterDuration

object (Duration)

Duration time relative to reservation creation when Compute Engine will automatically delete this resource.

SpecificSKUReservation

This reservation type allows to pre allocate specific instance configuration.

JSON representation
{
  "instanceProperties": {
    object (ReservedInstanceProperties)
  },
  "count": string,
  "inUseCount": string,
  "assuredCount": string,
  "sourceInstanceTemplate": string
}
Fields
instanceProperties

object (ReservedInstanceProperties)

The instance properties for the reservation.

count

string (int64 format)

Specifies the number of resources that are allocated.

inUseCount

string (int64 format)

[Output Only] Indicates how many instances are in use.

assuredCount

string (int64 format)

[Output Only] Indicates how many instances are actually usable currently.

sourceInstanceTemplate

string

Specifies the instance template to create the reservation. If you use this field, you must exclude the

instanceProperties

field.

This field is optional, and it can be a full or partial URL. For example, the following are all valid URLs to an instance template:

ReservedInstanceProperties

Properties of the SKU instances being reserved. Next ID: 9

JSON representation
{
  "machineType": string,
  "guestAccelerators": [
    {
      object (AcceleratorConfig)
    }
  ],
  "minCpuPlatform": string,
  "localSsds": [
    {
      object (ReservedDisk)
    }
  ],
  "locationHint": string
}
Fields
machineType

string

Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.

guestAccelerators[]

object (AcceleratorConfig)

Specifies accelerator type and count.

minCpuPlatform

string

Minimum cpu platform the reservation.

localSsds[]

object (ReservedDisk)

Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.

locationHint

string

An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API.

ReservedDisk

JSON representation
{
  "diskSizeGb": string,
  "interface": enum (DiskInterface)
}
Fields
diskSizeGb

string (int64 format)

Specifies the size of the disk in base-2 GB.

interface

enum (DiskInterface)

Specifies the disk interface to use for attaching this disk, which is either

SCSI

or

NVME

. The default is

SCSI

. For performance characteristics of SCSI over NVMe, see Local SSD performance.

DiskInterface

Enums
SCSI
NVME

AggregateReservation

This reservation type is specified by total resource amounts (e.g. total count of CPUs) and can account for multiple instance SKUs. In other words, one can create instances of varying shapes against this reservation.

JSON representation
{
  "vmFamily": enum (VMFamily),
  "reservedResources": [
    {
      object (ReservedResourceInfo)
    }
  ],
  "inUseResources": [
    {
      object (ReservedResourceInfo)
    }
  ],
  "workloadType": enum (WorkloadType)
}
Fields
vmFamily

enum (VMFamily)

The VM family that all instances scheduled against this reservation must belong to.

reservedResources[]

object (ReservedResourceInfo)

reservations.list of reserved resources (CPUs, memory, accelerators).

inUseResources[]

object (ReservedResourceInfo)

[Output only] reservations.list of resources currently in use.

workloadType

enum (WorkloadType)

The workload type of the instances that will target this reservation.

VMFamily

reservations.list of compute machine families and series for use with aggregate reservations. LINT.IfChange

Enums
VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P
VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L
VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP
VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P
VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E
VM_FAMILY_CLOUD_TPU_DEVICE_CT3
VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P

ReservedResourceInfo

JSON representation
{

  // Union field reserved_resource can be only one of the following:
  "accelerator": {
    object (Accelerator)
  }
  // End of list of possible types for union field reserved_resource.
}
Fields

Union field reserved_resource.

reserved_resource can be only one of the following:

accelerator

object (Accelerator)

Properties of accelerator resources in this reservation.

Accelerator

JSON representation
{
  "acceleratorCount": integer,
  "acceleratorType": string
}
Fields
acceleratorCount

integer

Number of accelerators of specified type.

acceleratorType

string

Full or partial URL to accelerator type. e.g. "projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l"

WorkloadType

Enums
UNSPECIFIED
SERVING Reserved resources will be optimized for SERVING workloads, such as ML inference.
BATCH Reserved resources will be optimized for BATCH workloads, such as ML training.

Status

Enums
INVALID
CREATING Reservation resources are being allocated.
READY Reservation resources have been allocated, and the reservation is ready for use.
DELETING Reservation deletion is in progress.
UPDATING Reservation update is in progress.

ResourceStatus

[Output Only] Contains output only fields.

JSON representation
{
  "specificSkuAllocation": {
    object (SpecificSKUAllocation)
  },
  "reservationMaintenance": {
    object (GroupMaintenanceInfo)
  },
  "reservationBlockCount": integer,
  "healthInfo": {
    object (HealthInfo)
  }
}
Fields
specificSkuAllocation

object (SpecificSKUAllocation)

Allocation Properties of this reservation.

reservationMaintenance

object (GroupMaintenanceInfo)

Maintenance information for this reservation

reservationBlockCount

integer

The number of reservation blocks associated with this reservation.

healthInfo

object (HealthInfo)

[Output only] Health information for the reservation.

SpecificSKUAllocation

Contains Properties set for the reservation.

JSON representation
{
  "sourceInstanceTemplateId": string,
  "utilizations": {
    string: string,
    ...
  }
}
Fields
sourceInstanceTemplateId

string

ID of the instance template used to populate reservation properties.

utilizations

map (key: string, value: string (int64 format))

Per service utilization breakdown. The Key is the Trusted Cloud managed service name.

HealthInfo

Health information for the reservation.

JSON representation
{
  "healthStatus": enum (HealthStatus),
  "healthyBlockCount": integer,
  "degradedBlockCount": integer
}
Fields
healthStatus

enum (HealthStatus)

The health status of the reservation.

healthyBlockCount

integer

The number of reservation blocks that are healthy.

degradedBlockCount

integer

The number of reservation blocks that are degraded.

HealthStatus

Enums
HEALTH_STATUS_UNSPECIFIED The health status of the reservation is unspecified.
HEALTHY The reservation is healthy.
DEGRADED The reservation is degraded.

ReservationSharingPolicy

JSON representation
{
  "serviceShareType": enum (ServiceShareType)
}
Fields
serviceShareType

enum (ServiceShareType)

Sharing config for all Trusted Cloud services.

ServiceShareType

Enums
SERVICE_SHARE_TYPE_UNSPECIFIED
ALLOW_ALL Allow all Trusted Cloud managed services to share reservations.
DISALLOW_ALL [Default] Disallow sharing with all Trusted Cloud services.

DeploymentType

Indicates if the reservation allocation strategy is static or dynamic. Inherited from the future reservation which delivered this reservation.

Enums
DEPLOYMENT_TYPE_UNSPECIFIED
DENSE The reserved capacity is made up of densely deployed reservation blocks.

AdvancedDeploymentControl

Advance control for cluster management, applicable only to DENSE deployment type reservations.

JSON representation
{
  "reservationOperationalMode": enum (ReservationOperationalMode)
}
Fields
reservationOperationalMode

enum (ReservationOperationalMode)

Indicates chosen reservation operational mode for the reservation.

ReservationOperationalMode

Defines the reservation operational mode for the reservation. This determines how Trusted Cloud manages the failure of machines and provides capacity.

Enums
RESERVATION_OPERATIONAL_MODE_UNSPECIFIED
HIGHLY_AVAILABLE_CAPACITY Trusted Cloud manages the failure of machines to provide high availability.
ALL_CAPACITY Trusted Cloud does not manage the failure of machines, but provides additional capacity, which is not guaranteed to be available.

Methods

aggregatedList

The method compute.v1.AllocationsService.AggregatedList is not available in Trusted Cloud by S3NS.

delete

The method compute.v1.AllocationsService.Delete is not available in Trusted Cloud by S3NS.

get

The method compute.v1.AllocationsService.Get is not available in Trusted Cloud by S3NS.

getIamPolicy

The method compute.v1.AllocationsService.GetPolicy is not available in Trusted Cloud by S3NS.

insert

The method compute.v1.AllocationsService.Insert is not available in Trusted Cloud by S3NS.

list

The method compute.v1.AllocationsService.List is not available in Trusted Cloud by S3NS.

performMaintenance

The method compute.v1.AllocationsService.PerformMaintenance is not available in Trusted Cloud by S3NS.

resize

The method compute.v1.AllocationsService.Resize is not available in Trusted Cloud by S3NS.

setIamPolicy

The method compute.v1.AllocationsService.SetPolicy is not available in Trusted Cloud by S3NS.

testIamPermissions

The method compute.v1.AllocationsService.TestPermissions is not available in Trusted Cloud by S3NS.

update

The method compute.v1.AllocationsService.Update is not available in Trusted Cloud by S3NS.