MCP Server

mcp

com.googleapis.compute/mcp
Cloud & Infrastructure Public & reachable MCP 2026-07-28

What this MCP does

Manages Google Compute Engine resources, including VM instances, disks, images, instance groups, templates, reservations, commitments, and operations.

create_instance
Create a new Google Compute Engine virtual machine (VM) instance. Requires project, zone, and instance name as input. If machine_type is not provided, it defaults to `e2-medium`. If image_project and image_family are not provided, it defaults to `debian-12` image from `debian-cloud` project. guest_accelerator and maintenance_policy can be optionally provided. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.
Destructive
Input schema
{'type': 'object', '$defs': {'AcceleratorConfig': {'type': 'object', 'properties': {'acceleratorType': {'type': 'string', 'description': 'Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine </compute/docs/gpus/#introduction> for a full list of accelerator types.'}, 'acceleratorCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of the guest accelerator cards exposed to this instance.'}}, 'description': 'A specification of the type and number of accelerator cards attached to the instance.'}}, 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The instance name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the instance.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}, 'imageFamily': {'type': 'string', 'description': 'Optional. The image family of the instance.'}, 'machineType': {'type': 'string', 'description': 'Optional. The machine type of the instance.'}, 'imageProject': {'type': 'string', 'description': 'Optional. The image project of the instance.'}, 'guestAccelerators': {'type': 'array', 'items': {'$ref': '#/$defs/AcceleratorConfig'}, 'description': "Optional. The list of attached accelerators. Each entry specifies the accelerator type (short name or full/partial URL, e.g., 'nvidia-tesla-p4') and the count."}, 'maintenancePolicy': {'enum': ['MIGRATE', 'TERMINATE'], 'type': 'string', 'description': 'Optional. The maintenance policy option for the instance.', 'x-google-enum-descriptions': ['*[Default]* Allows Compute Engine to automatically migrate instances out of the way of maintenance events.', 'Tells Compute Engine to terminate and (optionally) restart the instance away from the maintenance activity. If you would like your instance to be restarted, set the automaticRestart flag to true. Your instance may be restarted more than once, and it may be restarted outside the window of maintenance events.']}}, 'description': 'Request message for creating an instance.'}
Output schema
{'type': 'object', 'properties': {'operationName': {'type': 'string', 'description': 'The operation name of the instance creation.'}}, 'description': 'Response message for creating an instance.'}
delete_instance
Delete a Google Compute Engine virtual machine (VM) instance. Requires project, zone, and instance name as input. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.
Destructive
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The instance name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the instance.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for deleting an instance.'}
Output schema
{'type': 'object', 'properties': {'operationName': {'type': 'string', 'description': 'The operation name of the instance deletion.'}}, 'description': 'Response message for deleting an instance.'}
get_commitment_basic_info
Get basic information about a Compute Engine Commitment, including its name, ID, status, plan, type, resources, and creation, start and end timestamps. Requires project, region, and commitment name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'region', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. Name of the commitment to return.', 'x-google-identifier': True}, 'region': {'type': 'string', 'description': 'Required. The region of the commitment.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for getting a region commitment.'}
Output schema
{'type': 'object', '$defs': {'ResourceCommitment': {'type': 'object', 'properties': {'type': {'enum': ['ACCELERATOR', 'LOCAL_SSD', 'MEMORY', 'UNSPECIFIED', 'VCPU'], 'type': 'string', 'description': 'The type of hardware resource that you want to specify. You can specify any of the following values: - VCPU - MEMORY - LOCAL_SSD - ACCELERATOR Specify as a separate entry in the list for each individual resource type.', 'x-google-enum-descriptions': ['', '', '', '', '']}, 'amount': {'type': 'string', 'format': 'int64', 'description': 'The quantity of the hardware resource that you want to commit to purchasing (in a type-dependent unit). - For vCPUs, you must specify an integer value. - For memory, you specify the amount of MB that you want. The value you specify must be a multiple of 256 MB, with up to 6.5 GB of memory per every vCPU. - For GPUs, you must specify an integer value. - For Local SSD disks, you must specify the amount in GB. The size of a single Local SSD disk is 375 GB. '}, 'acceleratorType': {'type': 'string', 'description': 'Name of the accelerator type or GPU resource. Specify this field only when the type of hardware resource is ACCELERATOR.'}}, 'description': 'Commitment for a particular hardware resource (a commitment is composed of one or more of these).'}}, 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the commitment.'}, 'name': {'type': 'string', 'description': 'Name of the commitment.'}, 'plan': {'enum': ['INVALID', 'SIXTY_MONTH', 'THIRTY_SIX_MONTH', 'TWELVE_MONTH', 'TWENTY_FOUR_MONTH'], 'type': 'string', 'description': 'The plan of the commitment.', 'x-google-enum-descriptions': ['', '', '', '', '']}, 'type': {'enum': ['ACCELERATOR_OPTIMIZED', 'ACCELERATOR_OPTIMIZED_A3', 'ACCELERATOR_OPTIMIZED_A3_MEGA', 'ACCELERATOR_OPTIMIZED_A3_ULTRA', 'ACCELERATOR_OPTIMIZED_A4', 'ACCELERATOR_OPTIMIZED_A4X', 'ACCELERATOR_OPTIMIZED_A4X_MAX', 'ACCELERATOR_OPTIMIZED_A4X_METAL', 'ACCELERATOR_OPTIMIZED_A5X', 'CLOUD_TPU_LITE_DEVICE_CT4L', 'CLOUD_TPU_LITE_DEVICE_CT5L', 'CLOUD_TPU_LITE_POD_SLICE_CT5LP', 'CLOUD_TPU_POD_SLICE_CT4P', 'CLOUD_TPU_SLICE_CT5P', 'CLOUD_TPU_SLICE_CT6E', 'CLOUD_TPU_SLICE_CT6E_BATCH_OPTIMIZED', 'CLOUD_TPU_SLICE_TPU7', 'CLOUD_TPU_SLICE_TPU7X', 'CLOUD_TPU_SLICE_TPU7X_BATCH_OPTIMIZED', 'CLOUD_TPU_SLICE_TPU7_BATCH_OPTIMIZED', 'COMPUTE_OPTIMIZED', 'COMPUTE_OPTIMIZED_C2D', 'COMPUTE_OPTIMIZED_C3', 'COMPUTE_OPTIMIZED_C3A', 'COMPUTE_OPTIMIZED_C3D', 'COMPUTE_OPTIMIZED_H3', 'COMPUTE_OPTIMIZED_H4', 'COMPUTE_OPTIMIZED_H4D', 'COMPUTE_OPTIMIZED_H4D_3TB', 'GENERAL_PURPOSE', 'GENERAL_PURPOSE_C4', 'GENERAL_PURPOSE_C4A', 'GENERAL_PURPOSE_C4D', 'GENERAL_PURPOSE_E2', 'GENERAL_PURPOSE_E4A', 'GENERAL_PURPOSE_E5A', 'GENERAL_PURPOSE_N2', 'GENERAL_PURPOSE_N2D', 'GENERAL_PURPOSE_N3', 'GENERAL_PURPOSE_N4', 'GENERAL_PURPOSE_N4A', 'GENERAL_PURPOSE_N4D', 'GENERAL_PURPOSE_N5A', 'GENERAL_PURPOSE_N5D', 'GENERAL_PURPOSE_N5I', 'GENERAL_PURPOSE_T2A', 'GENERAL_PURPOSE_T2D', 'GRAPHICS_OPTIMIZED', 'GRAPHICS_OPTIMIZED_G4', 'GRAPHICS_OPTIMIZED_G4D', 'GRAPHICS_OPTIMIZED_G4_VGPU', 'MEMORY_OPTIMIZED', 'MEMORY_OPTIMIZED_M3', 'MEMORY_OPTIMIZED_M4', 'MEMORY_OPTIMIZED_M4N', 'MEMORY_OPTIMIZED_M4N_6TB', 'MEMORY_OPTIMIZED_M4_6TB', 'MEMORY_OPTIMIZED_REGIONAL_EXTENSION', 'MEMORY_OPTIMIZED_X4', 'MEMORY_OPTIMIZED_X4_1440_24T', 'MEMORY_OPTIMIZED_X4_16TB', 'MEMORY_OPTIMIZED_X4_1920_32T', 'MEMORY_OPTIMIZED_X4_24TB', 'MEMORY_OPTIMIZED_X4_32TB', 'MEMORY_OPTIMIZED_X4_480_6T', 'MEMORY_OPTIMIZED_X4_480_8T', 'MEMORY_OPTIMIZED_X4_960_12T', 'MEMORY_OPTIMIZED_X4_960_16T', 'MEMORY_OPTIMIZED_X5_1376_24T', 'MEMORY_OPTIMIZED_X5_1376_32T', 'MEMORY_OPTIMIZED_X5_2064_48T', 'MEMORY_OPTIMIZED_X5_2752_64T', 'MEMORY_OPTIMIZED_X5_688_12T', 'MEMORY_OPTIMIZED_X5_688_16T', 'NETWORK_OPTIMIZED_C4N', 'NETWORK_OPTIMIZED_U4C', 'NETWORK_OPTIMIZED_U4P', 'NETWORK_OPTIMIZED_U4S', 'STORAGE_OPTIMIZED_Z3', 'STORAGE_OPTIMIZED_Z4D', 'STORAGE_OPTIMIZED_Z4D4T', 'STORAGE_OPTIMIZED_Z4DH', 'STORAGE_OPTIMIZED_Z4DS', 'STORAGE_OPTIMIZED_Z4M', 'TYPE_UNSPECIFIED'], 'type': 'string', 'description': 'The type of the commitment.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, True, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'CUD bucket for COMPUTE_OPTIMIZED_H4D_3TB machines.', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'G4D is deprecated, use G4 instead.', '', '', '', '', '', '', '', '', '', 'CUD bucket for X4 machine with 1440 vCPUs and 24TB of memory.', '', 'CUD bucket for X4 machine with 1920 vCPUs and 32TB of memory.', '', '', 'CUD bucket for X4 machine with 480 vCPUs and 6TB of memory.', 'CUD bucket for X4 machine with 480 vCPUs and 8TB of memory.', 'CUD bucket for X4 machine with 960 vCPUs and 12TB of memory.', 'CUD bucket for X4 machine with 960 vCPUs and 16TB of memory.', 'CUD bucket for X5 machine with 1376 vCPUs and 24TB of memory.', 'CUD bucket for X5 machine with 1376 vCPUs and 32TB of memory.', 'CUD bucket for X5 machine with 2064 vCPUs and 48TB of memory.', 'CUD bucket for X5 machine with 2752 vCPUs and 64TB of memory.', 'CUD bucket for X5 machine with 688 vCPUs and 12TB of memory.', 'CUD bucket for X5 machine with 688 vCPUs and 16TB of memory.', 'CUD bucket for C4N (dual Diorite) machines.', 'CUD bucket for NETWORK_OPTIMIZED_U4C machines.', 'CUD bucket for NETWORK_OPTIMIZED_U4P machines.', 'CUD bucket for NETWORK_OPTIMIZED_U4S machines.', '', 'CUD bucket for Z4D machines.', 'CUD bucket for Z4D-4T machines.', 'CUD bucket for Z4DH machines.', 'CUD bucket for Z4DS machines.', 'CUD bucket for Z4M (bare metal) machines.', 'Note for internal users: When adding a new enum Type for v1, make sure to also add it in the comment for the `optional Type type` definition. This ensures that the public documentation displays the new enum Type.']}, 'status': {'enum': ['ACTIVE', 'CANCELED_EARLY_TERMINATION', 'CANCELED_MERGED', 'CANCELING', 'CANCELLED', 'CREATING', 'EXPIRED', 'NOT_YET_ACTIVE'], 'type': 'string', 'description': 'The status of the commitment.', 'x-google-enum-descriptions': ['', '', '', '', 'Deprecate CANCELED status. Will use separate status to differentiate cancel by mergeCud or manual cancellation.', '', '', '']}, 'endTime': {'type': 'string', 'format': 'date-time', 'description': 'End timestamp of the commitment.'}, 'resources': {'type': 'array', 'items': {'$ref': '#/$defs/ResourceCommitment'}, 'description': 'A list of all the hardware resources of the commitment.'}, 'startTime': {'type': 'string', 'format': 'date-time', 'description': 'Start timestamp of the commitment.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the commitment.'}}, 'description': 'Basic information about a commitment.'}
get_disk_basic_info
Get basic information about a Compute Engine disk, including its name, ID, description, creation timestamp, size, type, status, last attach timestamp, and last detach timestamp. Requires project, zone, and disk name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The disk name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the disk.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for getting disk basic info.'}
Output schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the disk.'}, 'name': {'type': 'string', 'description': 'Name of the disk.'}, 'type': {'type': 'string', 'description': 'URL of the disk type resource.'}, 'sizeGb': {'type': 'string', 'format': 'int64', 'description': 'Size of the disk in GB.'}, 'status': {'enum': ['CREATING', 'DELETING', 'FAILED', 'READY', 'RESTORING', 'UNAVAILABLE'], 'type': 'string', 'description': 'The status of the disk.', 'x-google-enum-descriptions': ['Disk is provisioning', 'Disk is deleting.', 'Disk creation failed.', 'Disk is ready for use.', 'Source data is being copied into the disk.', 'Disk is currently unavailable and cannot be accessed, attached or detached.']}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the disk.'}, 'description': {'type': 'string', 'description': 'Description of the disk.'}, 'lastAttachTimestamp': {'type': 'string', 'format': 'date-time', 'description': 'Last attach timestamp of the disk.'}, 'lastDetachTimestamp': {'type': 'string', 'format': 'date-time', 'description': 'Last detach timestamp of the disk.'}}, 'description': 'Basic information about a disk.'}
get_disk_performance_config
Get performance configuration of a Compute Engine disk, including its type, size, provisioned IOPS, provisioned throughput, physical block size, storage pool and access mode. Requires project, zone, and disk name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The disk name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the disk.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for getting disk performance configuration.'}
Output schema
{'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'URL of the disk type resource.'}, 'sizeGb': {'type': 'string', 'format': 'int64', 'description': 'Size of the disk in GB.'}, 'accessMode': {'enum': ['READ_ONLY_MANY', 'READ_WRITE_MANY', 'READ_WRITE_SINGLE', 'READ_WRITE_SINGLE_DIRECT'], 'type': 'string', 'description': 'The access mode of the disk.', 'x-google-enum-descriptions': ['The AccessMode means the disk can be attached to multiple instances in RO mode.', 'The AccessMode means the disk can be attached to multiple instances in RW mode.', 'The default AccessMode, means the disk can be attached to single instance in RW mode.', 'The AccessMode means the disk can be attached directly to a container, bypassing traditional Control Plane disk attachment flows.']}, 'storagePool': {'type': 'string', 'description': 'The storage pool of the disk.'}, 'provisionedIops': {'type': 'string', 'format': 'int64', 'description': 'Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle.'}, 'provisionedThroughput': {'type': 'string', 'format': 'int64', 'description': 'Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.'}, 'physicalBlockSizeBytes': {'type': 'string', 'format': 'int64', 'description': 'Physical block size of the persistent disk, in bytes.'}}, 'description': 'Performance configuration of a disk.'}
get_instance_basic_info
Get basic information about a Compute Engine VM instance, including its name, ID, status, machine type, creation timestamp, and attached guest accelerators. Requires project, zone, and instance name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The instance name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the instance.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for getting instance basic info.'}
Output schema
{'type': 'object', '$defs': {'AcceleratorConfig': {'type': 'object', 'properties': {'acceleratorType': {'type': 'string', 'description': 'Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine </compute/docs/gpus/#introduction> for a full list of accelerator types.'}, 'acceleratorCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of the guest accelerator cards exposed to this instance.'}}, 'description': 'A specification of the type and number of accelerator cards attached to the instance.'}}, 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the instance.'}, 'name': {'type': 'string', 'description': 'Name of the instance.'}, 'status': {'enum': ['DEPROVISIONING', 'PENDING', 'PENDING_STOP', 'PROVISIONING', 'REPAIRING', 'RUNNING', 'STAGING', 'STOPPED', 'STOPPING', 'SUSPENDED', 'SUSPENDING', 'TERMINATED'], 'type': 'string', 'description': 'The status of the instance.', 'x-google-enum-descriptions': ['The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.', 'For Flex Start provisioning instance is waiting for available capacity from Dynamic Workload Scheduler (DWS).', 'The instance is gracefully shutting down.', 'Resources are being allocated for the instance.', 'The instance is in repair.', 'The instance is running.', 'All required resources have been allocated and the instance is being started.', 'The instance has stopped successfully.', 'The instance is currently stopping (either being deleted or killed).', 'The instance has suspended.', 'The instance is suspending.', 'The instance has stopped (either by explicit action or underlying failure).']}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the instance.'}, 'machineType': {'type': 'string', 'description': 'The machine type of the instance.'}, 'guestAccelerators': {'type': 'array', 'items': {'$ref': '#/$defs/AcceleratorConfig'}, 'description': 'Accelerators attached to the instance.'}}, 'description': 'Response message for getting instance basic info.'}
get_instance_group_manager_basic_info
Get basic information about a Compute Engine managed instance group (MIG), including its name, ID, instance template, base instance name, target size, target stopped size, target suspended size, status and creation timestamp. Requires project, zone, and MIG name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The instance group manager name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the instance group manager.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for getting instance group manager basic info.'}
Output schema
{'type': 'object', '$defs': {'Help': {'type': 'object', 'properties': {'links': {'type': 'array', 'items': {'$ref': '#/$defs/Link'}, 'description': 'URL(s) pointing to additional information on handling the current error.'}}, 'description': "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit."}, 'Link': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'The URL of the link.'}, 'description': {'type': 'string', 'description': 'Describes what the link offers.'}}, 'description': 'Describes a URL link.'}, 'Status': {'type': 'object', 'properties': {'isStable': {'type': 'boolean', 'readOnly': True, 'description': 'Output only. A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.'}, 'stateful': {'$ref': '#/$defs/Stateful', 'readOnly': True, 'description': 'Output only. Stateful status of the given Instance Group Manager.'}, 'autoscaler': {'type': 'string', 'readOnly': True, 'description': 'Output only. The URL of the Autoscaler </compute/docs/autoscaler/> that targets this instance group manager.'}, 'versionTarget': {'$ref': '#/$defs/VersionTarget', 'readOnly': True, 'description': "Output only. A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager."}, 'allInstancesConfig': {'$ref': '#/$defs/AllInstancesConfig', 'readOnly': True, 'description': 'Output only. Status of all-instances configuration on the group.'}, 'bulkInstanceOperation': {'$ref': '#/$defs/BulkInstanceOperation', 'readOnly': True, 'description': 'Output only. The status of bulk instance operation.'}, 'currentInstanceStatuses': {'$ref': '#/$defs/InstanceStatusSummary', 'readOnly': True, 'description': 'Output only. The list of instance statuses and the number of instances in this managed instance group that have the status. Currently only shown for TPU MIGs'}, 'appliedAcceleratorTopologies': {'type': 'array', 'items': {'$ref': '#/$defs/AcceleratorTopology'}, 'readOnly': True, 'description': 'Output only. The accelerator topology applied to this MIG. Currently only one accelerator topology is supported.'}}}, 'Stateful': {'type': 'object', 'properties': {'hasStatefulConfig': {'type': 'boolean', 'readOnly': True, 'description': 'Output only. A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.'}, 'perInstanceConfigs': {'$ref': '#/$defs/PerInstanceConfigs', 'readOnly': True, 'description': 'Output only. Status of per-instance configurations on the instances.'}}}, 'ErrorInfo': {'type': 'object', 'properties': {'domain': {'type': 'string', 'description': 'The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".'}, 'reason': {'type': 'string', 'description': 'The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.'}, 'metadatas': {'type': 'object', 'description': 'Additional structured details about this error. Keys must match a regular expression of `a-z+` but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than `{"instanceLimit": "100/request"}`, should be returned as, `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of instances that can be created in a single (batch) request.', 'additionalProperties': {'type': 'string'}}}, 'description': 'Describes the cause of the error with structured details. Example of an error when contacting the "pubsub.googleapis.com" API when it is not enabled: { "reason": "API_DISABLED" "domain": "googleapis.com" "metadata": { "resource": "projects/123", "service": "pubsub.googleapis.com" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata": { "availableRegions": "us-central1,us-east2" } }'}, 'VersionTarget': {'type': 'object', 'properties': {'isReached': {'type': 'boolean', 'readOnly': True, 'description': "Output only. A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager."}}}, 'LocalizedMessage': {'type': 'object', 'properties': {'locale': {'type': 'string', 'description': 'The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"'}, 'message': {'type': 'string', 'description': 'The localized error message in the above locale.'}}, 'description': 'Provides a localized error message that is safe to return to the user which can be attached to an RPC error.'}, 'LastProgressCheck': {'type': 'object', 'properties': {'error': {'type': 'object', 'readOnly': True, 'properties': {'errors': {'type': 'array', 'items': {'type': 'object', 'properties': {'code': {'type': 'string', 'description': '[Output Only] The error type identifier for this error.'}, 'message': {'type': 'string', 'description': '[Output Only] An optional, human-readable error message.'}, 'location': {'type': 'string', 'description': '[Output Only] Indicates the field in the request that caused the error. This property is optional.'}, 'errorDetails': {'type': 'array', 'items': {'type': 'object', 'properties': {'help': {'$ref': '#/$defs/Help', 'description': 'Links and information to help the user resolve the error. Only one of the following fields should be set: this field, errorInfo, quotaInfo, localizedMessage.'}, 'errorInfo': {'$ref': '#/$defs/ErrorInfo', 'description': 'Error information containing structured domain, reason, and metadata. Only one of the following fields should be set: this field, quotaInfo, help, localizedMessage.'}, 'quotaInfo': {'$ref': '#/$defs/QuotaExceededInfo', 'description': 'Details about quota limits and metrics when a quota is exceeded. Only one of the following fields should be set: this field, errorInfo, help, localizedMessage.'}, 'localizedMessage': {'$ref': '#/$defs/LocalizedMessage', 'description': 'A localized human-readable error message intended for end users. Only one of the following fields should be set: this field, errorInfo, quotaInfo, help.'}}, 'description': 'Container for structured error details providing additional context specific to the encountered error code.'}, 'description': '[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.'}}, 'description': 'Represents a single error encountered during the processing of an operation.'}, 'description': '[Output Only] The array of errors encountered while processing this operation.'}}, 'description': 'Output only. Errors encountered during bulk instance operation.'}, 'timestamp': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. Timestamp of the last progress check of bulk instance operation. Timestamp is in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format.'}}}, 'QuotaExceededInfo': {'type': 'object', 'properties': {'limit': {'type': 'number', 'format': 'double', 'description': "Current effective quota limit. The limit's unit depends on the quota type or metric."}, 'limitName': {'type': 'string', 'description': 'The name of the quota limit.'}, 'dimensions': {'type': 'object', 'description': 'The map holding related quota dimensions.', 'additionalProperties': {'type': 'string'}}, 'metricName': {'type': 'string', 'description': 'The Compute Engine quota metric name.'}, 'futureLimit': {'type': 'number', 'format': 'double', 'description': "Future quota limit being rolled out. The limit's unit depends on the quota type or metric."}, 'rolloutStatus': {'enum': ['IN_PROGRESS', 'ROLLOUT_STATUS_UNSPECIFIED'], 'type': 'string', 'description': 'Rollout status of the future quota limit.', 'x-google-enum-descriptions': ['IN_PROGRESS - A rollout is in process which will change the limit value to future limit.', 'ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default value.']}}, 'description': 'Additional details for quota exceeded error for resource quota.'}, 'AllInstancesConfig': {'type': 'object', 'properties': {'effective': {'type': 'boolean', 'readOnly': True, 'description': 'Output only. A bit indicating whether this configuration has been applied to all managed instances in the group.'}, 'currentRevision': {'type': 'string', 'readOnly': True, 'description': 'Output only. Current all-instances configuration revision. This value is in RFC3339 text format.'}}}, 'PerInstanceConfigs': {'type': 'object', 'properties': {'allEffective': {'type': 'boolean', 'readOnly': True, 'description': "Output only. A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs."}}}, 'AcceleratorTopology': {'type': 'object', 'properties': {'state': {'enum': ['ACTIVATING', 'ACTIVE', 'DEACTIVATING', 'FAILED', 'INCOMPLETE', 'REACTIVATING'], 'type': 'string', 'readOnly': True, 'description': 'Output only. The state of the accelerator topology.', 'x-google-enum-descriptions': ['The accelerator topology is being activated.', 'The accelerator topology is active.', 'The accelerator topology is being deactivated.', 'The accelerator topology failed.', 'The configuration is incomplete and the accelerator topology cannot be activated due to insufficient number of running VMs.', 'The accelerator topology is being reactivated.']}, 'stateDetails': {'$ref': '#/$defs/AcceleratorTopologyStateDetails', 'readOnly': True, 'description': 'Output only. The result of the latest accelerator topology state check.'}, 'acceleratorTopology': {'type': 'string', 'readOnly': True, 'description': 'Output only. Topology in the format of: "16x16", "4x4x4", etc. The value is the same as configured in the WorkloadPolicy.'}}}, 'BulkInstanceOperation': {'type': 'object', 'properties': {'inProgress': {'type': 'boolean', 'readOnly': True, 'description': 'Output only. Informs whether bulk instance operation is in progress.'}, 'lastProgressCheck': {'$ref': '#/$defs/LastProgressCheck', 'readOnly': True, 'description': 'Output only. Information from the last progress check of bulk instance operation.'}}, 'description': 'Bulk instance operation is the creation of VMs in a MIG when the targetSizePolicy.mode is set to BULK.'}, 'InstanceStatusSummary': {'type': 'object', 'properties': {'pending': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': "Output only. The number of instances in the managed instance group that have PENDING status, that is FlexStart instances that are waiting for resources. Instances that do not exist because of the other reasons are counted as 'non_existent'."}, 'running': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have RUNNING status.'}, 'staging': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have STAGING status.'}, 'stopped': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have STOPPED status.'}, 'stopping': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have STOPPING status.'}, 'repairing': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have REPAIRING status.'}, 'suspended': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have SUSPENDED status.'}, 'suspending': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have SUSPENDING status.'}, 'terminated': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have TERMINATED status.'}, 'nonExistent': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': "Output only. The number of instances that have not been created yet or have been deleted. Includes only instances that would be shown in the listManagedInstances method and not all instances that have been deleted in the lifetime of the MIG. Does not include FlexStart instances that are waiting for the resources availability, they are considered as 'pending'."}, 'pendingStop': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have PENDING_STOP status.'}, 'provisioning': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have PROVISIONING status.'}, 'deprovisioning': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have DEPROVISIONING status.'}}, 'description': 'The list of instance statuses and the number of instances in this managed instance group that have the status. For more information about how to interpret each status check the instance lifecycle documentation </compute/docs/instances/instance-lifecycle>. Currently only shown for TPU MIGs.'}, 'AcceleratorTopologyStateDetails': {'type': 'object', 'properties': {'error': {'type': 'object', 'readOnly': True, 'properties': {'errors': {'type': 'array', 'items': {'type': 'object', 'properties': {'code': {'type': 'string', 'description': '[Output Only] The error type identifier for this error.'}, 'message': {'type': 'string', 'description': '[Output Only] An optional, human-readable error message.'}, 'location': {'type': 'string', 'description': '[Output Only] Indicates the field in the request that caused the error. This property is optional.'}, 'errorDetails': {'type': 'array', 'items': {'type': 'object', 'properties': {'help': {'$ref': '#/$defs/Help', 'description': 'Links and information to help the user resolve the error. Only one of the following fields should be set: this field, errorInfo, quotaInfo, localizedMessage.'}, 'errorInfo': {'$ref': '#/$defs/ErrorInfo', 'description': 'Error information containing structured domain, reason, and metadata. Only one of the following fields should be set: this field, quotaInfo, help, localizedMessage.'}, 'quotaInfo': {'$ref': '#/$defs/QuotaExceededInfo', 'description': 'Details about quota limits and metrics when a quota is exceeded. Only one of the following fields should be set: this field, errorInfo, help, localizedMessage.'}, 'localizedMessage': {'$ref': '#/$defs/LocalizedMessage', 'description': 'A localized human-readable error message intended for end users. Only one of the following fields should be set: this field, errorInfo, quotaInfo, help.'}}, 'description': 'Container for structured error details providing additional context specific to the encountered error code.'}, 'description': '[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.'}}, 'description': 'Represents a single error encountered during the processing of an operation.'}, 'description': '[Output Only] The array of errors encountered while processing this operation.'}}, 'description': 'Output only. Encountered errors.'}, 'timestamp': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. Timestamp is shown only if there is an error. The field has // RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> // text format.'}}}}, 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the instance group manager.'}, 'name': {'type': 'string', 'description': 'Name of the instance group manager.'}, 'status': {'$ref': '#/$defs/Status', 'description': 'The status of the instance group manager.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the instance group manager.'}, 'targetSize': {'type': 'integer', 'format': 'int32', 'description': 'The target size of the instance group manager.'}, 'baseInstanceName': {'type': 'string', 'description': 'The base instance name of the instance group manager.'}, 'instanceTemplate': {'type': 'string', 'description': 'The instance template of the instance group manager.'}, 'targetStoppedSize': {'type': 'integer', 'format': 'int32', 'description': 'The target stopped size of the instance group manager.'}, 'targetSuspendedSize': {'type': 'integer', 'format': 'int32', 'description': 'The target suspended size of the instance group manager.'}}, 'description': 'Basic information about an instance group manager.'}
get_instance_template_basic_info
Get basic information about a Compute Engine instance template, including its name, ID, description, machine type, region, and creation timestamp. Requires project and instance template name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. Name of the instance template to return.', 'x-google-identifier': True}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for getting instance template basic info.'}
Output schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the instance template.'}, 'name': {'type': 'string', 'description': 'Name of the instance template.'}, 'region': {'type': 'string', 'description': 'The region of the instance template if it is a regional resource.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the instance template.'}, 'description': {'type': 'string', 'description': 'Description of the instance template.'}, 'machineType': {'type': 'string', 'description': 'The machine type of the instance template.'}}, 'description': 'InstanceTemplateBasicInfo contains basic information about an instance template.'}
get_instance_template_properties
Get instance properties of a Compute Engine instance template. This includes properties such as description, tags, machine type, network interfaces, disks, metadata, service accounts, scheduling options, labels, guest accelerators, reservation affinity, and shielded/confidential instance configurations. Requires project and instance template name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. Name of the instance template to return.', 'x-google-identifier': True}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for getting instance properties of an instance template.'}
Output schema
{'type': 'object', '$defs': {'Tags': {'type': 'object', 'properties': {'items': {'type': 'array', 'items': {'type': 'string'}, 'pattern': '[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?', 'description': 'An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035 <https://www.ietf.org/rfc/rfc1035.txt>.'}, 'fingerprint': {'type': 'string', 'format': 'byte', 'description': "Specifies a fingerprint for this request, which is essentially a hash of the tags' contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update tags. You must always provide an up-to-date fingerprint hash in order to update or change tags. To see the latest fingerprint, make get() request to the instance."}}, 'description': 'A set of instance tags.'}, 'Duration': {'type': 'object', 'properties': {'nanos': {'type': 'integer', 'format': 'int32', 'description': "Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive."}, 'seconds': {'type': 'string', 'format': 'int64', 'description': 'Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years'}}, 'description': 'A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years.'}, 'Metadata': {'type': 'object', 'properties': {'kind': {'type': 'string', 'default': 'compute#metadata', 'readOnly': True, 'description': 'Output only. [Output Only] Type of the resource. Always compute#metadata for metadata.'}, 'items': {'type': 'array', 'items': {'type': 'object', 'properties': {'key': {'type': 'string', 'pattern': '[a-zA-Z0-9-_]{1,128}', 'description': 'Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.'}, 'value': {'type': 'string', 'description': 'Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB).'}}, 'description': 'Metadata'}, 'description': 'Array of key/value pairs. The total size of all keys and values must be less than 512 KB.'}, 'fingerprint': {'type': 'string', 'format': 'byte', 'description': "Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource."}}, 'description': 'A metadata key/value entry.'}, 'Scheduling': {'type': 'object', 'properties': {'minNodeCpus': {'type': 'integer', 'format': 'int32', 'description': 'The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.'}, 'preemptible': {'type': 'boolean', 'description': 'Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped </compute/docs/instances/stop-start-instance> and therefore, in a `TERMINATED` state. See Instance Life Cycle </compute/docs/instances/instance-life-cycle> for more information on the possible instance states.'}, 'locationHint': {'type': 'string', 'description': 'An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API.'}, 'maxRunDuration': {'$ref': '#/$defs/Duration', 'description': 'Specifies the max run duration for the given instance. If specified, the instance termination action will be performed at the end of the run duration. Only one of this field or terminationTime should be set.'}, 'nodeAffinities': {'type': 'array', 'items': {'$ref': '#/$defs/NodeAffinity'}, 'description': 'A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity </compute/docs/nodes/create-nodes#affinity> for more information. Overrides reservationAffinity.'}, 'protectionTier': {'enum': ['PROTECTION_TIER_CAPACITY_OPTIMIZED', 'PROTECTION_TIER_STANDARD', 'PROTECTION_TIER_UNSPECIFIED'], 'type': 'string', 'description': 'Protection tier for the workload which specifies the workload expectations in the event of infrastructure failures at data center (e.g. power and/or cooling failures).', 'x-google-enum-descriptions': ['CAPACITY_OPTIMIZED capacity leverages redundancies (e.g. power, cooling) at the data center during normal operating conditions. In the event of infrastructure failures at data center (e.g. power and/or cooling failures), this workload may be disrupted. As a consequence, it has a weaker availability SLO than STANDARD.', 'STANDARD protection for workload that should be protected by redundancies (e.g. power, cooling) at the data center level. In the event of infrastructure failures at data center (e.g. power and/or cooling failures), this workload is expected to continue as normal using the redundancies.', 'Unspecified protection tier.']}, 'terminationTime': {'type': 'string', 'description': 'Specifies the timestamp, when the instance will be terminated, in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format. If specified, the instance termination action will be performed at the termination time. Only one of this field or maxRunDuration should be set.'}, 'automaticRestart': {'type': 'boolean', 'description': 'Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances </compute/docs/instances/preemptible> cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.'}, 'gracefulShutdown': {'$ref': '#/$defs/GracefulShutdown'}, 'onHostMaintenance': {'enum': ['MIGRATE', 'TERMINATE'], 'type': 'string', 'description': 'Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances </compute/docs/instances/preemptible>, the default and only possible behavior is TERMINATE. For more information, see Set VM host maintenance policy </compute/docs/instances/host-maintenance-options>.', 'x-google-enum-descriptions': ['*[Default]* Allows Compute Engine to automatically migrate instances out of the way of maintenance events.', 'Tells Compute Engine to terminate and (optionally) restart the instance away from the maintenance activity. If you would like your instance to be restarted, set the automaticRestart flag to true. Your instance may be restarted more than once, and it may be restarted outside the window of maintenance events.']}, 'provisioningModel': {'enum': ['FLEX_START', 'RESERVATION_BOUND', 'SPOT', 'STANDARD'], 'type': 'string', 'description': 'Specifies the provisioning model of the instance.', 'x-google-enum-descriptions': ['Instance is provisioned using the Flex Start provisioning model and has a limited runtime.', 'Bound to the lifecycle of the reservation in which it is provisioned.', 'Heavily discounted, no guaranteed runtime.', 'Standard provisioning with user controlled runtime, no discounts.']}, 'availabilityDomain': {'type': 'integer', 'format': 'int32', 'description': 'Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.'}, 'exposeHostTopology': {'type': 'boolean', 'description': 'This optional flag exposes the hashed physical host ID in the ResourceStatus resource of the VM.'}, 'skipGuestOsShutdown': {'type': 'boolean', 'description': 'Default is false and there will be 120 seconds between GCE ACPI G2 Soft Off <https://en.wikipedia.org/wiki/ACPI#Power_states> and ACPI G3 Mechanical Off <https://en.wikipedia.org/wiki/ACPI#Power_states> for Standard VMs and 30 seconds for Spot VMs.'}, 'onInstanceStopAction': {'$ref': '#/$defs/OnInstanceStopAction'}, 'hostErrorTimeoutSeconds': {'type': 'integer', 'format': 'int32', 'description': 'Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.'}, 'localSsdRecoveryTimeout': {'$ref': '#/$defs/Duration', 'description': 'Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.'}, 'preemptionNoticeDuration': {'$ref': '#/$defs/Duration', 'description': 'Specifies the Metadata Service preemption notice duration before the GCE ACPI G2 Soft Off <https://en.wikipedia.org/wiki/ACPI#Power_states> signal is triggered for Spot VMs </compute/docs/instances/spot> only. If not specified, there will be no wait before the G2 Soft Off signal is triggered.'}, 'instanceTerminationAction': {'enum': ['DELETE', 'INSTANCE_TERMINATION_ACTION_UNSPECIFIED', 'STOP'], 'type': 'string', 'description': 'Specifies the termination action for the instance.', 'x-google-enum-descriptions': ['Delete the VM.', 'Default value. This value is unused.', 'Stop the VM without storing in-memory content. default action.']}}, 'description': 'Sets the scheduling options for an Instance.'}, 'AccessConfig': {'type': 'object', 'properties': {'kind': {'type': 'string', 'default': 'compute#accessConfig', 'readOnly': True, 'description': 'Output only. [Output Only] Type of the resource. Always compute#accessConfig for access configs.'}, 'name': {'type': 'string', 'description': 'The name of this access configuration. In accessConfigs (IPv4), the default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. In ipv6AccessConfigs, the recommend name is External IPv6.'}, 'type': {'enum': ['DIRECT_IPV6', 'ONE_TO_ONE_NAT'], 'type': 'string', 'description': 'The type of configuration. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.', 'x-google-enum-descriptions': ['', '']}, 'natIP': {'type': 'string', 'description': 'Applies to accessConfigs (IPv4) only. An external IP address </compute/docs/ip-addresses#externaladdresses> associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.'}, 'networkTier': {'enum': ['FIXED_STANDARD', 'PREMIUM', 'STANDARD', 'STANDARD_OVERRIDES_FIXED_STANDARD'], 'type': 'string', 'description': 'This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP.', 'x-google-enum-descriptions': ['Public internet quality with fixed bandwidth.', 'High quality, Google-grade network tier, support for all networking products.', 'Public internet quality, only limited support for other networking products.', '(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured.']}, 'externalIpv6': {'type': 'string', 'description': "Applies to ipv6AccessConfigs only. The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork."}, 'setPublicPtr': {'type': 'boolean', 'description': "Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated."}, 'securityPolicy': {'type': 'string', 'description': 'The resource URL for the security policy associated with this access config.'}, 'publicPtrDomainName': {'type': 'string', 'description': 'The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be created for first IP in associated external IPv6 range.'}, 'externalIpv6PrefixLength': {'type': 'integer', 'format': 'int32', 'description': 'Applies to ipv6AccessConfigs only. The prefix length of the external IPv6 range.'}}, 'description': "An access configuration attached to an instance's network interface. Only one access config per instance is supported."}, 'AliasIpRange': {'type': 'object', 'properties': {'ipCidrRange': {'type': 'string', 'description': 'The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24).'}, 'subnetworkRangeName': {'type': 'string', 'description': 'The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used.'}}, 'description': "An alias IP range attached to an instance's network interface."}, 'AttachedDisk': {'type': 'object', 'properties': {'boot': {'type': 'boolean', 'description': 'Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.'}, 'kind': {'type': 'string', 'default': 'compute#attachedDisk', 'readOnly': True, 'description': 'Output only. [Output Only] Type of the resource. Always compute#attachedDisk for attached disks.'}, 'mode': {'enum': ['READ_ONLY', 'READ_WRITE'], 'type': 'string', 'description': 'The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.', 'x-google-enum-descriptions': ['Attaches this disk in read-only mode. Multiple virtual machines can use a disk in read-only mode at a time.', '*[Default]* Attaches this disk in read-write mode. Only one virtual machine at a time can be attached to a disk in read-write mode.']}, 'type': {'enum': ['PERSISTENT', 'SCRATCH'], 'type': 'string', 'description': 'Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.', 'x-google-enum-descriptions': ['', '']}, 'index': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number.'}, 'source': {'type': 'string', 'description': 'Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance boot disk, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk.'}, 'licenses': {'type': 'array', 'items': {'type': 'string'}, 'readOnly': True, 'description': 'Output only. [Output Only] Any valid publicly visible licenses.'}, 'interface': {'enum': ['NVME', 'SCSI'], 'type': 'string', 'description': 'Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks <https://cloud.google.com/compute/docs/disks/persistent-disks>.', 'x-google-enum-descriptions': ['', '']}, 'autoDelete': {'type': 'boolean', 'description': 'Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).'}, 'deviceName': {'type': 'string', 'description': 'Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.'}, 'diskSizeGb': {'type': 'string', 'format': 'int64', 'description': 'The size of the disk in GB.'}, 'savedState': {'enum': ['DISK_SAVED_STATE_UNSPECIFIED', 'PRESERVED'], 'type': 'string', 'readOnly': True, 'description': 'Output only. For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field is set to PRESERVED if the LocalSSD data has been saved to a persistent location by customer request. (see the discard_local_ssd option on Stop/Suspend). Read-only in the api.', 'x-google-enum-descriptions': ['*[Default]* Disk state has not been preserved.', 'Disk state has been preserved.']}, 'forceAttach': {'type': 'boolean', 'description': "[Input Only] Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error."}, 'architecture': {'enum': ['ARCHITECTURE_UNSPECIFIED', 'ARM64', 'X86_64'], 'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] The architecture of the attached disk. Valid values are ARM64 or X86_64.', 'x-google-enum-descriptions': ['Default value indicating Architecture is not set.', 'Machines with architecture ARM64', 'Machines with architecture X86_64']}, 'guestOsFeatures': {'type': 'array', 'items': {'$ref': '#/$defs/GuestOsFeature'}, 'description': 'A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features </compute/docs/images/create-delete-deprecate-private-images#guest-os-features> to see a list of available options.'}, 'initializeParams': {'$ref': '#/$defs/InitializeParams', 'description': '[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.'}, 'diskEncryptionKey': {'$ref': '#/$defs/CustomerEncryptionKey', 'description': 'Encrypts or decrypts a disk using a customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption>. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Note: Instance templates do not store customer-supplied encryption keys </compute/docs/disks/customer-supplied-encryption>, so you cannot use your own keys to encrypt disks in a managed instance group </compute/docs/instance-groups/>. You cannot create VMs that have disks with customer-supplied keys using the bulk insert method </compute/docs/reference/rest/v1/instances/bulkInsert>.'}, 'shieldedInstanceInitialState': {'$ref': '#/$defs/InitialStateConfig', 'readOnly': True, 'description': 'Output only. [Output Only] shielded vm initial state stored on disk'}}, 'description': 'An instance-attached disk resource.'}, 'NodeAffinity': {'type': 'object', 'properties': {'key': {'type': 'string', 'description': 'Corresponds to the label key of Node resource.'}, 'values': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Corresponds to the label values of Node resource.'}, 'operator': {'enum': ['IN', 'NOT_IN', 'OPERATOR_UNSPECIFIED'], 'type': 'string', 'description': 'Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity.', 'x-google-enum-descriptions': ['Requires Compute Engine to seek for matched nodes.', 'Requires Compute Engine to avoid certain nodes.', '']}}, 'description': 'Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled.'}, 'GuestOsFeature': {'type': 'object', 'properties': {'type': {'enum': ['BARE_METAL_LINUX_COMPATIBLE', 'BMSAI_CAPABLE', 'CCA_CAPABLE', 'FEATURE_TYPE_UNSPECIFIED', 'GVNIC', 'IDPF', 'MULTI_IP_SUBNET', 'SECURE_BOOT', 'SEV_CAPABLE', 'SEV_LIVE_MIGRATABLE', 'SEV_LIVE_MIGRATABLE_V2', 'SEV_SNP_CAPABLE', 'SNP_SVSM_CAPABLE', 'SUSPEND_SAFE_FPR', 'TDX_CAPABLE', 'UEFI_COMPATIBLE', 'VIRTIO_SCSI_MULTIQUEUE', 'WINDOWS'], 'type': 'string', 'description': 'The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF - SNP_SVSM_CAPABLE - CCA_CAPABLE - SUSPEND_SAFE_FPR For more information, see Enabling guest operating system features </compute/docs/images/create-delete-deprecate-private-images#guest-os-features> .', 'x-google-enum-descriptions': ['', 'Indicates the guest OS is capable of Bare Metal Secure AI (BMSAI) confidential computing.', '', '', '', '', '', '', '', '', '', '', '', 'Indicates the guest OS is safe for free page reporting (FPR) during suspend.', '', '', '', '']}}, 'description': 'Guest OS features.'}, 'ServiceAccount': {'type': 'object', 'properties': {'email': {'type': 'string', 'description': 'Email address of the service account.'}, 'scopes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The list of scopes to be made available for this service account.'}}, 'description': 'A service account.'}, 'GracefulShutdown': {'type': 'object', 'properties': {'enabled': {'type': 'boolean', 'description': 'Opts-in for graceful shutdown.'}, 'maxDuration': {'$ref': '#/$defs/Duration', 'description': "The time allotted for the instance to gracefully shut down. If the graceful shutdown isn't complete after this time, then the instance transitions to the STOPPING state."}}, 'description': 'The configuration for gracefully shutting down the instance.'}, 'InitializeParams': {'type': 'object', 'properties': {'labels': {'type': 'object', 'description': 'Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks.', 'additionalProperties': {'type': 'string'}}, 'diskName': {'type': 'string', 'description': 'Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created.'}, 'diskType': {'type': 'string', 'description': "Specifies the disk type used for the boot disk or an additional data disk. For valid disk type values, see Supported types for Hyperdisk volumes </compute/docs/disks/add-hyperdisk#hd_disk_types> and Persistent Disk type variables </compute/docs/disks/add-persistent-disk#hd_disk_types>. When creating a single instance, you must provide either the full or partial URL of the disk type. For example, the following values are valid: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType When creating an instance template, instance flexibility policy, or when creating or updating an all-instances configuration, you specify the disk type without a URL, for example, hyperdisk-balanced. If you omit this field for a disk, the default disk type depends on the instance's machine series, as follows. - For first- and second-generation machine series like N1, N2, T2, and M1, the default disk type is Standard Persistent Disk (pd-standard). - For C3, C3D, and M3 the default is Balanced Persistent Disk ( pd-balanced). - For other third-generation machine series like A3, H3, Z3, all fourth-generation types like C4, N4, M4, and newer machine series, the default is Hyperdisk Balanced (hyperdisk-balanced). The disk type you specify must be compatible with the instance's machine series. For a list of machine series that support Persistent Disk, see Machine series support for Persistent Disk </compute/docs/disks/persistent-disks#pd-machine-series>. For a list of machine series that support Hyperdisk, see Machine series support for Hyperdisk </compute/docs/disks/hyperdisks#machine-type-support>."}, 'licenses': {'type': 'array', 'items': {'type': 'string'}, 'description': "A list of publicly visible licenses. Reserved for Google's use."}, 'diskSizeGb': {'type': 'string', 'format': 'int64', 'description': 'Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB.'}, 'description': {'type': 'string', 'description': 'An optional description. Provide this property when creating the disk.'}, 'sourceImage': {'type': 'string', 'description': 'The source image to create this disk. When creating a new instance boot disk, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required. To create a disk with one of the public operating system images </compute/docs/images/os-details>, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set.'}, 'storagePool': {'type': 'string', 'description': 'The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool '}, 'architecture': {'enum': ['ARCHITECTURE_UNSPECIFIED', 'ARM64', 'X86_64'], 'type': 'string', 'description': 'The architecture of the attached disk. Valid values are arm64 or x86_64.', 'x-google-enum-descriptions': ['Default value indicating Architecture is not set.', 'Machines with architecture ARM64', 'Machines with architecture X86_64']}, 'replicaZones': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone.'}, 'onUpdateAction': {'enum': ['RECREATE_DISK', 'RECREATE_DISK_IF_SOURCE_CHANGED', 'USE_EXISTING_DISK'], 'type': 'string', 'description': 'Specifies which action to take on instance update with this disk. Default is to use the existing disk.', 'x-google-enum-descriptions': ['Always recreate the disk.', 'Recreate the disk if source (image, snapshot) of this disk is different from source of existing disk.', 'Use the existing disk, this is the default behaviour.']}, 'sourceSnapshot': {'type': 'string', 'description': 'The source snapshot to create this disk. When creating a new instance boot disk, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. Note: You cannot create VMs in bulk using a snapshot as the source. Use an image instead when you create VMs using the bulk insert method </compute/docs/reference/rest/v1/instances/bulkInsert>.'}, 'provisionedIops': {'type': 'string', 'format': 'int64', 'description': 'Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation </compute/docs/disks/extreme-persistent-disk>.'}, 'resourcePolicies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name.'}, 'resourceManagerTags': {'type': 'object', 'writeOnly': True, 'description': 'Input only. Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags <https://cloud.google.com/resource-manager/docs/tags/tags-overview>. Keys and values can be either in numeric format, such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in namespaced format such as `{org_id|project_id}/{tag_key_short_name}` and `{tag_value_short_name}`. The field is ignored (both PUT & PATCH) when empty.', 'additionalProperties': {'type': 'string'}}, 'provisionedThroughput': {'type': 'string', 'format': 'int64', 'description': 'Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must greater than or equal to 1.'}, 'sourceImageEncryptionKey': {'$ref': '#/$defs/CustomerEncryptionKey', 'description': 'The customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption> of the source image. Required if the source image is protected by a customer-supplied encryption key. InstanceTemplate and InstancePropertiesPatch do not store customer-supplied encryption keys </compute/docs/disks/customer-supplied-encryption>, so you cannot create disks for instances in a managed instance group </compute/docs/instance-groups/> if the source images are encrypted with your own keys.'}, 'enableConfidentialCompute': {'type': 'boolean', 'description': 'Whether this disk is using confidential compute mode.'}, 'sourceSnapshotEncryptionKey': {'$ref': '#/$defs/CustomerEncryptionKey', 'description': 'The customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption> of the source snapshot.'}}, 'description': '[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.'}, 'NetworkInterface': {'type': 'object', 'properties': {'kind': {'type': 'string', 'default': 'compute#networkInterface', 'readOnly': True, 'description': 'Output only. [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.'}, 'name': {'type': 'string', 'description': '[Output Only] The name of the network interface, which is generated by the server. For a VM, the network interface uses the nicN naming format. Where N is a value between 0 and 7. The default interface value is nic0.'}, 'vlan': {'type': 'integer', 'format': 'int32', 'description': 'VLAN tag of a dynamic network interface, must be an integer in the range from 2 to 255 inclusively.'}, 'network': {'type': 'string', 'description': "URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default "}, 'nicType': {'enum': ['GVNIC', 'IDPF', 'IRDMA', 'MRDMA', 'UNSPECIFIED_NIC_TYPE', 'VIRTIO_NET'], 'type': 'string', 'description': 'The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.', 'x-google-enum-descriptions': ['GVNIC', 'IDPF', 'IRDMA', 'MRDMA', 'No type specified.', 'VIRTIO']}, 'igmpQuery': {'enum': ['IGMP_QUERY_DISABLED', 'IGMP_QUERY_V2'], 'type': 'string', 'description': 'Indicate whether igmp query is enabled on the network interface or not. If enabled, also indicates the version of IGMP supported.', 'x-google-enum-descriptions': ['The network interface has disabled IGMP query.', 'The network interface has enabled IGMP query - v2.']}, 'networkIP': {'type': 'string', 'description': 'An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.'}, 'stackType': {'enum': ['IPV4_IPV6', 'IPV4_ONLY', 'IPV6_ONLY'], 'type': 'string', 'description': 'The stack type for this network interface. To assign only IPv4 addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set at instance creation and update network interface operations.', 'x-google-enum-descriptions': ['The network interface can have both IPv4 and IPv6 addresses.', 'The network interface will only be assigned IPv4 addresses.', 'The network interface will only be assigned IPv6 addresses.']}, 'queueCount': {'type': 'integer', 'format': 'int32', 'description': "The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users."}, 'subnetwork': {'type': 'string', 'description': 'The URL of the Subnetwork resource for this instance. If the network resource is in legacy </vpc/docs/legacy> mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork '}, 'fingerprint': {'type': 'string', 'format': 'byte', 'description': 'Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface. The request will fail with error 400 Bad Request if the fingerprint is not provided, or 412 Precondition Failed if the fingerprint is out of date.'}, 'ipv6Address': {'type': 'string', 'description': "An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork."}, 'accessConfigs': {'type': 'array', 'items': {'$ref': '#/$defs/AccessConfig'}, 'description': 'An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.'}, 'aliasIpRanges': {'type': 'array', 'items': {'$ref': '#/$defs/AliasIpRange'}, 'description': 'An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.'}, 'parentNicName': {'type': 'string', 'description': 'Name of the parent network interface of a dynamic network interface.'}, 'ipv6AccessType': {'enum': ['EXTERNAL', 'INTERNAL'], 'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork. Valid only if stackType is IPV4_IPV6.', 'x-google-enum-descriptions': ['This network interface can have external IPv6.', 'This network interface can have internal IPv6.']}, 'serviceClassId': {'type': 'string', 'description': "Optional. Producer Service's Service class Id for the region of this network interface. Can only be used with network_attachment. It is not possible to use on its own however, network_attachment can be used without service_class_id."}, 'aliasIpv6Ranges': {'type': 'array', 'items': {'$ref': '#/$defs/AliasIpRange'}, 'description': 'An array of alias IPv6 ranges for this network interface. You can only specify this field for network interfaces in VPC networks.'}, 'ipv6AccessConfigs': {'type': 'array', 'items': {'$ref': '#/$defs/AccessConfig'}, 'description': 'An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.'}, 'networkAttachment': {'type': 'string', 'description': 'The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.'}, 'enableVpcScopedDns': {'type': 'boolean', 'description': 'Optional. If true, DNS resolution will be enabled over this interface. Only valid with network_attachment.'}, 'internalIpv6PrefixLength': {'type': 'integer', 'format': 'int32', 'description': 'The prefix length of the primary internal IPv6 range.'}}, 'description': 'A network interface resource attached to an instance.'}, 'AcceleratorConfig': {'type': 'object', 'properties': {'acceleratorType': {'type': 'string', 'description': 'Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine </compute/docs/gpus/#introduction> for a full list of accelerator types.'}, 'acceleratorCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of the guest accelerator cards exposed to this instance.'}}, 'description': 'A specification of the type and number of accelerator cards attached to the instance.'}, 'FileContentBuffer': {'type': 'object', 'properties': {'content': {'type': 'string', 'format': 'byte', 'description': 'The raw content in the secure keys file.'}, 'fileType': {'enum': ['BIN', 'UNDEFINED', 'X509'], 'type': 'string', 'description': 'The file type of source file.', 'x-google-enum-descriptions': ['', '', '']}}}, 'InitialStateConfig': {'type': 'object', 'properties': {'pk': {'$ref': '#/$defs/FileContentBuffer', 'description': 'The Platform Key (PK).'}, 'dbs': {'type': 'array', 'items': {'$ref': '#/$defs/FileContentBuffer'}, 'description': 'The Key Database (db).'}, 'dbxs': {'type': 'array', 'items': {'$ref': '#/$defs/FileContentBuffer'}, 'description': 'The forbidden key database (dbx).'}, 'keks': {'type': 'array', 'items': {'$ref': '#/$defs/FileContentBuffer'}, 'description': 'The Key Exchange Key (KEK).'}}, 'description': 'Initial State for shielded instance, these are public keys which are safe to store in public'}, 'ReservationAffinity': {'type': 'object', 'properties': {'key': {'type': 'string', 'description': 'Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value.'}, 'values': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or "projects/different-project/reservations/some-reservation-name" to target a shared reservation in the same zone but in a different project.'}, 'consumeReservationType': {'enum': ['ANY_RESERVATION', 'NO_RESERVATION', 'SPECIFIC_RESERVATION', 'UNSPECIFIED'], 'type': 'string', 'description': 'Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances </compute/docs/instances/reserving-zonal-resources#consuming_reserved_instances> for examples.', 'x-google-enum-descriptions': ['', '', '', '']}}, 'description': 'Specifies the reservations that this instance can consume from.'}, 'OnInstanceStopAction': {'type': 'object', 'properties': {'discardLocalSsd': {'type': 'boolean', 'description': 'If true, the contents of any attached Local SSD disks will be discarded else, the Local SSD data will be preserved when the instance is stopped at the end of the run duration/termination time.'}}, 'description': 'Defines the behaviour for instances with the instance_termination_action STOP.'}, 'CustomerEncryptionKey': {'type': 'object', 'properties': {'rawKey': {'type': 'string', 'deprecated': True, 'description': '[DEPRECATED] CSEK is no longer supported. Use CMEK instead. Specifies a 256-bit customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption>, encoded in RFC 4648 base64 <https://tools.ietf.org/html/rfc4648#section-4> to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=". Only one of the following fields should be set: this field, rsaEncryptedKey, kmsKeyName.'}, 'sha256': {'type': 'string', 'deprecated': True, 'description': '[DEPRECATED] CSEK is no longer supported. Use CMEK instead. [Output only] The RFC 4648 base64 <https://tools.ietf.org/html/rfc4648#section-4> encoded SHA-256 hash of the customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption> that protects this resource.'}, 'kmsKeyName': {'type': 'string', 'description': 'The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1. Only one of the following fields should be set: this field, rawKey, rsaEncryptedKey.'}, 'rsaEncryptedKey': {'type': 'string', 'deprecated': True, 'description': '[DEPRECATED] CSEK is no longer supported. Use CMEK instead. Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption#rsa-encryption> to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 <https://tools.ietf.org/html/rfc4648#section-4> encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem. Only one of the following fields should be set: this field, rawKey, kmsKeyName.'}, 'kmsKeyServiceAccount': {'type': 'string', 'description': 'The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ '}}}, 'ShieldedInstanceConfig': {'type': 'object', 'properties': {'enableVtpm': {'type': 'boolean', 'description': 'Defines whether the instance has the vTPM enabled. Enabled by default </compute/docs/instances/modifying-shielded-vm>.'}, 'enableSecureBoot': {'type': 'boolean', 'description': 'Defines whether the instance has Secure Boot enabled. Disabled by default </compute/docs/instances/modifying-shielded-vm>.'}, 'enableIntegrityMonitoring': {'type': 'boolean', 'description': 'Defines whether the instance has integrity monitoring enabled. Enabled by default </compute/docs/instances/modifying-shielded-vm>.'}}, 'description': 'A set of Shielded Instance options.'}, 'WorkloadIdentityConfig': {'type': 'object', 'properties': {'identity': {'type': 'string'}, 'identityCertificateEnabled': {'type': 'boolean'}}}, 'AdvancedMachineFeatures': {'type': 'object', 'properties': {'turboMode': {'type': 'string', 'description': 'Turbo frequency mode to use for the instance. Supported modes include: * ALL_CORE_MAX Using empty string or not setting this field will use the platform-specific default turbo mode.'}, 'threadsPerCore': {'type': 'integer', 'format': 'int32', 'description': 'The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.'}, 'visibleCoreCount': {'type': 'integer', 'format': 'int32', 'description': "The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance's nominal CPU count and the underlying platform's SMT width."}, 'enableUefiNetworking': {'type': 'boolean', 'description': 'Whether to enable UEFI networking for instance creation.'}, 'performanceMonitoringUnit': {'enum': ['ARCHITECTURAL', 'ENHANCED', 'PERFORMANCE_MONITORING_UNIT_UNSPECIFIED', 'STANDARD'], 'type': 'string', 'description': 'Type of Performance Monitoring Unit requested on instance.', 'x-google-enum-descriptions': ['Architecturally defined non-LLC events.', 'Most documented core/L2 and LLC events.', '', 'Most documented core/L2 events.']}, 'enableNestedVirtualization': {'type': 'boolean', 'description': 'Whether to enable nested virtualization or not (default is false).'}}, 'description': 'Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled).'}, 'NetworkPerformanceConfig': {'type': 'object', 'properties': {'totalEgressBandwidthTier': {'enum': ['DEFAULT', 'TIER_1'], 'type': 'string', 'x-google-enum-descriptions': ['', '']}}}, 'ConfidentialInstanceConfig': {'type': 'object', 'properties': {'confidentialInstanceType': {'enum': ['BMSAI', 'CCA', 'CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED', 'SEV', 'SEV_SNP', 'TDX'], 'type': 'string', 'description': 'Defines the type of technology used by the confidential instance.', 'x-google-enum-descriptions': ['Bare Metal Secure AI.', 'Arm Confidential Compute Architecture.', 'No type specified. Do not use this value.', 'AMD Secure Encrypted Virtualization.', 'AMD Secure Encrypted Virtualization - Secure Nested Paging.', 'Intel Trust Domain eXtension.']}, 'enableConfidentialCompute': {'type': 'boolean', 'description': 'Defines whether the instance should have confidential compute enabled.'}}, 'description': 'A set of Confidential Instance options.'}}, 'properties': {'tags': {'$ref': '#/$defs/Tags', 'description': 'A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035 <https://www.ietf.org/rfc/rfc1035.txt>.'}, 'disks': {'type': 'array', 'items': {'$ref': '#/$defs/AttachedDisk'}, 'description': 'An array of disks that are associated with the instances that are created from these properties.'}, 'labels': {'type': 'object', 'description': 'Labels to apply to instances that are created from these properties.', 'additionalProperties': {'type': 'string'}}, 'metadata': {'$ref': '#/$defs/Metadata', 'description': 'The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata </compute/docs/metadata#project_and_instance_metadata> for more information.'}, 'scheduling': {'$ref': '#/$defs/Scheduling', 'description': 'Specifies the scheduling options for the instances that are created from these properties.'}, 'description': {'type': 'string', 'description': 'An optional text description for the instances that are created from these properties.'}, 'machineType': {'type': 'string', 'description': 'The machine type to use for instances that are created from these properties. This field only accepts a machine type name, for example `n2-standard-4`. If you use the machine type full or partial URL, for example `projects/my-l7ilb-project/zones/us-central1-a/machineTypes/n2-standard-4`, the request will result in an `INTERNAL_ERROR`.'}, 'canIpForward': {'type': 'boolean', 'description': 'Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding </vpc/docs/using-routes#canipforward> documentation for more information.'}, 'minCpuPlatform': {'type': 'string', 'description': 'Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform </compute/docs/instances/specify-min-cpu-platform>.'}, 'serviceAccounts': {'type': 'array', 'items': {'$ref': '#/$defs/ServiceAccount'}, 'description': 'A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances.'}, 'resourcePolicies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet.'}, 'guestAccelerators': {'type': 'array', 'items': {'$ref': '#/$defs/AcceleratorConfig'}, 'description': "A list of guest accelerator cards' type and count to use for instances created from these properties."}, 'networkInterfaces': {'type': 'array', 'items': {'$ref': '#/$defs/NetworkInterface'}, 'description': 'An array of network access configurations for this interface.'}, 'reservationAffinity': {'$ref': '#/$defs/ReservationAffinity', 'description': 'Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet.'}, 'resourceManagerTags': {'type': 'object', 'writeOnly': True, 'description': 'Input only. Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags <https://cloud.google.com/resource-manager/docs/tags/tags-overview>. Keys and values can be either in numeric format, such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in namespaced format such as `{org_id|project_id}/{tag_key_short_name}` and `{tag_value_short_name}`. The field is ignored (both PUT & PATCH) when empty.', 'additionalProperties': {'type': 'string'}}, 'localSsdEncryptionMode': {'enum': ['EPHEMERAL_KEY_ENCRYPTION', 'LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED', 'STANDARD_ENCRYPTION'], 'type': 'string', 'description': 'Specifies which method should be used for encrypting the Local SSDs attached to the VM.', 'x-google-enum-descriptions': ['The given VM will opt-in for using ephemeral key for encryption of Local SSDs. The Local SSDs will not be able to recover data in case of VM crash.', 'The given VM will be encrypted using keys managed by the cloud infrastructure and the keys will be deleted when the VM is deleted.', 'The given VM will be encrypted using keys managed by the cloud infrastructure and the keys will be deleted when the VM is deleted.']}, 'shieldedInstanceConfig': {'$ref': '#/$defs/ShieldedInstanceConfig', 'description': 'Note that for MachineImage, this is not supported yet.'}, 'workloadIdentityConfig': {'$ref': '#/$defs/WorkloadIdentityConfig'}, 'advancedMachineFeatures': {'$ref': '#/$defs/AdvancedMachineFeatures', 'description': 'Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet.'}, 'keyRevocationActionType': {'enum': ['KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED', 'NONE', 'STOP'], 'type': 'string', 'description': 'KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified.', 'x-google-enum-descriptions': ['Default value. This value is unused.', '', '']}, 'privateIpv6GoogleAccess': {'enum': ['ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE', 'ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE', 'INHERIT_FROM_SUBNETWORK'], 'type': 'string', 'description': 'The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet.', 'x-google-enum-descriptions': ["Bidirectional private IPv6 access to/from Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", "Outbound private IPv6 access from VMs in this subnet to Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", 'Each network interface inherits PrivateIpv6GoogleAccess from its subnetwork.']}, 'networkPerformanceConfig': {'$ref': '#/$defs/NetworkPerformanceConfig', 'description': 'Note that for MachineImage, this is not supported yet.'}, 'confidentialInstanceConfig': {'$ref': '#/$defs/ConfidentialInstanceConfig', 'description': 'Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet.'}}}
get_reservation_basic_info
Get Compute Engine reservation basic info including name, ID, creation timestamp, zone, status, specific reservation required, commitment, and linked commitments. Requires project, zone, and reservation name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. Name of the reservation to retrieve.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the reservation.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for getting reservation basic info.'}
Output schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the reservation.'}, 'name': {'type': 'string', 'description': 'Name of the reservation.'}, 'zone': {'type': 'string', 'description': 'The zone of the reservation.'}, 'status': {'enum': ['CREATING', 'DELETING', 'INVALID', 'READY', 'UPDATING'], 'type': 'string', 'description': 'The status of the reservation.', 'x-google-enum-descriptions': ['Reservation resources are being allocated.', 'Reservation deletion is in progress.', '', 'Reservation resources have been allocated, and the reservation is ready for use.', 'Reservation update is in progress.']}, 'commitment': {'type': 'string', 'description': 'The commitment this reservation is tied to.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the reservation.'}, 'linkedCommitments': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The commitments linked to this reservation.'}, 'specificReservationRequired': {'type': 'boolean', 'description': '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.'}}, 'description': 'Basic information about a reservation.'}
get_reservation_details
Get Compute Engine reservation details. Returns reservation details including name, ID, status, creation timestamp, specific reservation properties like machine type, guest accelerators and local SSDs, aggregate reservation properties like VM family and reserved resources, commitment and linked commitments, sharing settings, and resource status. Requires project, zone, and reservation name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. Name of the reservation to retrieve.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the reservation.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for getting reservation details.'}
Output schema
{'type': 'object', '$defs': {'Duration': {'type': 'object', 'properties': {'nanos': {'type': 'integer', 'format': 'int32', 'description': "Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive."}, 'seconds': {'type': 'string', 'format': 'int64', 'description': 'Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years'}}, 'description': 'A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years.'}, 'HealthInfo': {'type': 'object', 'properties': {'healthStatus': {'enum': ['DEGRADED', 'HEALTHY', 'HEALTH_STATUS_UNSPECIFIED'], 'type': 'string', 'description': 'The health status of the reservation.', 'x-google-enum-descriptions': ['The reservation is degraded.', 'The reservation is healthy.', 'The health status of the reservation is unspecified.']}, 'healthyBlockCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of reservation blocks that are healthy.'}, 'degradedBlockCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of reservation blocks that are degraded.'}}, 'description': 'Health information for the reservation.'}, 'Accelerator': {'type': 'object', 'properties': {'acceleratorType': {'type': 'string', 'description': 'Full or partial URL to accelerator type. e.g. "projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l"'}, 'acceleratorCount': {'type': 'integer', 'format': 'int32', 'description': 'Number of accelerators of specified type.'}}}, 'ReservedDisk': {'type': 'object', 'properties': {'interface': {'enum': ['NVME', 'SCSI'], 'type': 'string', 'description': '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 </compute/docs/disks#localssds> .', 'x-google-enum-descriptions': ['', '']}, 'diskSizeGb': {'type': 'string', 'format': 'int64', 'description': 'Specifies the size of the disk in base-2 GB.'}}}, 'ProjectConfig': {'type': 'object', 'properties': {'projectId': {'type': 'string', 'description': 'The project ID, should be same as the key of this project config in the parent map.'}}, 'description': 'Config for each project in the share settings.'}, 'ShareSettings': {'type': 'object', 'properties': {'shareType': {'enum': ['LOCAL', 'ORGANIZATION', 'SHARE_TYPE_UNSPECIFIED', 'SPECIFIC_PROJECTS'], 'type': 'string', 'description': 'Type of sharing for this shared-reservation', 'x-google-enum-descriptions': ['Default value.', 'Shared-reservation is open to entire Organization', 'Default value. This value is unused.', 'Shared-reservation is open to specific projects']}, 'projectMap': {'type': 'object', 'description': "A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS.", 'additionalProperties': {'$ref': '#/$defs/ProjectConfig'}}}, 'description': 'The share setting for reservations and sole tenancy node groups.'}, 'ResourceStatus': {'type': 'object', 'properties': {'healthInfo': {'$ref': '#/$defs/HealthInfo', 'description': '[Output only] Health information for the reservation.'}, 'machineCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of machines in the reservation. Only populated for families where machine to host ratio is not 1:1 such as TPU8i.'}, 'reservationBlockCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of reservation blocks associated with this reservation.'}, 'specificSkuAllocation': {'$ref': '#/$defs/SpecificSKUAllocation', 'description': 'Allocation Properties of this reservation.'}, 'reservationMaintenance': {'$ref': '#/$defs/GroupMaintenanceInfo', 'description': 'Maintenance information for this reservation'}}, 'description': '[Output Only] Contains output only fields.'}, 'ResourceMetadata': {'type': 'object', 'properties': {'apiVersion': {'type': 'string', 'description': 'The version of the API interface that this resource was retrieved through. For example, `"2025-01-01"` or `"2025-01-01-preview"`.'}, 'resourceType': {'type': 'string', 'description': 'The canonical resource type name in the format of a resource type as defined by [AIP-123](https://google.aip.dev/123). For example, `"compute.googleapis.com/Instance"`.'}}, 'description': 'Standardized resource metadata common to all compute resources.'}, 'AcceleratorConfig': {'type': 'object', 'properties': {'acceleratorType': {'type': 'string', 'description': 'Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine </compute/docs/gpus/#introduction> for a full list of accelerator types.'}, 'acceleratorCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of the guest accelerator cards exposed to this instance.'}}, 'description': 'A specification of the type and number of accelerator cards attached to the instance.'}, 'ReservationParams': {'type': 'object', 'properties': {'resourceManagerTags': {'type': 'object', 'writeOnly': True, 'description': 'Input only. Resource manager tags to be bound to the reservation. Tag keys and values have the same definition as resource manager tags <https://cloud.google.com/resource-manager/docs/tags/tags-overview>. Keys and values can be either in numeric format, such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in namespaced format such as `{org_id|project_id}/{tag_key_short_name}` and `{tag_value_short_name}`. The field is ignored (both PUT & PATCH) when empty.', 'additionalProperties': {'type': 'string'}}}, 'description': 'Additional reservation params.'}, 'UpcomingMaintenance': {'type': 'object', 'properties': {'type': {'enum': ['MULTIPLE', 'SCHEDULED', 'UNKNOWN_TYPE', 'UNSCHEDULED'], 'type': 'string', 'description': 'Defines the type of maintenance.', 'x-google-enum-descriptions': ['Multiple maintenance types in one window. This is only intended to be used for groups.', 'Scheduled maintenance (e.g. maintenance after uptime guarantee is complete).', 'No type specified. Do not use this value.', 'Unscheduled maintenance (e.g. emergency maintenance during uptime guarantee).']}, 'canReschedule': {'type': 'boolean', 'description': 'Indicates if the maintenance can be customer triggered.'}, 'windowEndTime': {'type': 'string', 'description': 'The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format.'}, 'windowStartTime': {'type': 'string', 'description': 'The current start time of the maintenance window. This timestamp value is in RFC3339 text format.'}, 'maintenanceStatus': {'enum': ['ONGOING', 'PENDING', 'UNKNOWN'], 'type': 'string', 'x-google-enum-descriptions': ['There is ongoing maintenance on this VM.', 'There is pending maintenance.', 'Unknown maintenance status. Do not use this value.']}, 'maintenanceReasons': {'type': 'array', 'items': {'enum': ['FAILURE_DISK', 'FAILURE_GPU', 'FAILURE_GPU_MULTIPLE_FAULTY_HOSTS_CUSTOMER_REPORTED', 'FAILURE_GPU_NVLINK_SWITCH_CUSTOMER_REPORTED', 'FAILURE_GPU_TEMPERATURE', 'FAILURE_GPU_XID', 'FAILURE_INFRA', 'FAILURE_INTERFACE', 'FAILURE_MEMORY', 'FAILURE_NETWORK', 'FAILURE_NVLINK', 'FAILURE_REDUNDANT_HARDWARE_FAULT', 'FAILURE_TPU', 'INFRASTRUCTURE_RELOCATION', 'MAINTENANCE_REASON_UNKNOWN', 'PLANNED_NETWORK_UPDATE', 'PLANNED_UPDATE'], 'type': 'string', 'x-google-enum-descriptions': ['Maintenance due to disk errors.', 'Maintenance due to GPU errors.', 'Maintenance due to customer reported multiple faulty hosts via R&R Subblock API.', 'Maintenance due to customer reported NVLink switch failure via R&R Subblock API.', 'Maintenance due to high GPU temperature.', 'Maintenance due to GPU xid failure.', 'Maintenance due to infrastructure errors.', 'Maintenance due to interface errors.', 'Maintenance due to memory errors.', 'Maintenance due to network errors.', 'Maintenance due to NVLink failure.', 'Maintenance due to redundant hardware fault.', 'Maintenance due to TPU errors.', 'Maintenance due to infrastructure relocation.', 'Unknown maintenance reason. Do not use this value.', 'Maintenance due to planned network update.', 'Maintenance due to planned update to the instance.']}, 'description': 'The reasons for the maintenance. Only valid for vms.'}, 'latestWindowStartTime': {'type': 'string', 'description': 'The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format.'}, 'maintenanceOnShutdown': {'type': 'boolean', 'description': 'Indicates whether the UpcomingMaintenance will be triggered on VM shutdown.'}}, 'description': 'Upcoming Maintenance notification information.'}, 'AggregateReservation': {'type': 'object', 'properties': {'vmFamily': {'enum': ['VM_FAMILY_CLOUD_TPU_DEVICE_CT3', 'VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L', 'VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP', 'VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E', 'VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P', 'VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P', 'VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P', 'VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X'], 'type': 'string', 'description': 'The VM family that all instances scheduled against this reservation must belong to.', 'x-google-enum-descriptions': ['', '', '', '', '', '', '', '']}, 'workloadType': {'enum': ['BATCH', 'SERVING', 'UNSPECIFIED'], 'type': 'string', 'description': 'The workload type of the instances that will target this reservation.', 'x-google-enum-descriptions': ['Reserved resources will be optimized for BATCH workloads, such as ML training.', 'Reserved resources will be optimized for SERVING workloads, such as ML inference.', '']}, 'inUseResources': {'type': 'array', 'items': {'$ref': '#/$defs/ReservedResourceInfo'}, 'readOnly': True, 'description': 'Output only. [Output only] List of resources currently in use.'}, 'reservedResources': {'type': 'array', 'items': {'$ref': '#/$defs/ReservedResourceInfo'}, 'description': 'List of reserved resources (CPUs, memory, accelerators).'}}, 'description': '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.'}, 'GroupMaintenanceInfo': {'type': 'object', 'properties': {'schedulingType': {'enum': ['GROUPED', 'GROUP_MAINTENANCE_TYPE_UNSPECIFIED', 'INDEPENDENT'], 'type': 'string', 'description': 'The type of maintenance for the reservation.', 'x-google-enum-descriptions': ['Maintenance on all reserved instances in the reservation is synchronized.', 'Unknown maintenance type.', 'Maintenance is not synchronized for this reservation. Instead, each instance has its own maintenance window.']}, 'maintenanceOngoingCount': {'type': 'integer', 'format': 'int32', 'description': 'Progress for ongoing maintenance for this group of VMs/hosts. Describes number of hosts in the block that have ongoing maintenance.'}, 'maintenancePendingCount': {'type': 'integer', 'format': 'int32', 'description': 'Progress for ongoing maintenance for this group of VMs/hosts. Describes number of hosts in the block that have pending maintenance.'}, 'upcomingGroupMaintenance': {'$ref': '#/$defs/UpcomingMaintenance', 'description': 'Maintenance information on this group of VMs.'}, 'instanceMaintenanceOngoingCount': {'type': 'integer', 'format': 'int32', 'description': 'Describes number of instances that have ongoing maintenance.'}, 'instanceMaintenancePendingCount': {'type': 'integer', 'format': 'int32', 'description': 'Describes number of instances that have pending maintenance.'}, 'subblockInfraMaintenanceOngoingCount': {'type': 'integer', 'format': 'int32', 'description': 'Describes number of subblock Infrastructure that has ongoing maintenance. Here, Subblock Infrastructure Maintenance pertains to upstream hardware contained in the Subblock that is necessary for a VM Family(e.g. NVLink Domains). Not all VM Families will support this field.'}, 'subblockInfraMaintenancePendingCount': {'type': 'integer', 'format': 'int32', 'description': 'Describes number of subblock Infrastructure that has pending maintenance. Here, Subblock Infrastructure Maintenance pertains to upstream hardware contained in the Subblock that is necessary for a VM Family (e.g. NVLink Domains). Not all VM Families will support this field.'}}, 'description': 'Maintenance Info for ReservationBlocks.'}, 'ReservedResourceInfo': {'type': 'object', 'properties': {'accelerator': {'$ref': '#/$defs/Accelerator', 'description': 'Properties of accelerator resources in this reservation.'}}}, 'SpecificSKUAllocation': {'type': 'object', 'properties': {'utilizations': {'type': 'object', 'description': 'Per service utilization breakdown. The Key is the Google Cloud managed service name.', 'additionalProperties': {'type': 'string', 'format': 'int64'}}, 'sourceInstanceTemplateId': {'type': 'string', 'description': 'ID of the instance template used to populate reservation properties.'}}, 'description': 'Contains Properties set for the reservation.'}, 'SpecificSKUReservation': {'type': 'object', 'properties': {'count': {'type': 'string', 'format': 'int64', 'description': 'Specifies the number of resources that are allocated.'}, 'inUseCount': {'type': 'string', 'format': 'int64', 'readOnly': True, 'description': 'Output only. [Output Only] Indicates how many instances are in use.'}, 'assuredCount': {'type': 'string', 'format': 'int64', 'readOnly': True, 'description': 'Output only. [Output Only] Indicates how many instances are actually usable currently.'}, 'instanceProperties': {'$ref': '#/$defs/ReservedInstanceProperties', 'description': 'The instance properties for the reservation.'}, 'sourceInstanceTemplate': {'type': 'string', 'description': '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: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate '}}, 'description': 'This reservation type allows to pre allocate specific instance configuration.'}, 'ReservationSharingPolicy': {'type': 'object', 'properties': {'serviceShareType': {'enum': ['ALLOW_ALL', 'DISALLOW_ALL', 'SERVICE_SHARE_TYPE_UNSPECIFIED'], 'type': 'string', 'description': 'Sharing config for all Google Cloud services.', 'x-google-enum-descriptions': ['Allow all Google Cloud managed services to share reservations.', '[Default] Disallow sharing with all Google Cloud services.', '']}}}, 'AdvancedDeploymentControl': {'type': 'object', 'properties': {'reservationOperationalMode': {'enum': ['ALL_CAPACITY', 'HIGHLY_AVAILABLE_CAPACITY', 'RESERVATION_OPERATIONAL_MODE_UNSPECIFIED'], 'type': 'string', 'description': 'Indicates chosen reservation operational mode for the reservation.', 'x-google-enum-descriptions': ['Google Cloud does not manage the failure of machines, but provides additional capacity, which is not guaranteed to be available.', 'Google Cloud manages the failure of machines to provide high availability.', '']}}, 'description': 'Advance control for cluster management, applicable only to DENSE deployment type reservations.'}, 'ReservedInstanceProperties': {'type': 'object', 'properties': {'localSsds': {'type': 'array', 'items': {'$ref': '#/$defs/ReservedDisk'}, 'description': 'Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.'}, 'machineType': {'type': 'string', 'description': '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.'}, 'locationHint': {'type': 'string', 'description': '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.'}, 'minCpuPlatform': {'type': 'string', 'description': 'Minimum cpu platform the reservation.'}, 'guestAccelerators': {'type': 'array', 'items': {'$ref': '#/$defs/AcceleratorConfig'}, 'description': 'Specifies accelerator type and count.'}}, 'description': 'Properties of the SKU instances being reserved. Next ID: 10'}}, 'properties': {'id': {'type': 'string', 'format': 'uint64', 'readOnly': True, 'description': 'Output only. [Output Only] The unique identifier for the resource. This identifier is defined by the server.'}, 'kind': {'type': 'string', 'default': 'compute#reservation', 'readOnly': True, 'description': 'Output only. [Output Only] Type of the resource. Always compute#reservations for reservations.'}, 'name': {'type': 'string', 'pattern': '[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?', 'description': '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 <https://www.ietf.org/rfc/rfc1035.txt>. 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.'}, 'zone': {'type': 'string', 'description': 'Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment.'}, 'params': {'$ref': '#/$defs/ReservationParams', 'writeOnly': True, 'description': 'Input only. Additional params passed with the request, but not persisted as part of resource payload.'}, 'status': {'enum': ['CREATING', 'DELETING', 'INVALID', 'READY', 'UPDATING'], 'type': 'string', 'readOnly': True, 'description': 'Output only. [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. ', 'x-google-enum-descriptions': ['Reservation resources are being allocated.', 'Reservation deletion is in progress.', '', 'Reservation resources have been allocated, and the reservation is ready for use.', 'Reservation update is in progress.']}, 'selfLink': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] Server-defined fully-qualified URL for this resource.'}, 'commitment': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment.'}, 'description': {'type': 'string', 'description': 'An optional description of this resource. Provide this property when you create the resource.'}, 'deleteAtTime': {'type': 'string', 'description': 'Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format. Only one of this field or deleteAfterDuration should be set.'}, 'satisfiesPzs': {'type': 'boolean', 'readOnly': True, 'description': 'Output only. [Output Only] Reserved for future use.'}, 'shareSettings': {'$ref': '#/$defs/ShareSettings', 'description': '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. <https://cloud.google.com/compute/docs/instances/reservations-shared#creating_a_shared_reservation>'}, 'deploymentType': {'enum': ['DENSE', 'DEPLOYMENT_TYPE_UNSPECIFIED'], 'type': 'string', 'description': 'Specifies the deployment strategy for this reservation.', 'x-google-enum-descriptions': ['The reserved capacity is made up of densely deployed reservation blocks.', '']}, 'protectionTier': {'enum': ['CAPACITY_OPTIMIZED', 'PROTECTION_TIER_UNSPECIFIED', 'STANDARD'], 'type': 'string', 'description': 'Protection tier for the workload which specifies the workload expectations in the event of infrastructure failures at data center (e.g. power and/or cooling failures).', 'x-google-enum-descriptions': ['CAPACITY_OPTIMIZED capacity leverages redundancies (e.g. power, cooling) at the data center during normal operating conditions. In the event of infrastructure failures at data center (e.g. power and/or cooling failures), this workload may be disrupted. As a consequence, it has a weaker availability SLO than STANDARD.', 'Unspecified protection tier.', 'STANDARD protection for workload that should be protected by redundancies (e.g. power, cooling) at the data center level. In the event of infrastructure failures at data center (e.g. power and/or cooling failures), this workload is expected to continue as normal using the redundancies.']}, 'resourceStatus': {'$ref': '#/$defs/ResourceStatus', 'readOnly': True, 'description': 'Output only. [Output Only] Status information for Reservation resource.'}, 'schedulingType': {'enum': ['GROUPED', 'GROUP_MAINTENANCE_TYPE_UNSPECIFIED', 'INDEPENDENT'], 'type': 'string', 'description': 'The type of maintenance for the reservation.', 'x-google-enum-descriptions': ['Maintenance on all reserved instances in the reservation is synchronized.', 'Unknown maintenance type.', 'Maintenance is not synchronized for this reservation. Instead, each instance has its own maintenance window.']}, 'resourceMetadata': {'$ref': '#/$defs/ResourceMetadata', 'readOnly': True, 'description': 'Output only. [Output Only] Contains standard resource metadata for an Allocation resource. It is populated for each instance of the Allocation resource, and includes the api_version the instance was retrieved through, and its canonical resource_type name.'}, 'resourcePolicies': {'type': 'object', 'description': '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.', 'additionalProperties': {'type': 'string'}}, 'creationTimestamp': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] Creation timestamp in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format.'}, 'linkedCommitments': {'type': 'array', 'items': {'type': 'string'}, 'readOnly': True, 'description': 'Output only. [Output Only] Full or partial URL to parent commitments. This field displays for reservations that are tied to multiple commitments.'}, 'deleteAfterDuration': {'$ref': '#/$defs/Duration', 'description': 'Duration time relative to reservation creation when Compute Engine will automatically delete this resource. Only one of this field or deleteAtTime should be set.'}, 'specificReservation': {'$ref': '#/$defs/SpecificSKUReservation', 'description': 'Reservation for instances with specific machine shapes. Only one of this field or aggregateReservation should be set.'}, 'aggregateReservation': {'$ref': '#/$defs/AggregateReservation', 'description': 'Reservation for aggregated resources, providing shape flexibility. Only one of this field or specificReservation should be set.'}, 'earlyAccessMaintenance': {'enum': ['NO_EARLY_ACCESS', 'WAVE1', 'WAVE2'], 'type': 'string', 'description': 'Indicates the early access maintenance for the reservation. If this field is absent or set to NO_EARLY_ACCESS, the reservation is not enrolled in early access maintenance and the standard notice applies.', 'x-google-enum-descriptions': ['No early access.', 'Wave 1: Fastest notification period', 'Wave 2: Medium notification period']}, 'confidentialComputeType': {'enum': ['CONFIDENTIAL_COMPUTE_TYPE_BMSAI', 'CONFIDENTIAL_COMPUTE_TYPE_TDX', 'CONFIDENTIAL_COMPUTE_TYPE_UNSPECIFIED'], 'type': 'string', 'x-google-enum-descriptions': ['Bare Metal Secure AI.', 'Intel Trust Domain Extensions.', '']}, 'reservationSharingPolicy': {'$ref': '#/$defs/ReservationSharingPolicy', 'description': 'Specify the reservation sharing policy. If unspecified, the reservation will not be shared with Google Cloud managed services.'}, 'advancedDeploymentControl': {'$ref': '#/$defs/AdvancedDeploymentControl', 'description': 'Advanced control for cluster management, applicable only to DENSE deployment type reservations.'}, 'enableEmergentMaintenance': {'type': 'boolean', 'description': 'Indicates whether Compute Engine allows unplanned maintenance for your VMs; for example, to fix hardware errors.'}, 'specificReservationRequired': {'type': 'boolean', 'description': '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.'}}, 'description': '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 </compute/docs/instances/reserving-zonal-resources>.'}
get_zone_operation
Get details of a zone operation, including its id, name, status, creation timestamp, error, warning, HTTP error message and HTTP error status code. Requires project, zone, and operation name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The operation name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the operation.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for getting zone operation.'}
Output schema
{'type': 'object', '$defs': {'Help': {'type': 'object', 'properties': {'links': {'type': 'array', 'items': {'$ref': '#/$defs/Link'}, 'description': 'URL(s) pointing to additional information on handling the current error.'}}, 'description': "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit."}, 'Link': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'The URL of the link.'}, 'description': {'type': 'string', 'description': 'Describes what the link offers.'}}, 'description': 'Describes a URL link.'}, 'ErrorInfo': {'type': 'object', 'properties': {'domain': {'type': 'string', 'description': 'The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".'}, 'reason': {'type': 'string', 'description': 'The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.'}, 'metadatas': {'type': 'object', 'description': 'Additional structured details about this error. Keys must match a regular expression of `a-z+` but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than `{"instanceLimit": "100/request"}`, should be returned as, `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of instances that can be created in a single (batch) request.', 'additionalProperties': {'type': 'string'}}}, 'description': 'Describes the cause of the error with structured details. Example of an error when contacting the "pubsub.googleapis.com" API when it is not enabled: { "reason": "API_DISABLED" "domain": "googleapis.com" "metadata": { "resource": "projects/123", "service": "pubsub.googleapis.com" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata": { "availableRegions": "us-central1,us-east2" } }'}, 'LocalizedMessage': {'type': 'object', 'properties': {'locale': {'type': 'string', 'description': 'The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"'}, 'message': {'type': 'string', 'description': 'The localized error message in the above locale.'}}, 'description': 'Provides a localized error message that is safe to return to the user which can be attached to an RPC error.'}, 'QuotaExceededInfo': {'type': 'object', 'properties': {'limit': {'type': 'number', 'format': 'double', 'description': "Current effective quota limit. The limit's unit depends on the quota type or metric."}, 'limitName': {'type': 'string', 'description': 'The name of the quota limit.'}, 'dimensions': {'type': 'object', 'description': 'The map holding related quota dimensions.', 'additionalProperties': {'type': 'string'}}, 'metricName': {'type': 'string', 'description': 'The Compute Engine quota metric name.'}, 'futureLimit': {'type': 'number', 'format': 'double', 'description': "Future quota limit being rolled out. The limit's unit depends on the quota type or metric."}, 'rolloutStatus': {'enum': ['IN_PROGRESS', 'ROLLOUT_STATUS_UNSPECIFIED'], 'type': 'string', 'description': 'Rollout status of the future quota limit.', 'x-google-enum-descriptions': ['IN_PROGRESS - A rollout is in process which will change the limit value to future limit.', 'ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default value.']}}, 'description': 'Additional details for quota exceeded error for resource quota.'}}, 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the operation.'}, 'name': {'type': 'string', 'description': 'Name of the operation.'}, 'error': {'type': 'object', 'properties': {'errors': {'type': 'array', 'items': {'type': 'object', 'properties': {'code': {'type': 'string', 'description': '[Output Only] The error type identifier for this error.'}, 'message': {'type': 'string', 'description': '[Output Only] An optional, human-readable error message.'}, 'location': {'type': 'string', 'description': '[Output Only] Indicates the field in the request that caused the error. This property is optional.'}, 'errorDetails': {'type': 'array', 'items': {'type': 'object', 'properties': {'help': {'$ref': '#/$defs/Help', 'description': 'Links and information to help the user resolve the error. Only one of the following fields should be set: this field, errorInfo, quotaInfo, localizedMessage.'}, 'errorInfo': {'$ref': '#/$defs/ErrorInfo', 'description': 'Error information containing structured domain, reason, and metadata. Only one of the following fields should be set: this field, quotaInfo, help, localizedMessage.'}, 'quotaInfo': {'$ref': '#/$defs/QuotaExceededInfo', 'description': 'Details about quota limits and metrics when a quota is exceeded. Only one of the following fields should be set: this field, errorInfo, help, localizedMessage.'}, 'localizedMessage': {'$ref': '#/$defs/LocalizedMessage', 'description': 'A localized human-readable error message intended for end users. Only one of the following fields should be set: this field, errorInfo, quotaInfo, help.'}}, 'description': 'Container for structured error details providing additional context specific to the encountered error code.'}, 'description': '[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.'}}, 'description': 'Represents a single error encountered during the processing of an operation.'}, 'description': '[Output Only] The array of errors encountered while processing this operation.'}}, 'description': 'Errors encountered during the operation execution.'}, 'status': {'enum': ['DONE', 'PENDING', 'RUNNING'], 'type': 'string', 'description': 'The status of the operation.', 'x-google-enum-descriptions': ['The operation has completed processing successfully or with an error.', 'The operation is waiting to be processed.', 'The operation is actively being processed.']}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'properties': {'code': {'enum': ['CLEANUP_FAILED', 'DEPRECATED_RESOURCE_USED', 'DEPRECATED_TYPE_USED', 'DISK_SIZE_LARGER_THAN_IMAGE_SIZE', 'EXPERIMENTAL_TYPE_USED', 'EXTERNAL_API_WARNING', 'FIELD_VALUE_OVERRIDEN', 'INJECTED_KERNELS_DEPRECATED', 'INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB', 'LARGE_DEPLOYMENT_WARNING', 'LIST_OVERHEAD_QUOTA_EXCEED', 'MISSING_TYPE_DEPENDENCY', 'NEXT_HOP_ADDRESS_NOT_ASSIGNED', 'NEXT_HOP_CANNOT_IP_FORWARD', 'NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE', 'NEXT_HOP_INSTANCE_NOT_FOUND', 'NEXT_HOP_INSTANCE_NOT_ON_NETWORK', 'NEXT_HOP_NOT_RUNNING', 'NOT_CRITICAL_ERROR', 'NO_RESULTS_ON_PAGE', 'PARTIAL_SUCCESS', 'QUOTA_INFO_UNAVAILABLE', 'REQUIRED_TOS_AGREEMENT', 'RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING', 'RESOURCE_NOT_DELETED', 'SCHEMA_VALIDATION_IGNORED', 'SINGLE_INSTANCE_PROPERTY_TEMPLATE', 'UNDECLARED_PROPERTIES', 'UNREACHABLE'], 'type': 'string', 'description': '[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.', 'x-google-enum-deprecated': [False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Warning about failed cleanup of transient changes made by a failed operation.', 'A link to a deprecated resource was created.', 'When deploying and at least one of the resources has a type marked as deprecated', 'The user created a boot disk that is larger than image size.', 'When deploying and at least one of the resources has a type marked as experimental', 'Warning that is present in an external api call', 'Warning that value of a field has been overridden. Deprecated unused field.', 'The operation involved use of an injected kernel, which is deprecated.', 'A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.', 'When deploying a deployment with a exceedingly large number of resources', "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", 'A resource depends on a missing type', "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", 'Error which is not critical. We decided to continue the process despite the mentioned error.', 'No results are present on a particular list page.', 'Success is reported, but some results may be missing due to errors', 'Quota information is not available to client requests (e.g: regions.list).', 'The user attempted to use a resource that requires a TOS they have not accepted.', 'Warning that a resource is in use.', 'One or more of the resources set to auto-delete could not be deleted because they were in use.', 'When a resource schema validation is ignored.', 'Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.', 'When undeclared properties in the schema are present', 'A given scope cannot be reached.']}, 'data': {'type': 'array', 'items': {'type': 'object', 'properties': {'key': {'type': 'string', 'description': '[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).'}, 'value': {'type': 'string', 'description': '[Output Only] A warning data value corresponding to the key.'}}}, 'description': '[Output Only] Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }] '}, 'message': {'type': 'string', 'description': '[Output Only] A human-readable description of the warning code.'}}}, 'description': 'Warnings encountered during the operation execution.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the operation.'}, 'httpErrorMessage': {'type': 'string', 'description': 'If the operation fails, this field contains the HTTP error message that corresponds to the HTTP error code generated for the audit log.'}, 'httpErrorStatusCode': {'type': 'integer', 'format': 'int32', 'description': 'If the operation fails, this field contains the HTTP error status code that corresponds to the HTTP error message generated for the audit log.'}}, 'description': 'Represents an operation.'}
list_accelerator_types
Lists the available Google Compute Engine accelerator types. Requires project and zone as input. Returns accelerator types, including id, creation timestamp, name, description, deprecated, zone, and maximum cards per instance.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone'], 'properties': {'zone': {'type': 'string', 'description': 'Required. The zone of the accelerator types.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for listing accelerator types.'}
Output schema
{'type': 'object', '$defs': {'AcceleratorType': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': '[Output Only] The unique identifier for the resource. This identifier is defined by the server.'}, 'kind': {'type': 'string', 'default': 'compute#acceleratorType', 'readOnly': True, 'description': 'Output only. [Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.'}, 'name': {'type': 'string', 'pattern': '[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?', 'description': '[Output Only] Name of the resource.'}, 'zone': {'type': 'string', 'description': '[Output Only] The name of the zone where the accelerator type resides, such as us-central1-a. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.'}, 'selfLink': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] Server-defined, fully qualified URL for this resource.'}, 'deprecated': {'$ref': '#/$defs/DeprecationStatus', 'description': '[Output Only] The deprecation status associated with this accelerator type.'}, 'description': {'type': 'string', 'description': '[Output Only] An optional textual description of the resource.'}, 'resourceMetadata': {'$ref': '#/$defs/ResourceMetadata', 'readOnly': True, 'description': 'Output only. Contains standard resource metadata for an AcceleratorType resource. It is populated for each instance of the AcceleratorType resource, and includes the api_version the instance was retrieved through, and its canonical resource_type name.'}, 'creationTimestamp': {'type': 'string', 'description': '[Output Only] Creation timestamp in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format.'}, 'maximumCardsPerInstance': {'type': 'integer', 'format': 'int32', 'description': '[Output Only] Maximum number of accelerator cards allowed per instance.'}}, 'description': 'Represents an Accelerator Type resource. Google Cloud Platform provides graphics processing units (accelerators) that you can add to VM instances to improve or accelerate performance when working with intensive workloads. For more information, read GPUs on Compute Engine </compute/docs/gpus/>.'}, 'ResourceMetadata': {'type': 'object', 'properties': {'apiVersion': {'type': 'string', 'description': 'The version of the API interface that this resource was retrieved through. For example, `"2025-01-01"` or `"2025-01-01-preview"`.'}, 'resourceType': {'type': 'string', 'description': 'The canonical resource type name in the format of a resource type as defined by [AIP-123](https://google.aip.dev/123). For example, `"compute.googleapis.com/Instance"`.'}}, 'description': 'Standardized resource metadata common to all compute resources.'}, 'DeprecationStatus': {'type': 'object', 'properties': {'state': {'enum': ['ACTIVE', 'DELETED', 'DEPRECATED', 'OBSOLETE'], 'type': 'string', 'description': 'The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.', 'x-google-enum-descriptions': ['', '', '', '']}, 'deleted': {'type': 'string', 'description': 'An optional RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.'}, 'obsolete': {'type': 'string', 'description': 'An optional RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.'}, 'deprecated': {'type': 'string', 'description': 'An optional RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.'}, 'replacement': {'type': 'string', 'description': 'The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.'}}, 'description': 'Deprecation status for a public resource.'}}, 'properties': {'acceleratorTypes': {'type': 'array', 'items': {'$ref': '#/$defs/AcceleratorType'}, 'description': 'The list of accelerator types.'}}, 'description': 'Response message for listing accelerator types.'}
list_commitment_reservations
Lists reservations for a Compute Engine Commitment. Returns reservation details including name, ID, status, creation timestamp, specific reservation properties like machine type, guest accelerators and local SSDs, aggregate reservation properties like VM family and reserved resources, commitment and linked commitments, sharing settings, and resource status. Requires project, region, and commitment name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'region', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. Name of the commitment to look up reservations for.', 'x-google-identifier': True}, 'region': {'type': 'string', 'description': 'Required. The region of the commitment.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for listing reservations for a region commitment.'}
Output schema
{'type': 'object', '$defs': {'Duration': {'type': 'object', 'properties': {'nanos': {'type': 'integer', 'format': 'int32', 'description': "Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive."}, 'seconds': {'type': 'string', 'format': 'int64', 'description': 'Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years'}}, 'description': 'A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years.'}, 'HealthInfo': {'type': 'object', 'properties': {'healthStatus': {'enum': ['DEGRADED', 'HEALTHY', 'HEALTH_STATUS_UNSPECIFIED'], 'type': 'string', 'description': 'The health status of the reservation.', 'x-google-enum-descriptions': ['The reservation is degraded.', 'The reservation is healthy.', 'The health status of the reservation is unspecified.']}, 'healthyBlockCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of reservation blocks that are healthy.'}, 'degradedBlockCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of reservation blocks that are degraded.'}}, 'description': 'Health information for the reservation.'}, 'Accelerator': {'type': 'object', 'properties': {'acceleratorType': {'type': 'string', 'description': 'Full or partial URL to accelerator type. e.g. "projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l"'}, 'acceleratorCount': {'type': 'integer', 'format': 'int32', 'description': 'Number of accelerators of specified type.'}}}, 'Reservation': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'readOnly': True, 'description': 'Output only. [Output Only] The unique identifier for the resource. This identifier is defined by the server.'}, 'kind': {'type': 'string', 'default': 'compute#reservation', 'readOnly': True, 'description': 'Output only. [Output Only] Type of the resource. Always compute#reservations for reservations.'}, 'name': {'type': 'string', 'pattern': '[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?', 'description': '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 <https://www.ietf.org/rfc/rfc1035.txt>. 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.'}, 'zone': {'type': 'string', 'description': 'Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment.'}, 'params': {'$ref': '#/$defs/ReservationParams', 'writeOnly': True, 'description': 'Input only. Additional params passed with the request, but not persisted as part of resource payload.'}, 'status': {'enum': ['CREATING', 'DELETING', 'INVALID', 'READY', 'UPDATING'], 'type': 'string', 'readOnly': True, 'description': 'Output only. [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. ', 'x-google-enum-descriptions': ['Reservation resources are being allocated.', 'Reservation deletion is in progress.', '', 'Reservation resources have been allocated, and the reservation is ready for use.', 'Reservation update is in progress.']}, 'selfLink': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] Server-defined fully-qualified URL for this resource.'}, 'commitment': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment.'}, 'description': {'type': 'string', 'description': 'An optional description of this resource. Provide this property when you create the resource.'}, 'deleteAtTime': {'type': 'string', 'description': 'Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format. Only one of this field or deleteAfterDuration should be set.'}, 'satisfiesPzs': {'type': 'boolean', 'readOnly': True, 'description': 'Output only. [Output Only] Reserved for future use.'}, 'shareSettings': {'$ref': '#/$defs/ShareSettings', 'description': '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. <https://cloud.google.com/compute/docs/instances/reservations-shared#creating_a_shared_reservation>'}, 'deploymentType': {'enum': ['DENSE', 'DEPLOYMENT_TYPE_UNSPECIFIED'], 'type': 'string', 'description': 'Specifies the deployment strategy for this reservation.', 'x-google-enum-descriptions': ['The reserved capacity is made up of densely deployed reservation blocks.', '']}, 'protectionTier': {'enum': ['CAPACITY_OPTIMIZED', 'PROTECTION_TIER_UNSPECIFIED', 'STANDARD'], 'type': 'string', 'description': 'Protection tier for the workload which specifies the workload expectations in the event of infrastructure failures at data center (e.g. power and/or cooling failures).', 'x-google-enum-descriptions': ['CAPACITY_OPTIMIZED capacity leverages redundancies (e.g. power, cooling) at the data center during normal operating conditions. In the event of infrastructure failures at data center (e.g. power and/or cooling failures), this workload may be disrupted. As a consequence, it has a weaker availability SLO than STANDARD.', 'Unspecified protection tier.', 'STANDARD protection for workload that should be protected by redundancies (e.g. power, cooling) at the data center level. In the event of infrastructure failures at data center (e.g. power and/or cooling failures), this workload is expected to continue as normal using the redundancies.']}, 'resourceStatus': {'$ref': '#/$defs/ResourceStatus', 'readOnly': True, 'description': 'Output only. [Output Only] Status information for Reservation resource.'}, 'schedulingType': {'enum': ['GROUPED', 'GROUP_MAINTENANCE_TYPE_UNSPECIFIED', 'INDEPENDENT'], 'type': 'string', 'description': 'The type of maintenance for the reservation.', 'x-google-enum-descriptions': ['Maintenance on all reserved instances in the reservation is synchronized.', 'Unknown maintenance type.', 'Maintenance is not synchronized for this reservation. Instead, each instance has its own maintenance window.']}, 'resourceMetadata': {'$ref': '#/$defs/ResourceMetadata', 'readOnly': True, 'description': 'Output only. [Output Only] Contains standard resource metadata for an Allocation resource. It is populated for each instance of the Allocation resource, and includes the api_version the instance was retrieved through, and its canonical resource_type name.'}, 'resourcePolicies': {'type': 'object', 'description': '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.', 'additionalProperties': {'type': 'string'}}, 'creationTimestamp': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] Creation timestamp in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format.'}, 'linkedCommitments': {'type': 'array', 'items': {'type': 'string'}, 'readOnly': True, 'description': 'Output only. [Output Only] Full or partial URL to parent commitments. This field displays for reservations that are tied to multiple commitments.'}, 'deleteAfterDuration': {'$ref': '#/$defs/Duration', 'description': 'Duration time relative to reservation creation when Compute Engine will automatically delete this resource. Only one of this field or deleteAtTime should be set.'}, 'specificReservation': {'$ref': '#/$defs/SpecificSKUReservation', 'description': 'Reservation for instances with specific machine shapes. Only one of this field or aggregateReservation should be set.'}, 'aggregateReservation': {'$ref': '#/$defs/AggregateReservation', 'description': 'Reservation for aggregated resources, providing shape flexibility. Only one of this field or specificReservation should be set.'}, 'earlyAccessMaintenance': {'enum': ['NO_EARLY_ACCESS', 'WAVE1', 'WAVE2'], 'type': 'string', 'description': 'Indicates the early access maintenance for the reservation. If this field is absent or set to NO_EARLY_ACCESS, the reservation is not enrolled in early access maintenance and the standard notice applies.', 'x-google-enum-descriptions': ['No early access.', 'Wave 1: Fastest notification period', 'Wave 2: Medium notification period']}, 'confidentialComputeType': {'enum': ['CONFIDENTIAL_COMPUTE_TYPE_BMSAI', 'CONFIDENTIAL_COMPUTE_TYPE_TDX', 'CONFIDENTIAL_COMPUTE_TYPE_UNSPECIFIED'], 'type': 'string', 'x-google-enum-descriptions': ['Bare Metal Secure AI.', 'Intel Trust Domain Extensions.', '']}, 'reservationSharingPolicy': {'$ref': '#/$defs/ReservationSharingPolicy', 'description': 'Specify the reservation sharing policy. If unspecified, the reservation will not be shared with Google Cloud managed services.'}, 'advancedDeploymentControl': {'$ref': '#/$defs/AdvancedDeploymentControl', 'description': 'Advanced control for cluster management, applicable only to DENSE deployment type reservations.'}, 'enableEmergentMaintenance': {'type': 'boolean', 'description': 'Indicates whether Compute Engine allows unplanned maintenance for your VMs; for example, to fix hardware errors.'}, 'specificReservationRequired': {'type': 'boolean', 'description': '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.'}}, 'description': '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 </compute/docs/instances/reserving-zonal-resources>.'}, 'ReservedDisk': {'type': 'object', 'properties': {'interface': {'enum': ['NVME', 'SCSI'], 'type': 'string', 'description': '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 </compute/docs/disks#localssds> .', 'x-google-enum-descriptions': ['', '']}, 'diskSizeGb': {'type': 'string', 'format': 'int64', 'description': 'Specifies the size of the disk in base-2 GB.'}}}, 'ProjectConfig': {'type': 'object', 'properties': {'projectId': {'type': 'string', 'description': 'The project ID, should be same as the key of this project config in the parent map.'}}, 'description': 'Config for each project in the share settings.'}, 'ShareSettings': {'type': 'object', 'properties': {'shareType': {'enum': ['LOCAL', 'ORGANIZATION', 'SHARE_TYPE_UNSPECIFIED', 'SPECIFIC_PROJECTS'], 'type': 'string', 'description': 'Type of sharing for this shared-reservation', 'x-google-enum-descriptions': ['Default value.', 'Shared-reservation is open to entire Organization', 'Default value. This value is unused.', 'Shared-reservation is open to specific projects']}, 'projectMap': {'type': 'object', 'description': "A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS.", 'additionalProperties': {'$ref': '#/$defs/ProjectConfig'}}}, 'description': 'The share setting for reservations and sole tenancy node groups.'}, 'ResourceStatus': {'type': 'object', 'properties': {'healthInfo': {'$ref': '#/$defs/HealthInfo', 'description': '[Output only] Health information for the reservation.'}, 'machineCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of machines in the reservation. Only populated for families where machine to host ratio is not 1:1 such as TPU8i.'}, 'reservationBlockCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of reservation blocks associated with this reservation.'}, 'specificSkuAllocation': {'$ref': '#/$defs/SpecificSKUAllocation', 'description': 'Allocation Properties of this reservation.'}, 'reservationMaintenance': {'$ref': '#/$defs/GroupMaintenanceInfo', 'description': 'Maintenance information for this reservation'}}, 'description': '[Output Only] Contains output only fields.'}, 'ResourceMetadata': {'type': 'object', 'properties': {'apiVersion': {'type': 'string', 'description': 'The version of the API interface that this resource was retrieved through. For example, `"2025-01-01"` or `"2025-01-01-preview"`.'}, 'resourceType': {'type': 'string', 'description': 'The canonical resource type name in the format of a resource type as defined by [AIP-123](https://google.aip.dev/123). For example, `"compute.googleapis.com/Instance"`.'}}, 'description': 'Standardized resource metadata common to all compute resources.'}, 'AcceleratorConfig': {'type': 'object', 'properties': {'acceleratorType': {'type': 'string', 'description': 'Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine </compute/docs/gpus/#introduction> for a full list of accelerator types.'}, 'acceleratorCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of the guest accelerator cards exposed to this instance.'}}, 'description': 'A specification of the type and number of accelerator cards attached to the instance.'}, 'ReservationParams': {'type': 'object', 'properties': {'resourceManagerTags': {'type': 'object', 'writeOnly': True, 'description': 'Input only. Resource manager tags to be bound to the reservation. Tag keys and values have the same definition as resource manager tags <https://cloud.google.com/resource-manager/docs/tags/tags-overview>. Keys and values can be either in numeric format, such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in namespaced format such as `{org_id|project_id}/{tag_key_short_name}` and `{tag_value_short_name}`. The field is ignored (both PUT & PATCH) when empty.', 'additionalProperties': {'type': 'string'}}}, 'description': 'Additional reservation params.'}, 'UpcomingMaintenance': {'type': 'object', 'properties': {'type': {'enum': ['MULTIPLE', 'SCHEDULED', 'UNKNOWN_TYPE', 'UNSCHEDULED'], 'type': 'string', 'description': 'Defines the type of maintenance.', 'x-google-enum-descriptions': ['Multiple maintenance types in one window. This is only intended to be used for groups.', 'Scheduled maintenance (e.g. maintenance after uptime guarantee is complete).', 'No type specified. Do not use this value.', 'Unscheduled maintenance (e.g. emergency maintenance during uptime guarantee).']}, 'canReschedule': {'type': 'boolean', 'description': 'Indicates if the maintenance can be customer triggered.'}, 'windowEndTime': {'type': 'string', 'description': 'The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format.'}, 'windowStartTime': {'type': 'string', 'description': 'The current start time of the maintenance window. This timestamp value is in RFC3339 text format.'}, 'maintenanceStatus': {'enum': ['ONGOING', 'PENDING', 'UNKNOWN'], 'type': 'string', 'x-google-enum-descriptions': ['There is ongoing maintenance on this VM.', 'There is pending maintenance.', 'Unknown maintenance status. Do not use this value.']}, 'maintenanceReasons': {'type': 'array', 'items': {'enum': ['FAILURE_DISK', 'FAILURE_GPU', 'FAILURE_GPU_MULTIPLE_FAULTY_HOSTS_CUSTOMER_REPORTED', 'FAILURE_GPU_NVLINK_SWITCH_CUSTOMER_REPORTED', 'FAILURE_GPU_TEMPERATURE', 'FAILURE_GPU_XID', 'FAILURE_INFRA', 'FAILURE_INTERFACE', 'FAILURE_MEMORY', 'FAILURE_NETWORK', 'FAILURE_NVLINK', 'FAILURE_REDUNDANT_HARDWARE_FAULT', 'FAILURE_TPU', 'INFRASTRUCTURE_RELOCATION', 'MAINTENANCE_REASON_UNKNOWN', 'PLANNED_NETWORK_UPDATE', 'PLANNED_UPDATE'], 'type': 'string', 'x-google-enum-descriptions': ['Maintenance due to disk errors.', 'Maintenance due to GPU errors.', 'Maintenance due to customer reported multiple faulty hosts via R&R Subblock API.', 'Maintenance due to customer reported NVLink switch failure via R&R Subblock API.', 'Maintenance due to high GPU temperature.', 'Maintenance due to GPU xid failure.', 'Maintenance due to infrastructure errors.', 'Maintenance due to interface errors.', 'Maintenance due to memory errors.', 'Maintenance due to network errors.', 'Maintenance due to NVLink failure.', 'Maintenance due to redundant hardware fault.', 'Maintenance due to TPU errors.', 'Maintenance due to infrastructure relocation.', 'Unknown maintenance reason. Do not use this value.', 'Maintenance due to planned network update.', 'Maintenance due to planned update to the instance.']}, 'description': 'The reasons for the maintenance. Only valid for vms.'}, 'latestWindowStartTime': {'type': 'string', 'description': 'The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format.'}, 'maintenanceOnShutdown': {'type': 'boolean', 'description': 'Indicates whether the UpcomingMaintenance will be triggered on VM shutdown.'}}, 'description': 'Upcoming Maintenance notification information.'}, 'AggregateReservation': {'type': 'object', 'properties': {'vmFamily': {'enum': ['VM_FAMILY_CLOUD_TPU_DEVICE_CT3', 'VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L', 'VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP', 'VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E', 'VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P', 'VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P', 'VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P', 'VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X'], 'type': 'string', 'description': 'The VM family that all instances scheduled against this reservation must belong to.', 'x-google-enum-descriptions': ['', '', '', '', '', '', '', '']}, 'workloadType': {'enum': ['BATCH', 'SERVING', 'UNSPECIFIED'], 'type': 'string', 'description': 'The workload type of the instances that will target this reservation.', 'x-google-enum-descriptions': ['Reserved resources will be optimized for BATCH workloads, such as ML training.', 'Reserved resources will be optimized for SERVING workloads, such as ML inference.', '']}, 'inUseResources': {'type': 'array', 'items': {'$ref': '#/$defs/ReservedResourceInfo'}, 'readOnly': True, 'description': 'Output only. [Output only] List of resources currently in use.'}, 'reservedResources': {'type': 'array', 'items': {'$ref': '#/$defs/ReservedResourceInfo'}, 'description': 'List of reserved resources (CPUs, memory, accelerators).'}}, 'description': '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.'}, 'GroupMaintenanceInfo': {'type': 'object', 'properties': {'schedulingType': {'enum': ['GROUPED', 'GROUP_MAINTENANCE_TYPE_UNSPECIFIED', 'INDEPENDENT'], 'type': 'string', 'description': 'The type of maintenance for the reservation.', 'x-google-enum-descriptions': ['Maintenance on all reserved instances in the reservation is synchronized.', 'Unknown maintenance type.', 'Maintenance is not synchronized for this reservation. Instead, each instance has its own maintenance window.']}, 'maintenanceOngoingCount': {'type': 'integer', 'format': 'int32', 'description': 'Progress for ongoing maintenance for this group of VMs/hosts. Describes number of hosts in the block that have ongoing maintenance.'}, 'maintenancePendingCount': {'type': 'integer', 'format': 'int32', 'description': 'Progress for ongoing maintenance for this group of VMs/hosts. Describes number of hosts in the block that have pending maintenance.'}, 'upcomingGroupMaintenance': {'$ref': '#/$defs/UpcomingMaintenance', 'description': 'Maintenance information on this group of VMs.'}, 'instanceMaintenanceOngoingCount': {'type': 'integer', 'format': 'int32', 'description': 'Describes number of instances that have ongoing maintenance.'}, 'instanceMaintenancePendingCount': {'type': 'integer', 'format': 'int32', 'description': 'Describes number of instances that have pending maintenance.'}, 'subblockInfraMaintenanceOngoingCount': {'type': 'integer', 'format': 'int32', 'description': 'Describes number of subblock Infrastructure that has ongoing maintenance. Here, Subblock Infrastructure Maintenance pertains to upstream hardware contained in the Subblock that is necessary for a VM Family(e.g. NVLink Domains). Not all VM Families will support this field.'}, 'subblockInfraMaintenancePendingCount': {'type': 'integer', 'format': 'int32', 'description': 'Describes number of subblock Infrastructure that has pending maintenance. Here, Subblock Infrastructure Maintenance pertains to upstream hardware contained in the Subblock that is necessary for a VM Family (e.g. NVLink Domains). Not all VM Families will support this field.'}}, 'description': 'Maintenance Info for ReservationBlocks.'}, 'ReservedResourceInfo': {'type': 'object', 'properties': {'accelerator': {'$ref': '#/$defs/Accelerator', 'description': 'Properties of accelerator resources in this reservation.'}}}, 'SpecificSKUAllocation': {'type': 'object', 'properties': {'utilizations': {'type': 'object', 'description': 'Per service utilization breakdown. The Key is the Google Cloud managed service name.', 'additionalProperties': {'type': 'string', 'format': 'int64'}}, 'sourceInstanceTemplateId': {'type': 'string', 'description': 'ID of the instance template used to populate reservation properties.'}}, 'description': 'Contains Properties set for the reservation.'}, 'SpecificSKUReservation': {'type': 'object', 'properties': {'count': {'type': 'string', 'format': 'int64', 'description': 'Specifies the number of resources that are allocated.'}, 'inUseCount': {'type': 'string', 'format': 'int64', 'readOnly': True, 'description': 'Output only. [Output Only] Indicates how many instances are in use.'}, 'assuredCount': {'type': 'string', 'format': 'int64', 'readOnly': True, 'description': 'Output only. [Output Only] Indicates how many instances are actually usable currently.'}, 'instanceProperties': {'$ref': '#/$defs/ReservedInstanceProperties', 'description': 'The instance properties for the reservation.'}, 'sourceInstanceTemplate': {'type': 'string', 'description': '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: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate '}}, 'description': 'This reservation type allows to pre allocate specific instance configuration.'}, 'ReservationSharingPolicy': {'type': 'object', 'properties': {'serviceShareType': {'enum': ['ALLOW_ALL', 'DISALLOW_ALL', 'SERVICE_SHARE_TYPE_UNSPECIFIED'], 'type': 'string', 'description': 'Sharing config for all Google Cloud services.', 'x-google-enum-descriptions': ['Allow all Google Cloud managed services to share reservations.', '[Default] Disallow sharing with all Google Cloud services.', '']}}}, 'AdvancedDeploymentControl': {'type': 'object', 'properties': {'reservationOperationalMode': {'enum': ['ALL_CAPACITY', 'HIGHLY_AVAILABLE_CAPACITY', 'RESERVATION_OPERATIONAL_MODE_UNSPECIFIED'], 'type': 'string', 'description': 'Indicates chosen reservation operational mode for the reservation.', 'x-google-enum-descriptions': ['Google Cloud does not manage the failure of machines, but provides additional capacity, which is not guaranteed to be available.', 'Google Cloud manages the failure of machines to provide high availability.', '']}}, 'description': 'Advance control for cluster management, applicable only to DENSE deployment type reservations.'}, 'ReservedInstanceProperties': {'type': 'object', 'properties': {'localSsds': {'type': 'array', 'items': {'$ref': '#/$defs/ReservedDisk'}, 'description': 'Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.'}, 'machineType': {'type': 'string', 'description': '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.'}, 'locationHint': {'type': 'string', 'description': '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.'}, 'minCpuPlatform': {'type': 'string', 'description': 'Minimum cpu platform the reservation.'}, 'guestAccelerators': {'type': 'array', 'items': {'$ref': '#/$defs/AcceleratorConfig'}, 'description': 'Specifies accelerator type and count.'}}, 'description': 'Properties of the SKU instances being reserved. Next ID: 10'}}, 'properties': {'reservations': {'type': 'array', 'items': {'$ref': '#/$defs/Reservation'}, 'description': 'The list of reservations.'}}, 'description': 'Response message for listing reservations for a region commitment.'}
list_commitments
Lists Compute Engine Commitments in a region. Details for each commitment include name, ID, status, plan, type, resources, and creation, start and end timestamps. Requires project and region as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'region'], 'properties': {'region': {'type': 'string', 'description': 'Required. The region of the commitments.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The maximum number of commitments to return.'}, 'pageToken': {'type': 'string', 'description': 'Optional. A page token received from a previous call to list commitments.'}}, 'description': 'Request message for listing region commitments.'}
Output schema
{'type': 'object', '$defs': {'ResourceCommitment': {'type': 'object', 'properties': {'type': {'enum': ['ACCELERATOR', 'LOCAL_SSD', 'MEMORY', 'UNSPECIFIED', 'VCPU'], 'type': 'string', 'description': 'The type of hardware resource that you want to specify. You can specify any of the following values: - VCPU - MEMORY - LOCAL_SSD - ACCELERATOR Specify as a separate entry in the list for each individual resource type.', 'x-google-enum-descriptions': ['', '', '', '', '']}, 'amount': {'type': 'string', 'format': 'int64', 'description': 'The quantity of the hardware resource that you want to commit to purchasing (in a type-dependent unit). - For vCPUs, you must specify an integer value. - For memory, you specify the amount of MB that you want. The value you specify must be a multiple of 256 MB, with up to 6.5 GB of memory per every vCPU. - For GPUs, you must specify an integer value. - For Local SSD disks, you must specify the amount in GB. The size of a single Local SSD disk is 375 GB. '}, 'acceleratorType': {'type': 'string', 'description': 'Name of the accelerator type or GPU resource. Specify this field only when the type of hardware resource is ACCELERATOR.'}}, 'description': 'Commitment for a particular hardware resource (a commitment is composed of one or more of these).'}, 'CommitmentBasicInfo': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the commitment.'}, 'name': {'type': 'string', 'description': 'Name of the commitment.'}, 'plan': {'enum': ['INVALID', 'SIXTY_MONTH', 'THIRTY_SIX_MONTH', 'TWELVE_MONTH', 'TWENTY_FOUR_MONTH'], 'type': 'string', 'description': 'The plan of the commitment.', 'x-google-enum-descriptions': ['', '', '', '', '']}, 'type': {'enum': ['ACCELERATOR_OPTIMIZED', 'ACCELERATOR_OPTIMIZED_A3', 'ACCELERATOR_OPTIMIZED_A3_MEGA', 'ACCELERATOR_OPTIMIZED_A3_ULTRA', 'ACCELERATOR_OPTIMIZED_A4', 'ACCELERATOR_OPTIMIZED_A4X', 'ACCELERATOR_OPTIMIZED_A4X_MAX', 'ACCELERATOR_OPTIMIZED_A4X_METAL', 'ACCELERATOR_OPTIMIZED_A5X', 'CLOUD_TPU_LITE_DEVICE_CT4L', 'CLOUD_TPU_LITE_DEVICE_CT5L', 'CLOUD_TPU_LITE_POD_SLICE_CT5LP', 'CLOUD_TPU_POD_SLICE_CT4P', 'CLOUD_TPU_SLICE_CT5P', 'CLOUD_TPU_SLICE_CT6E', 'CLOUD_TPU_SLICE_CT6E_BATCH_OPTIMIZED', 'CLOUD_TPU_SLICE_TPU7', 'CLOUD_TPU_SLICE_TPU7X', 'CLOUD_TPU_SLICE_TPU7X_BATCH_OPTIMIZED', 'CLOUD_TPU_SLICE_TPU7_BATCH_OPTIMIZED', 'COMPUTE_OPTIMIZED', 'COMPUTE_OPTIMIZED_C2D', 'COMPUTE_OPTIMIZED_C3', 'COMPUTE_OPTIMIZED_C3A', 'COMPUTE_OPTIMIZED_C3D', 'COMPUTE_OPTIMIZED_H3', 'COMPUTE_OPTIMIZED_H4', 'COMPUTE_OPTIMIZED_H4D', 'COMPUTE_OPTIMIZED_H4D_3TB', 'GENERAL_PURPOSE', 'GENERAL_PURPOSE_C4', 'GENERAL_PURPOSE_C4A', 'GENERAL_PURPOSE_C4D', 'GENERAL_PURPOSE_E2', 'GENERAL_PURPOSE_E4A', 'GENERAL_PURPOSE_E5A', 'GENERAL_PURPOSE_N2', 'GENERAL_PURPOSE_N2D', 'GENERAL_PURPOSE_N3', 'GENERAL_PURPOSE_N4', 'GENERAL_PURPOSE_N4A', 'GENERAL_PURPOSE_N4D', 'GENERAL_PURPOSE_N5A', 'GENERAL_PURPOSE_N5D', 'GENERAL_PURPOSE_N5I', 'GENERAL_PURPOSE_T2A', 'GENERAL_PURPOSE_T2D', 'GRAPHICS_OPTIMIZED', 'GRAPHICS_OPTIMIZED_G4', 'GRAPHICS_OPTIMIZED_G4D', 'GRAPHICS_OPTIMIZED_G4_VGPU', 'MEMORY_OPTIMIZED', 'MEMORY_OPTIMIZED_M3', 'MEMORY_OPTIMIZED_M4', 'MEMORY_OPTIMIZED_M4N', 'MEMORY_OPTIMIZED_M4N_6TB', 'MEMORY_OPTIMIZED_M4_6TB', 'MEMORY_OPTIMIZED_REGIONAL_EXTENSION', 'MEMORY_OPTIMIZED_X4', 'MEMORY_OPTIMIZED_X4_1440_24T', 'MEMORY_OPTIMIZED_X4_16TB', 'MEMORY_OPTIMIZED_X4_1920_32T', 'MEMORY_OPTIMIZED_X4_24TB', 'MEMORY_OPTIMIZED_X4_32TB', 'MEMORY_OPTIMIZED_X4_480_6T', 'MEMORY_OPTIMIZED_X4_480_8T', 'MEMORY_OPTIMIZED_X4_960_12T', 'MEMORY_OPTIMIZED_X4_960_16T', 'MEMORY_OPTIMIZED_X5_1376_24T', 'MEMORY_OPTIMIZED_X5_1376_32T', 'MEMORY_OPTIMIZED_X5_2064_48T', 'MEMORY_OPTIMIZED_X5_2752_64T', 'MEMORY_OPTIMIZED_X5_688_12T', 'MEMORY_OPTIMIZED_X5_688_16T', 'NETWORK_OPTIMIZED_C4N', 'NETWORK_OPTIMIZED_U4C', 'NETWORK_OPTIMIZED_U4P', 'NETWORK_OPTIMIZED_U4S', 'STORAGE_OPTIMIZED_Z3', 'STORAGE_OPTIMIZED_Z4D', 'STORAGE_OPTIMIZED_Z4D4T', 'STORAGE_OPTIMIZED_Z4DH', 'STORAGE_OPTIMIZED_Z4DS', 'STORAGE_OPTIMIZED_Z4M', 'TYPE_UNSPECIFIED'], 'type': 'string', 'description': 'The type of the commitment.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, True, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'CUD bucket for COMPUTE_OPTIMIZED_H4D_3TB machines.', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'G4D is deprecated, use G4 instead.', '', '', '', '', '', '', '', '', '', 'CUD bucket for X4 machine with 1440 vCPUs and 24TB of memory.', '', 'CUD bucket for X4 machine with 1920 vCPUs and 32TB of memory.', '', '', 'CUD bucket for X4 machine with 480 vCPUs and 6TB of memory.', 'CUD bucket for X4 machine with 480 vCPUs and 8TB of memory.', 'CUD bucket for X4 machine with 960 vCPUs and 12TB of memory.', 'CUD bucket for X4 machine with 960 vCPUs and 16TB of memory.', 'CUD bucket for X5 machine with 1376 vCPUs and 24TB of memory.', 'CUD bucket for X5 machine with 1376 vCPUs and 32TB of memory.', 'CUD bucket for X5 machine with 2064 vCPUs and 48TB of memory.', 'CUD bucket for X5 machine with 2752 vCPUs and 64TB of memory.', 'CUD bucket for X5 machine with 688 vCPUs and 12TB of memory.', 'CUD bucket for X5 machine with 688 vCPUs and 16TB of memory.', 'CUD bucket for C4N (dual Diorite) machines.', 'CUD bucket for NETWORK_OPTIMIZED_U4C machines.', 'CUD bucket for NETWORK_OPTIMIZED_U4P machines.', 'CUD bucket for NETWORK_OPTIMIZED_U4S machines.', '', 'CUD bucket for Z4D machines.', 'CUD bucket for Z4D-4T machines.', 'CUD bucket for Z4DH machines.', 'CUD bucket for Z4DS machines.', 'CUD bucket for Z4M (bare metal) machines.', 'Note for internal users: When adding a new enum Type for v1, make sure to also add it in the comment for the `optional Type type` definition. This ensures that the public documentation displays the new enum Type.']}, 'status': {'enum': ['ACTIVE', 'CANCELED_EARLY_TERMINATION', 'CANCELED_MERGED', 'CANCELING', 'CANCELLED', 'CREATING', 'EXPIRED', 'NOT_YET_ACTIVE'], 'type': 'string', 'description': 'The status of the commitment.', 'x-google-enum-descriptions': ['', '', '', '', 'Deprecate CANCELED status. Will use separate status to differentiate cancel by mergeCud or manual cancellation.', '', '', '']}, 'endTime': {'type': 'string', 'format': 'date-time', 'description': 'End timestamp of the commitment.'}, 'resources': {'type': 'array', 'items': {'$ref': '#/$defs/ResourceCommitment'}, 'description': 'A list of all the hardware resources of the commitment.'}, 'startTime': {'type': 'string', 'format': 'date-time', 'description': 'Start timestamp of the commitment.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the commitment.'}}, 'description': 'Basic information about a commitment.'}}, 'properties': {'commitments': {'type': 'array', 'items': {'$ref': '#/$defs/CommitmentBasicInfo'}, 'description': 'The list of commitments.'}, 'nextPageToken': {'type': 'string', 'description': 'A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.'}}, 'description': 'Response message for listing region commitments.'}
list_disks
Lists Compute Engine disks. Details for each disk include name, ID, description, creation timestamp, size, type, status, last attach timestamp, and last detach timestamp. Requires project and zone as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone'], 'properties': {'zone': {'type': 'string', 'description': 'Required. The zone of the disks to list.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The maximum number of results per page that should be returned.'}, 'pageToken': {'type': 'string', 'description': 'Optional. The page token received from the previous call.'}}, 'description': 'Request message for listing disk basic info.'}
Output schema
{'type': 'object', '$defs': {'DiskBasicInfo': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the disk.'}, 'name': {'type': 'string', 'description': 'Name of the disk.'}, 'type': {'type': 'string', 'description': 'URL of the disk type resource.'}, 'sizeGb': {'type': 'string', 'format': 'int64', 'description': 'Size of the disk in GB.'}, 'status': {'enum': ['CREATING', 'DELETING', 'FAILED', 'READY', 'RESTORING', 'UNAVAILABLE'], 'type': 'string', 'description': 'The status of the disk.', 'x-google-enum-descriptions': ['Disk is provisioning', 'Disk is deleting.', 'Disk creation failed.', 'Disk is ready for use.', 'Source data is being copied into the disk.', 'Disk is currently unavailable and cannot be accessed, attached or detached.']}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the disk.'}, 'description': {'type': 'string', 'description': 'Description of the disk.'}, 'lastAttachTimestamp': {'type': 'string', 'format': 'date-time', 'description': 'Last attach timestamp of the disk.'}, 'lastDetachTimestamp': {'type': 'string', 'format': 'date-time', 'description': 'Last detach timestamp of the disk.'}}, 'description': 'Basic information about a disk.'}}, 'properties': {'disks': {'type': 'array', 'items': {'$ref': '#/$defs/DiskBasicInfo'}, 'description': 'The list of disk basic info.'}, 'nextPageToken': {'type': 'string', 'description': 'The page token to retrieve the next page of results.'}}, 'description': 'Response message for listing disk basic info.'}
list_images
Lists Compute Engine Images. Details for each image include name, ID, status, family, and creation timestamp. Requires project as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project'], 'properties': {'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The maximum number of images to return.'}, 'pageToken': {'type': 'string', 'description': 'Optional. A page token received from a previous call to list images.'}}, 'description': 'Request message for listing images basic info.'}
Output schema
{'type': 'object', '$defs': {'ImageBasicInfo': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the image.'}, 'name': {'type': 'string', 'description': 'Name of the image.'}, 'family': {'type': 'string', 'description': 'The family of the image.'}, 'status': {'enum': ['DELETING', 'FAILED', 'PENDING', 'READY'], 'type': 'string', 'description': 'The status of the image.', 'x-google-enum-descriptions': ['Image is deleting.', 'Image creation failed due to an error.', "Image hasn't been created as yet.", 'Image has been successfully created.']}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the image.'}}, 'description': 'Basic information about an image.'}}, 'properties': {'images': {'type': 'array', 'items': {'$ref': '#/$defs/ImageBasicInfo'}, 'description': 'The list of images.'}, 'nextPageToken': {'type': 'string', 'description': 'A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.'}}, 'description': 'Response message for listing images basic info.'}
list_instance_attached_disks
Lists the disks attached to a Compute Engine virtual machine (VM) instance. For each attached disk, the response includes details such as kind, type, mode, saved state, source, device name, index, boot, initialize parameters, auto delete, licenses,, interface, guest OS features, disk encryption key, disk size, shielded instance initial state, force attach, and architecture. Requires project, zone, and instance name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The instance name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the instance.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for listing instance attached disks.'}
Output schema
{'type': 'object', '$defs': {'AttachedDisk': {'type': 'object', 'properties': {'boot': {'type': 'boolean', 'description': 'Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.'}, 'kind': {'type': 'string', 'default': 'compute#attachedDisk', 'readOnly': True, 'description': 'Output only. [Output Only] Type of the resource. Always compute#attachedDisk for attached disks.'}, 'mode': {'enum': ['READ_ONLY', 'READ_WRITE'], 'type': 'string', 'description': 'The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.', 'x-google-enum-descriptions': ['Attaches this disk in read-only mode. Multiple virtual machines can use a disk in read-only mode at a time.', '*[Default]* Attaches this disk in read-write mode. Only one virtual machine at a time can be attached to a disk in read-write mode.']}, 'type': {'enum': ['PERSISTENT', 'SCRATCH'], 'type': 'string', 'description': 'Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.', 'x-google-enum-descriptions': ['', '']}, 'index': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number.'}, 'source': {'type': 'string', 'description': 'Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance boot disk, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk.'}, 'licenses': {'type': 'array', 'items': {'type': 'string'}, 'readOnly': True, 'description': 'Output only. [Output Only] Any valid publicly visible licenses.'}, 'interface': {'enum': ['NVME', 'SCSI'], 'type': 'string', 'description': 'Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks <https://cloud.google.com/compute/docs/disks/persistent-disks>.', 'x-google-enum-descriptions': ['', '']}, 'autoDelete': {'type': 'boolean', 'description': 'Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).'}, 'deviceName': {'type': 'string', 'description': 'Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.'}, 'diskSizeGb': {'type': 'string', 'format': 'int64', 'description': 'The size of the disk in GB.'}, 'savedState': {'enum': ['DISK_SAVED_STATE_UNSPECIFIED', 'PRESERVED'], 'type': 'string', 'readOnly': True, 'description': 'Output only. For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field is set to PRESERVED if the LocalSSD data has been saved to a persistent location by customer request. (see the discard_local_ssd option on Stop/Suspend). Read-only in the api.', 'x-google-enum-descriptions': ['*[Default]* Disk state has not been preserved.', 'Disk state has been preserved.']}, 'forceAttach': {'type': 'boolean', 'description': "[Input Only] Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error."}, 'architecture': {'enum': ['ARCHITECTURE_UNSPECIFIED', 'ARM64', 'X86_64'], 'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] The architecture of the attached disk. Valid values are ARM64 or X86_64.', 'x-google-enum-descriptions': ['Default value indicating Architecture is not set.', 'Machines with architecture ARM64', 'Machines with architecture X86_64']}, 'guestOsFeatures': {'type': 'array', 'items': {'$ref': '#/$defs/GuestOsFeature'}, 'description': 'A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features </compute/docs/images/create-delete-deprecate-private-images#guest-os-features> to see a list of available options.'}, 'initializeParams': {'$ref': '#/$defs/InitializeParams', 'description': '[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.'}, 'diskEncryptionKey': {'$ref': '#/$defs/CustomerEncryptionKey', 'description': 'Encrypts or decrypts a disk using a customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption>. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Note: Instance templates do not store customer-supplied encryption keys </compute/docs/disks/customer-supplied-encryption>, so you cannot use your own keys to encrypt disks in a managed instance group </compute/docs/instance-groups/>. You cannot create VMs that have disks with customer-supplied keys using the bulk insert method </compute/docs/reference/rest/v1/instances/bulkInsert>.'}, 'shieldedInstanceInitialState': {'$ref': '#/$defs/InitialStateConfig', 'readOnly': True, 'description': 'Output only. [Output Only] shielded vm initial state stored on disk'}}, 'description': 'An instance-attached disk resource.'}, 'GuestOsFeature': {'type': 'object', 'properties': {'type': {'enum': ['BARE_METAL_LINUX_COMPATIBLE', 'BMSAI_CAPABLE', 'CCA_CAPABLE', 'FEATURE_TYPE_UNSPECIFIED', 'GVNIC', 'IDPF', 'MULTI_IP_SUBNET', 'SECURE_BOOT', 'SEV_CAPABLE', 'SEV_LIVE_MIGRATABLE', 'SEV_LIVE_MIGRATABLE_V2', 'SEV_SNP_CAPABLE', 'SNP_SVSM_CAPABLE', 'SUSPEND_SAFE_FPR', 'TDX_CAPABLE', 'UEFI_COMPATIBLE', 'VIRTIO_SCSI_MULTIQUEUE', 'WINDOWS'], 'type': 'string', 'description': 'The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF - SNP_SVSM_CAPABLE - CCA_CAPABLE - SUSPEND_SAFE_FPR For more information, see Enabling guest operating system features </compute/docs/images/create-delete-deprecate-private-images#guest-os-features> .', 'x-google-enum-descriptions': ['', 'Indicates the guest OS is capable of Bare Metal Secure AI (BMSAI) confidential computing.', '', '', '', '', '', '', '', '', '', '', '', 'Indicates the guest OS is safe for free page reporting (FPR) during suspend.', '', '', '', '']}}, 'description': 'Guest OS features.'}, 'InitializeParams': {'type': 'object', 'properties': {'labels': {'type': 'object', 'description': 'Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks.', 'additionalProperties': {'type': 'string'}}, 'diskName': {'type': 'string', 'description': 'Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created.'}, 'diskType': {'type': 'string', 'description': "Specifies the disk type used for the boot disk or an additional data disk. For valid disk type values, see Supported types for Hyperdisk volumes </compute/docs/disks/add-hyperdisk#hd_disk_types> and Persistent Disk type variables </compute/docs/disks/add-persistent-disk#hd_disk_types>. When creating a single instance, you must provide either the full or partial URL of the disk type. For example, the following values are valid: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType When creating an instance template, instance flexibility policy, or when creating or updating an all-instances configuration, you specify the disk type without a URL, for example, hyperdisk-balanced. If you omit this field for a disk, the default disk type depends on the instance's machine series, as follows. - For first- and second-generation machine series like N1, N2, T2, and M1, the default disk type is Standard Persistent Disk (pd-standard). - For C3, C3D, and M3 the default is Balanced Persistent Disk ( pd-balanced). - For other third-generation machine series like A3, H3, Z3, all fourth-generation types like C4, N4, M4, and newer machine series, the default is Hyperdisk Balanced (hyperdisk-balanced). The disk type you specify must be compatible with the instance's machine series. For a list of machine series that support Persistent Disk, see Machine series support for Persistent Disk </compute/docs/disks/persistent-disks#pd-machine-series>. For a list of machine series that support Hyperdisk, see Machine series support for Hyperdisk </compute/docs/disks/hyperdisks#machine-type-support>."}, 'licenses': {'type': 'array', 'items': {'type': 'string'}, 'description': "A list of publicly visible licenses. Reserved for Google's use."}, 'diskSizeGb': {'type': 'string', 'format': 'int64', 'description': 'Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB.'}, 'description': {'type': 'string', 'description': 'An optional description. Provide this property when creating the disk.'}, 'sourceImage': {'type': 'string', 'description': 'The source image to create this disk. When creating a new instance boot disk, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required. To create a disk with one of the public operating system images </compute/docs/images/os-details>, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set.'}, 'storagePool': {'type': 'string', 'description': 'The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool '}, 'architecture': {'enum': ['ARCHITECTURE_UNSPECIFIED', 'ARM64', 'X86_64'], 'type': 'string', 'description': 'The architecture of the attached disk. Valid values are arm64 or x86_64.', 'x-google-enum-descriptions': ['Default value indicating Architecture is not set.', 'Machines with architecture ARM64', 'Machines with architecture X86_64']}, 'replicaZones': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone.'}, 'onUpdateAction': {'enum': ['RECREATE_DISK', 'RECREATE_DISK_IF_SOURCE_CHANGED', 'USE_EXISTING_DISK'], 'type': 'string', 'description': 'Specifies which action to take on instance update with this disk. Default is to use the existing disk.', 'x-google-enum-descriptions': ['Always recreate the disk.', 'Recreate the disk if source (image, snapshot) of this disk is different from source of existing disk.', 'Use the existing disk, this is the default behaviour.']}, 'sourceSnapshot': {'type': 'string', 'description': 'The source snapshot to create this disk. When creating a new instance boot disk, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. Note: You cannot create VMs in bulk using a snapshot as the source. Use an image instead when you create VMs using the bulk insert method </compute/docs/reference/rest/v1/instances/bulkInsert>.'}, 'provisionedIops': {'type': 'string', 'format': 'int64', 'description': 'Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation </compute/docs/disks/extreme-persistent-disk>.'}, 'resourcePolicies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name.'}, 'resourceManagerTags': {'type': 'object', 'writeOnly': True, 'description': 'Input only. Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags <https://cloud.google.com/resource-manager/docs/tags/tags-overview>. Keys and values can be either in numeric format, such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in namespaced format such as `{org_id|project_id}/{tag_key_short_name}` and `{tag_value_short_name}`. The field is ignored (both PUT & PATCH) when empty.', 'additionalProperties': {'type': 'string'}}, 'provisionedThroughput': {'type': 'string', 'format': 'int64', 'description': 'Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must greater than or equal to 1.'}, 'sourceImageEncryptionKey': {'$ref': '#/$defs/CustomerEncryptionKey', 'description': 'The customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption> of the source image. Required if the source image is protected by a customer-supplied encryption key. InstanceTemplate and InstancePropertiesPatch do not store customer-supplied encryption keys </compute/docs/disks/customer-supplied-encryption>, so you cannot create disks for instances in a managed instance group </compute/docs/instance-groups/> if the source images are encrypted with your own keys.'}, 'enableConfidentialCompute': {'type': 'boolean', 'description': 'Whether this disk is using confidential compute mode.'}, 'sourceSnapshotEncryptionKey': {'$ref': '#/$defs/CustomerEncryptionKey', 'description': 'The customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption> of the source snapshot.'}}, 'description': '[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.'}, 'FileContentBuffer': {'type': 'object', 'properties': {'content': {'type': 'string', 'format': 'byte', 'description': 'The raw content in the secure keys file.'}, 'fileType': {'enum': ['BIN', 'UNDEFINED', 'X509'], 'type': 'string', 'description': 'The file type of source file.', 'x-google-enum-descriptions': ['', '', '']}}}, 'InitialStateConfig': {'type': 'object', 'properties': {'pk': {'$ref': '#/$defs/FileContentBuffer', 'description': 'The Platform Key (PK).'}, 'dbs': {'type': 'array', 'items': {'$ref': '#/$defs/FileContentBuffer'}, 'description': 'The Key Database (db).'}, 'dbxs': {'type': 'array', 'items': {'$ref': '#/$defs/FileContentBuffer'}, 'description': 'The forbidden key database (dbx).'}, 'keks': {'type': 'array', 'items': {'$ref': '#/$defs/FileContentBuffer'}, 'description': 'The Key Exchange Key (KEK).'}}, 'description': 'Initial State for shielded instance, these are public keys which are safe to store in public'}, 'CustomerEncryptionKey': {'type': 'object', 'properties': {'rawKey': {'type': 'string', 'deprecated': True, 'description': '[DEPRECATED] CSEK is no longer supported. Use CMEK instead. Specifies a 256-bit customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption>, encoded in RFC 4648 base64 <https://tools.ietf.org/html/rfc4648#section-4> to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=". Only one of the following fields should be set: this field, rsaEncryptedKey, kmsKeyName.'}, 'sha256': {'type': 'string', 'deprecated': True, 'description': '[DEPRECATED] CSEK is no longer supported. Use CMEK instead. [Output only] The RFC 4648 base64 <https://tools.ietf.org/html/rfc4648#section-4> encoded SHA-256 hash of the customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption> that protects this resource.'}, 'kmsKeyName': {'type': 'string', 'description': 'The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1. Only one of the following fields should be set: this field, rawKey, rsaEncryptedKey.'}, 'rsaEncryptedKey': {'type': 'string', 'deprecated': True, 'description': '[DEPRECATED] CSEK is no longer supported. Use CMEK instead. Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption#rsa-encryption> to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 <https://tools.ietf.org/html/rfc4648#section-4> encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem. Only one of the following fields should be set: this field, rawKey, kmsKeyName.'}, 'kmsKeyServiceAccount': {'type': 'string', 'description': 'The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ '}}}}, 'properties': {'attachedDisks': {'type': 'array', 'items': {'$ref': '#/$defs/AttachedDisk'}, 'description': 'The list of attached disks.'}}, 'description': 'Response message for listing instance attached disks.'}
list_instance_group_managers
Lists Compute Engine managed instance groups (MIGs). Details for each MIG include name, ID, instance template, base instance name, target size, target stopped size, target suspended size, status and creation timestamp. Requires project and zone as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone'], 'properties': {'zone': {'type': 'string', 'description': 'Required. The zone of the instance group managers.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The maximum number of instance group managers to return.'}, 'pageToken': {'type': 'string', 'description': 'Optional. A page token received from a previous call to list instance group managers.'}}, 'description': 'Request message for listing instance group managers basic info.'}
Output schema
{'type': 'object', '$defs': {'Help': {'type': 'object', 'properties': {'links': {'type': 'array', 'items': {'$ref': '#/$defs/Link'}, 'description': 'URL(s) pointing to additional information on handling the current error.'}}, 'description': "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit."}, 'Link': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'The URL of the link.'}, 'description': {'type': 'string', 'description': 'Describes what the link offers.'}}, 'description': 'Describes a URL link.'}, 'Status': {'type': 'object', 'properties': {'isStable': {'type': 'boolean', 'readOnly': True, 'description': 'Output only. A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.'}, 'stateful': {'$ref': '#/$defs/Stateful', 'readOnly': True, 'description': 'Output only. Stateful status of the given Instance Group Manager.'}, 'autoscaler': {'type': 'string', 'readOnly': True, 'description': 'Output only. The URL of the Autoscaler </compute/docs/autoscaler/> that targets this instance group manager.'}, 'versionTarget': {'$ref': '#/$defs/VersionTarget', 'readOnly': True, 'description': "Output only. A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager."}, 'allInstancesConfig': {'$ref': '#/$defs/AllInstancesConfig', 'readOnly': True, 'description': 'Output only. Status of all-instances configuration on the group.'}, 'bulkInstanceOperation': {'$ref': '#/$defs/BulkInstanceOperation', 'readOnly': True, 'description': 'Output only. The status of bulk instance operation.'}, 'currentInstanceStatuses': {'$ref': '#/$defs/InstanceStatusSummary', 'readOnly': True, 'description': 'Output only. The list of instance statuses and the number of instances in this managed instance group that have the status. Currently only shown for TPU MIGs'}, 'appliedAcceleratorTopologies': {'type': 'array', 'items': {'$ref': '#/$defs/AcceleratorTopology'}, 'readOnly': True, 'description': 'Output only. The accelerator topology applied to this MIG. Currently only one accelerator topology is supported.'}}}, 'Stateful': {'type': 'object', 'properties': {'hasStatefulConfig': {'type': 'boolean', 'readOnly': True, 'description': 'Output only. A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.'}, 'perInstanceConfigs': {'$ref': '#/$defs/PerInstanceConfigs', 'readOnly': True, 'description': 'Output only. Status of per-instance configurations on the instances.'}}}, 'ErrorInfo': {'type': 'object', 'properties': {'domain': {'type': 'string', 'description': 'The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".'}, 'reason': {'type': 'string', 'description': 'The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.'}, 'metadatas': {'type': 'object', 'description': 'Additional structured details about this error. Keys must match a regular expression of `a-z+` but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than `{"instanceLimit": "100/request"}`, should be returned as, `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of instances that can be created in a single (batch) request.', 'additionalProperties': {'type': 'string'}}}, 'description': 'Describes the cause of the error with structured details. Example of an error when contacting the "pubsub.googleapis.com" API when it is not enabled: { "reason": "API_DISABLED" "domain": "googleapis.com" "metadata": { "resource": "projects/123", "service": "pubsub.googleapis.com" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata": { "availableRegions": "us-central1,us-east2" } }'}, 'VersionTarget': {'type': 'object', 'properties': {'isReached': {'type': 'boolean', 'readOnly': True, 'description': "Output only. A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager."}}}, 'LocalizedMessage': {'type': 'object', 'properties': {'locale': {'type': 'string', 'description': 'The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"'}, 'message': {'type': 'string', 'description': 'The localized error message in the above locale.'}}, 'description': 'Provides a localized error message that is safe to return to the user which can be attached to an RPC error.'}, 'LastProgressCheck': {'type': 'object', 'properties': {'error': {'type': 'object', 'readOnly': True, 'properties': {'errors': {'type': 'array', 'items': {'type': 'object', 'properties': {'code': {'type': 'string', 'description': '[Output Only] The error type identifier for this error.'}, 'message': {'type': 'string', 'description': '[Output Only] An optional, human-readable error message.'}, 'location': {'type': 'string', 'description': '[Output Only] Indicates the field in the request that caused the error. This property is optional.'}, 'errorDetails': {'type': 'array', 'items': {'type': 'object', 'properties': {'help': {'$ref': '#/$defs/Help', 'description': 'Links and information to help the user resolve the error. Only one of the following fields should be set: this field, errorInfo, quotaInfo, localizedMessage.'}, 'errorInfo': {'$ref': '#/$defs/ErrorInfo', 'description': 'Error information containing structured domain, reason, and metadata. Only one of the following fields should be set: this field, quotaInfo, help, localizedMessage.'}, 'quotaInfo': {'$ref': '#/$defs/QuotaExceededInfo', 'description': 'Details about quota limits and metrics when a quota is exceeded. Only one of the following fields should be set: this field, errorInfo, help, localizedMessage.'}, 'localizedMessage': {'$ref': '#/$defs/LocalizedMessage', 'description': 'A localized human-readable error message intended for end users. Only one of the following fields should be set: this field, errorInfo, quotaInfo, help.'}}, 'description': 'Container for structured error details providing additional context specific to the encountered error code.'}, 'description': '[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.'}}, 'description': 'Represents a single error encountered during the processing of an operation.'}, 'description': '[Output Only] The array of errors encountered while processing this operation.'}}, 'description': 'Output only. Errors encountered during bulk instance operation.'}, 'timestamp': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. Timestamp of the last progress check of bulk instance operation. Timestamp is in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format.'}}}, 'QuotaExceededInfo': {'type': 'object', 'properties': {'limit': {'type': 'number', 'format': 'double', 'description': "Current effective quota limit. The limit's unit depends on the quota type or metric."}, 'limitName': {'type': 'string', 'description': 'The name of the quota limit.'}, 'dimensions': {'type': 'object', 'description': 'The map holding related quota dimensions.', 'additionalProperties': {'type': 'string'}}, 'metricName': {'type': 'string', 'description': 'The Compute Engine quota metric name.'}, 'futureLimit': {'type': 'number', 'format': 'double', 'description': "Future quota limit being rolled out. The limit's unit depends on the quota type or metric."}, 'rolloutStatus': {'enum': ['IN_PROGRESS', 'ROLLOUT_STATUS_UNSPECIFIED'], 'type': 'string', 'description': 'Rollout status of the future quota limit.', 'x-google-enum-descriptions': ['IN_PROGRESS - A rollout is in process which will change the limit value to future limit.', 'ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default value.']}}, 'description': 'Additional details for quota exceeded error for resource quota.'}, 'AllInstancesConfig': {'type': 'object', 'properties': {'effective': {'type': 'boolean', 'readOnly': True, 'description': 'Output only. A bit indicating whether this configuration has been applied to all managed instances in the group.'}, 'currentRevision': {'type': 'string', 'readOnly': True, 'description': 'Output only. Current all-instances configuration revision. This value is in RFC3339 text format.'}}}, 'PerInstanceConfigs': {'type': 'object', 'properties': {'allEffective': {'type': 'boolean', 'readOnly': True, 'description': "Output only. A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs."}}}, 'AcceleratorTopology': {'type': 'object', 'properties': {'state': {'enum': ['ACTIVATING', 'ACTIVE', 'DEACTIVATING', 'FAILED', 'INCOMPLETE', 'REACTIVATING'], 'type': 'string', 'readOnly': True, 'description': 'Output only. The state of the accelerator topology.', 'x-google-enum-descriptions': ['The accelerator topology is being activated.', 'The accelerator topology is active.', 'The accelerator topology is being deactivated.', 'The accelerator topology failed.', 'The configuration is incomplete and the accelerator topology cannot be activated due to insufficient number of running VMs.', 'The accelerator topology is being reactivated.']}, 'stateDetails': {'$ref': '#/$defs/AcceleratorTopologyStateDetails', 'readOnly': True, 'description': 'Output only. The result of the latest accelerator topology state check.'}, 'acceleratorTopology': {'type': 'string', 'readOnly': True, 'description': 'Output only. Topology in the format of: "16x16", "4x4x4", etc. The value is the same as configured in the WorkloadPolicy.'}}}, 'BulkInstanceOperation': {'type': 'object', 'properties': {'inProgress': {'type': 'boolean', 'readOnly': True, 'description': 'Output only. Informs whether bulk instance operation is in progress.'}, 'lastProgressCheck': {'$ref': '#/$defs/LastProgressCheck', 'readOnly': True, 'description': 'Output only. Information from the last progress check of bulk instance operation.'}}, 'description': 'Bulk instance operation is the creation of VMs in a MIG when the targetSizePolicy.mode is set to BULK.'}, 'InstanceStatusSummary': {'type': 'object', 'properties': {'pending': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': "Output only. The number of instances in the managed instance group that have PENDING status, that is FlexStart instances that are waiting for resources. Instances that do not exist because of the other reasons are counted as 'non_existent'."}, 'running': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have RUNNING status.'}, 'staging': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have STAGING status.'}, 'stopped': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have STOPPED status.'}, 'stopping': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have STOPPING status.'}, 'repairing': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have REPAIRING status.'}, 'suspended': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have SUSPENDED status.'}, 'suspending': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have SUSPENDING status.'}, 'terminated': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have TERMINATED status.'}, 'nonExistent': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': "Output only. The number of instances that have not been created yet or have been deleted. Includes only instances that would be shown in the listManagedInstances method and not all instances that have been deleted in the lifetime of the MIG. Does not include FlexStart instances that are waiting for the resources availability, they are considered as 'pending'."}, 'pendingStop': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have PENDING_STOP status.'}, 'provisioning': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have PROVISIONING status.'}, 'deprovisioning': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. The number of instances in the managed instance group that have DEPROVISIONING status.'}}, 'description': 'The list of instance statuses and the number of instances in this managed instance group that have the status. For more information about how to interpret each status check the instance lifecycle documentation </compute/docs/instances/instance-lifecycle>. Currently only shown for TPU MIGs.'}, 'InstanceGroupManagerBasicInfo': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the instance group manager.'}, 'name': {'type': 'string', 'description': 'Name of the instance group manager.'}, 'status': {'$ref': '#/$defs/Status', 'description': 'The status of the instance group manager.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the instance group manager.'}, 'targetSize': {'type': 'integer', 'format': 'int32', 'description': 'The target size of the instance group manager.'}, 'baseInstanceName': {'type': 'string', 'description': 'The base instance name of the instance group manager.'}, 'instanceTemplate': {'type': 'string', 'description': 'The instance template of the instance group manager.'}, 'targetStoppedSize': {'type': 'integer', 'format': 'int32', 'description': 'The target stopped size of the instance group manager.'}, 'targetSuspendedSize': {'type': 'integer', 'format': 'int32', 'description': 'The target suspended size of the instance group manager.'}}, 'description': 'Basic information about an instance group manager.'}, 'AcceleratorTopologyStateDetails': {'type': 'object', 'properties': {'error': {'type': 'object', 'readOnly': True, 'properties': {'errors': {'type': 'array', 'items': {'type': 'object', 'properties': {'code': {'type': 'string', 'description': '[Output Only] The error type identifier for this error.'}, 'message': {'type': 'string', 'description': '[Output Only] An optional, human-readable error message.'}, 'location': {'type': 'string', 'description': '[Output Only] Indicates the field in the request that caused the error. This property is optional.'}, 'errorDetails': {'type': 'array', 'items': {'type': 'object', 'properties': {'help': {'$ref': '#/$defs/Help', 'description': 'Links and information to help the user resolve the error. Only one of the following fields should be set: this field, errorInfo, quotaInfo, localizedMessage.'}, 'errorInfo': {'$ref': '#/$defs/ErrorInfo', 'description': 'Error information containing structured domain, reason, and metadata. Only one of the following fields should be set: this field, quotaInfo, help, localizedMessage.'}, 'quotaInfo': {'$ref': '#/$defs/QuotaExceededInfo', 'description': 'Details about quota limits and metrics when a quota is exceeded. Only one of the following fields should be set: this field, errorInfo, help, localizedMessage.'}, 'localizedMessage': {'$ref': '#/$defs/LocalizedMessage', 'description': 'A localized human-readable error message intended for end users. Only one of the following fields should be set: this field, errorInfo, quotaInfo, help.'}}, 'description': 'Container for structured error details providing additional context specific to the encountered error code.'}, 'description': '[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.'}}, 'description': 'Represents a single error encountered during the processing of an operation.'}, 'description': '[Output Only] The array of errors encountered while processing this operation.'}}, 'description': 'Output only. Encountered errors.'}, 'timestamp': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. Timestamp is shown only if there is an error. The field has // RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> // text format.'}}}}, 'properties': {'nextPageToken': {'type': 'string', 'description': 'A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.'}, 'instanceGroupManagers': {'type': 'array', 'items': {'$ref': '#/$defs/InstanceGroupManagerBasicInfo'}, 'description': 'The list of instance group managers.'}}, 'description': 'Response message for listing instance group managers basic info.'}
list_instances
Lists Compute Engine virtual machine (VM) instances. Details for each instance include name, ID, status, machine type, creation timestamp, and attached guest accelerators. Use other tools to get more details about each instance. Requires project and zone as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone'], 'properties': {'zone': {'type': 'string', 'description': 'Required. The zone of the instances.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The maximum number of instances to return.'}, 'pageToken': {'type': 'string', 'description': 'Optional. A page token received from a previous call to list instances.'}}, 'description': 'Request message for listing instances basic info.'}
Output schema
{'type': 'object', '$defs': {'AcceleratorConfig': {'type': 'object', 'properties': {'acceleratorType': {'type': 'string', 'description': 'Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine </compute/docs/gpus/#introduction> for a full list of accelerator types.'}, 'acceleratorCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of the guest accelerator cards exposed to this instance.'}}, 'description': 'A specification of the type and number of accelerator cards attached to the instance.'}, 'InstanceBasicInfo': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the instance.'}, 'name': {'type': 'string', 'description': 'Name of the instance.'}, 'status': {'enum': ['DEPROVISIONING', 'PENDING', 'PENDING_STOP', 'PROVISIONING', 'REPAIRING', 'RUNNING', 'STAGING', 'STOPPED', 'STOPPING', 'SUSPENDED', 'SUSPENDING', 'TERMINATED'], 'type': 'string', 'description': 'The status of the instance.', 'x-google-enum-descriptions': ['The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.', 'For Flex Start provisioning instance is waiting for available capacity from Dynamic Workload Scheduler (DWS).', 'The instance is gracefully shutting down.', 'Resources are being allocated for the instance.', 'The instance is in repair.', 'The instance is running.', 'All required resources have been allocated and the instance is being started.', 'The instance has stopped successfully.', 'The instance is currently stopping (either being deleted or killed).', 'The instance has suspended.', 'The instance is suspending.', 'The instance has stopped (either by explicit action or underlying failure).']}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the instance.'}, 'machineType': {'type': 'string', 'description': 'The machine type of the instance.'}, 'guestAccelerators': {'type': 'array', 'items': {'$ref': '#/$defs/AcceleratorConfig'}, 'description': 'Accelerators attached to the instance.'}}, 'description': 'Response message for getting instance basic info.'}}, 'properties': {'instances': {'type': 'array', 'items': {'$ref': '#/$defs/InstanceBasicInfo'}, 'description': 'The list of instances.'}, 'nextPageToken': {'type': 'string', 'description': 'A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.'}}, 'description': 'Response message for listing instances basic info.'}
list_instance_templates
Lists Compute Engine instance templates. Details for each instance template include name, ID, description, machine type, region, and creation timestamp. Requires project as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project'], 'properties': {'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The maximum number of instance templates to return.'}, 'pageToken': {'type': 'string', 'description': 'Optional. A page token received from a previous call to list instance templates.'}}, 'description': 'Request message for listing instance templates basic info.'}
Output schema
{'type': 'object', '$defs': {'InstanceTemplateBasicInfo': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the instance template.'}, 'name': {'type': 'string', 'description': 'Name of the instance template.'}, 'region': {'type': 'string', 'description': 'The region of the instance template if it is a regional resource.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the instance template.'}, 'description': {'type': 'string', 'description': 'Description of the instance template.'}, 'machineType': {'type': 'string', 'description': 'The machine type of the instance template.'}}, 'description': 'InstanceTemplateBasicInfo contains basic information about an instance template.'}}, 'properties': {'nextPageToken': {'type': 'string', 'description': 'A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.'}, 'instanceTemplates': {'type': 'array', 'items': {'$ref': '#/$defs/InstanceTemplateBasicInfo'}, 'description': 'The list of instance templates.'}}, 'description': 'Response message for listing instance templates basic info.'}
list_machine_types
Lists the available Google Compute Engine machine types. Requires project and zone as input. Returns machine types, including id, creationTimestamp, name, description, guest cpus, memory, image space, maximum persistent disks, maximum persisten disks size, deprecated, zone, is shared cpu, accelerators, and architecture.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone'], 'properties': {'zone': {'type': 'string', 'description': 'Required. The zone of the machine types.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for listing machine types.'}
Output schema
{'type': 'object', '$defs': {'MachineType': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': '[Output Only] The unique identifier for the resource. This identifier is defined by the server.'}, 'kind': {'type': 'string', 'default': 'compute#machineType', 'readOnly': True, 'description': 'Output only. [Output Only] The type of the resource. Always compute#machineType for machine types.'}, 'name': {'type': 'string', 'pattern': '[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?', 'description': '[Output Only] Name of the resource.'}, 'zone': {'type': 'string', 'description': '[Output Only] The name of the zone where the machine type resides, such as us-central1-a.'}, 'memoryMb': {'type': 'integer', 'format': 'int32', 'description': '[Output Only] The amount of physical memory available to the instance, defined in MB.'}, 'selfLink': {'type': 'string', 'description': '[Output Only] Server-defined URL for the resource.'}, 'guestCpus': {'type': 'integer', 'format': 'int32', 'description': '[Output Only] The number of virtual CPUs that are available to the instance.'}, 'deprecated': {'$ref': '#/$defs/DeprecationStatus', 'description': '[Output Only] The deprecation status associated with this machine type. Only applicable if the machine type is unavailable.'}, 'description': {'type': 'string', 'description': '[Output Only] An optional textual description of the resource.'}, 'isSharedCpu': {'type': 'boolean', 'description': '[Output Only] Whether this machine type has a shared CPU. See Shared-core machine types </compute/docs/machine-types#sharedcore> for more information.'}, 'accelerators': {'type': 'array', 'items': {'type': 'object', 'properties': {'guestAcceleratorType': {'type': 'string', 'description': 'The accelerator type resource name, not a full URL, e.g. nvidia-tesla-t4.'}, 'guestAcceleratorCount': {'type': 'integer', 'format': 'int32', 'description': 'Number of accelerator cards exposed to the guest.'}}}, 'description': '[Output Only] A list of accelerator configurations assigned to this machine type.'}, 'architecture': {'enum': ['ARCHITECTURE_UNSPECIFIED', 'ARM64', 'X86_64'], 'type': 'string', 'description': '[Output Only] The architecture of the machine type.', 'x-google-enum-descriptions': ['Default value indicating Architecture is not set.', 'Machines with architecture ARM64', 'Machines with architecture X86_64']}, 'imageSpaceGb': {'type': 'integer', 'format': 'int32', 'description': '[Deprecated] This property is deprecated and will never be populated with any relevant values.'}, 'bundledLocalSsds': {'$ref': '#/$defs/BundledLocalSsds', 'description': '[Output Only] The configuration of bundled local SSD for the machine type.'}, 'creationTimestamp': {'type': 'string', 'description': '[Output Only] Creation timestamp in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format.'}, 'maximumPersistentDisks': {'type': 'integer', 'format': 'int32', 'description': '[Output Only] Maximum persistent disks allowed.'}, 'maximumPersistentDisksSizeGb': {'type': 'string', 'format': 'int64', 'description': '[Output Only] Maximum total persistent disks size (GB) allowed.'}}, 'description': 'Represents a Machine Type resource. You can use specific machine types for your VM instances based on performance and pricing requirements. For more information, read Machine Types </compute/docs/machine-types>.'}, 'BundledLocalSsds': {'type': 'object', 'properties': {'partitionCount': {'type': 'integer', 'format': 'int32', 'description': 'The number of partitions.'}, 'defaultInterface': {'type': 'string', 'description': 'The default disk interface if the interface is not specified.'}}}, 'DeprecationStatus': {'type': 'object', 'properties': {'state': {'enum': ['ACTIVE', 'DELETED', 'DEPRECATED', 'OBSOLETE'], 'type': 'string', 'description': 'The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.', 'x-google-enum-descriptions': ['', '', '', '']}, 'deleted': {'type': 'string', 'description': 'An optional RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.'}, 'obsolete': {'type': 'string', 'description': 'An optional RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.'}, 'deprecated': {'type': 'string', 'description': 'An optional RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.'}, 'replacement': {'type': 'string', 'description': 'The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.'}}, 'description': 'Deprecation status for a public resource.'}}, 'properties': {'machineTypes': {'type': 'array', 'items': {'$ref': '#/$defs/MachineType'}, 'description': 'The list of machine types.'}}, 'description': 'Response message for listing machine types.'}
list_managed_instances
Lists managed instances for a given managed instance group (MIG). For each instance, details include id, instance URL, instance status, and current action. Requires project, zone, and MIG name as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The instance group manager name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the instance group manager.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The maximum number of managed instances to return.'}, 'pageToken': {'type': 'string', 'description': 'Optional. A page token received from a previous call to list managed instances.'}}, 'description': 'Request message for listing managed instances.'}
Output schema
{'type': 'object', '$defs': {'Help': {'type': 'object', 'properties': {'links': {'type': 'array', 'items': {'$ref': '#/$defs/Link'}, 'description': 'URL(s) pointing to additional information on handling the current error.'}}, 'description': "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit."}, 'Link': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'The URL of the link.'}, 'description': {'type': 'string', 'description': 'Describes what the link offers.'}}, 'description': 'Describes a URL link.'}, 'Version': {'type': 'object', 'properties': {'name': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] Name of the version.'}, 'instanceTemplate': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.'}}}, 'Duration': {'type': 'object', 'properties': {'nanos': {'type': 'integer', 'format': 'int32', 'description': "Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive."}, 'seconds': {'type': 'string', 'format': 'int64', 'description': 'Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years'}}, 'description': 'A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years.'}, 'ErrorInfo': {'type': 'object', 'properties': {'domain': {'type': 'string', 'description': 'The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".'}, 'reason': {'type': 'string', 'description': 'The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.'}, 'metadatas': {'type': 'object', 'description': 'Additional structured details about this error. Keys must match a regular expression of `a-z+` but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than `{"instanceLimit": "100/request"}`, should be returned as, `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of instances that can be created in a single (batch) request.', 'additionalProperties': {'type': 'string'}}}, 'description': 'Describes the cause of the error with structured details. Example of an error when contacting the "pubsub.googleapis.com" API when it is not enabled: { "reason": "API_DISABLED" "domain": "googleapis.com" "metadata": { "resource": "projects/123", "service": "pubsub.googleapis.com" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata": { "availableRegions": "us-central1,us-east2" } }'}, 'IpAddress': {'type': 'object', 'properties': {'address': {'type': 'string', 'description': 'The URL of the reservation for this IP address.'}, 'literal': {'type': 'string', 'description': 'An IPv4 internal network address to assign to the instance for this network interface.'}}}, 'Scheduling': {'type': 'object', 'properties': {'terminationTimestamp': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. The timestamp at which the managed instance will be terminated. This is in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format.'}, 'gracefulShutdownTimestamp': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. The timestamp at which the underlying instance will be triggered for graceful shutdown if it is configured. This is in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format.'}}}, 'LastAttempt': {'type': 'object', 'properties': {'errors': {'type': 'object', 'readOnly': True, 'properties': {'errors': {'type': 'array', 'items': {'type': 'object', 'properties': {'code': {'type': 'string', 'description': '[Output Only] The error type identifier for this error.'}, 'message': {'type': 'string', 'description': '[Output Only] An optional, human-readable error message.'}, 'location': {'type': 'string', 'description': '[Output Only] Indicates the field in the request that caused the error. This property is optional.'}, 'errorDetails': {'type': 'array', 'items': {'type': 'object', 'properties': {'help': {'$ref': '#/$defs/Help', 'description': 'Links and information to help the user resolve the error. Only one of the following fields should be set: this field, errorInfo, quotaInfo, localizedMessage.'}, 'errorInfo': {'$ref': '#/$defs/ErrorInfo', 'description': 'Error information containing structured domain, reason, and metadata. Only one of the following fields should be set: this field, quotaInfo, help, localizedMessage.'}, 'quotaInfo': {'$ref': '#/$defs/QuotaExceededInfo', 'description': 'Details about quota limits and metrics when a quota is exceeded. Only one of the following fields should be set: this field, errorInfo, help, localizedMessage.'}, 'localizedMessage': {'$ref': '#/$defs/LocalizedMessage', 'description': 'A localized human-readable error message intended for end users. Only one of the following fields should be set: this field, errorInfo, quotaInfo, help.'}}, 'description': 'Container for structured error details providing additional context specific to the encountered error code.'}, 'description': '[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.'}}, 'description': 'Represents a single error encountered during the processing of an operation.'}, 'description': '[Output Only] The array of errors encountered while processing this operation.'}}, 'description': 'Output only. [Output Only] Encountered errors during the last attempt to create or delete the instance.'}, 'timestamp': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. Show timestamp only if there is an error. The field value should match corresponding timestamp in listErrors. RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format.'}}}, 'AttachedDisk': {'type': 'object', 'properties': {'boot': {'type': 'boolean', 'description': 'Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.'}, 'kind': {'type': 'string', 'default': 'compute#attachedDisk', 'readOnly': True, 'description': 'Output only. [Output Only] Type of the resource. Always compute#attachedDisk for attached disks.'}, 'mode': {'enum': ['READ_ONLY', 'READ_WRITE'], 'type': 'string', 'description': 'The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.', 'x-google-enum-descriptions': ['Attaches this disk in read-only mode. Multiple virtual machines can use a disk in read-only mode at a time.', '*[Default]* Attaches this disk in read-write mode. Only one virtual machine at a time can be attached to a disk in read-write mode.']}, 'type': {'enum': ['PERSISTENT', 'SCRATCH'], 'type': 'string', 'description': 'Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.', 'x-google-enum-descriptions': ['', '']}, 'index': {'type': 'integer', 'format': 'int32', 'readOnly': True, 'description': 'Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number.'}, 'source': {'type': 'string', 'description': 'Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance boot disk, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk.'}, 'licenses': {'type': 'array', 'items': {'type': 'string'}, 'readOnly': True, 'description': 'Output only. [Output Only] Any valid publicly visible licenses.'}, 'interface': {'enum': ['NVME', 'SCSI'], 'type': 'string', 'description': 'Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks <https://cloud.google.com/compute/docs/disks/persistent-disks>.', 'x-google-enum-descriptions': ['', '']}, 'autoDelete': {'type': 'boolean', 'description': 'Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).'}, 'deviceName': {'type': 'string', 'description': 'Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.'}, 'diskSizeGb': {'type': 'string', 'format': 'int64', 'description': 'The size of the disk in GB.'}, 'savedState': {'enum': ['DISK_SAVED_STATE_UNSPECIFIED', 'PRESERVED'], 'type': 'string', 'readOnly': True, 'description': 'Output only. For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field is set to PRESERVED if the LocalSSD data has been saved to a persistent location by customer request. (see the discard_local_ssd option on Stop/Suspend). Read-only in the api.', 'x-google-enum-descriptions': ['*[Default]* Disk state has not been preserved.', 'Disk state has been preserved.']}, 'forceAttach': {'type': 'boolean', 'description': "[Input Only] Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error."}, 'architecture': {'enum': ['ARCHITECTURE_UNSPECIFIED', 'ARM64', 'X86_64'], 'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] The architecture of the attached disk. Valid values are ARM64 or X86_64.', 'x-google-enum-descriptions': ['Default value indicating Architecture is not set.', 'Machines with architecture ARM64', 'Machines with architecture X86_64']}, 'guestOsFeatures': {'type': 'array', 'items': {'$ref': '#/$defs/GuestOsFeature'}, 'description': 'A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features </compute/docs/images/create-delete-deprecate-private-images#guest-os-features> to see a list of available options.'}, 'initializeParams': {'$ref': '#/$defs/InitializeParams', 'description': '[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.'}, 'diskEncryptionKey': {'$ref': '#/$defs/CustomerEncryptionKey', 'description': 'Encrypts or decrypts a disk using a customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption>. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Note: Instance templates do not store customer-supplied encryption keys </compute/docs/disks/customer-supplied-encryption>, so you cannot use your own keys to encrypt disks in a managed instance group </compute/docs/instance-groups/>. You cannot create VMs that have disks with customer-supplied keys using the bulk insert method </compute/docs/reference/rest/v1/instances/bulkInsert>.'}, 'shieldedInstanceInitialState': {'$ref': '#/$defs/InitialStateConfig', 'readOnly': True, 'description': 'Output only. [Output Only] shielded vm initial state stored on disk'}}, 'description': 'An instance-attached disk resource.'}, 'PreservedDisk': {'type': 'object', 'properties': {'mode': {'enum': ['READ_ONLY', 'READ_WRITE'], 'type': 'string', 'description': 'The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.', 'x-google-enum-descriptions': ['Attaches this disk in read-only mode. Multiple VM instances can use a disk in READ_ONLY mode at a time.', '*[Default]* Attaches this disk in READ_WRITE mode. Only one VM instance at a time can be attached to a disk in READ_WRITE mode.']}, 'source': {'type': 'string', 'description': 'The URL of the disk resource that is stateful and should be attached to the VM instance.'}, 'autoDelete': {'enum': ['NEVER', 'ON_PERMANENT_INSTANCE_DELETION'], 'type': 'string', 'description': 'These stateful disks will never be deleted during autohealing, update, instance recreate operations. This flag is used to configure if the disk should be deleted after it is no longer used by the group, e.g. when the given instance or the whole MIG is deleted. Note: disks attached in READ_ONLY mode cannot be auto-deleted.', 'x-google-enum-descriptions': ['', '']}}}, 'GuestOsFeature': {'type': 'object', 'properties': {'type': {'enum': ['BARE_METAL_LINUX_COMPATIBLE', 'BMSAI_CAPABLE', 'CCA_CAPABLE', 'FEATURE_TYPE_UNSPECIFIED', 'GVNIC', 'IDPF', 'MULTI_IP_SUBNET', 'SECURE_BOOT', 'SEV_CAPABLE', 'SEV_LIVE_MIGRATABLE', 'SEV_LIVE_MIGRATABLE_V2', 'SEV_SNP_CAPABLE', 'SNP_SVSM_CAPABLE', 'SUSPEND_SAFE_FPR', 'TDX_CAPABLE', 'UEFI_COMPATIBLE', 'VIRTIO_SCSI_MULTIQUEUE', 'WINDOWS'], 'type': 'string', 'description': 'The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF - SNP_SVSM_CAPABLE - CCA_CAPABLE - SUSPEND_SAFE_FPR For more information, see Enabling guest operating system features </compute/docs/images/create-delete-deprecate-private-images#guest-os-features> .', 'x-google-enum-descriptions': ['', 'Indicates the guest OS is capable of Bare Metal Secure AI (BMSAI) confidential computing.', '', '', '', '', '', '', '', '', '', '', '', 'Indicates the guest OS is safe for free page reporting (FPR) during suspend.', '', '', '', '']}}, 'description': 'Guest OS features.'}, 'InstanceHealth': {'type': 'object', 'properties': {'healthCheck': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] The URL for the health check that verifies whether the instance is healthy.'}, 'detailedHealthState': {'enum': ['DRAINING', 'HEALTHY', 'TIMEOUT', 'UNHEALTHY', 'UNKNOWN'], 'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] The current detailed instance health state.', 'x-google-enum-descriptions': ['The instance is being drained. The existing connections to the instance have time to complete, but the new ones are being refused.', 'The instance is reachable i.e. a connection to the application health checking endpoint can be established, and conforms to the requirements defined by the health check.', 'The instance is unreachable i.e. a connection to the application health checking endpoint cannot be established, or the server does not respond within the specified timeout.', 'The instance is reachable, but does not conform to the requirements defined by the health check.', 'The health checking system is aware of the instance but its health is not known at the moment.']}}}, 'PreservedState': {'type': 'object', 'properties': {'disks': {'type': 'object', 'description': 'Preserved disks defined for this instance. This map is keyed with the device names of the disks.', 'additionalProperties': {'$ref': '#/$defs/PreservedDisk'}}, 'metadata': {'type': 'object', 'description': 'Preserved metadata defined for this instance.', 'additionalProperties': {'type': 'string'}}, 'externalIPs': {'type': 'object', 'description': 'Preserved external IPs defined for this instance. This map is keyed with the name of the network interface.', 'additionalProperties': {'$ref': '#/$defs/PreservedNetworkIp'}}, 'internalIPs': {'type': 'object', 'description': 'Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface.', 'additionalProperties': {'$ref': '#/$defs/PreservedNetworkIp'}}}, 'description': 'Preserved state for a given instance.'}, 'ManagedInstance': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'readOnly': True, 'description': 'Output only. [Output only] The unique identifier for this resource. This field is empty when instance does not exist.'}, 'name': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] The name of the instance. The name always exists even if the instance has not yet been created.'}, 'version': {'$ref': '#/$defs/Version', 'readOnly': True, 'description': 'Output only. [Output Only] Intended version of this instance.'}, 'instance': {'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] The URL of the instance. The URL can exist even if the instance has not yet been created.'}, 'scheduling': {'$ref': '#/$defs/Scheduling', 'readOnly': True, 'description': 'Output only. Information about the termination timestamp of the instance, if applicable.'}, 'lastAttempt': {'$ref': '#/$defs/LastAttempt', 'readOnly': True, 'description': 'Output only. [Output Only] Information about the last attempt to create or delete the instance.'}, 'targetStatus': {'enum': ['ABANDONED', 'DELETED', 'INVALID', 'RUNNING', 'STOPPED', 'SUSPENDED'], 'type': 'string', 'readOnly': True, 'description': 'Output only. The eventual status of the instance. The instance group manager will not be identified as stable till each managed instance reaches its targetStatus.', 'x-google-enum-descriptions': ['The managed instance will eventually be ABANDONED, i.e. dissociated from the managed instance group.', 'The managed instance will eventually be DELETED.', 'Only present to map the STATUS_INVALID value.', 'The managed instance will eventually reach status RUNNING.', 'The managed instance will eventually reach status TERMINATED.', 'The managed instance will eventually reach status SUSPENDED.']}, 'currentAction': {'enum': ['ABANDONING', 'CREATING', 'CREATING_WITHOUT_RETRIES', 'DELETING', 'NONE', 'RECREATING', 'REFRESHING', 'RESTARTING', 'RESUMING', 'STARTING', 'STOPPING', 'SUSPENDING', 'VERIFYING'], 'type': 'string', 'readOnly': True, 'description': "Output only. [Output Only] The current action that the managed instance group has scheduled for the instance. Possible values: - NONE The instance is running, and the managed instance group does not have any scheduled actions for this instance. - CREATING The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful. - CREATING_WITHOUT_RETRIES The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased instead. - RECREATING The managed instance group is recreating this instance. - DELETING The managed instance group is permanently deleting this instance. - ABANDONING The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group. - RESTARTING The managed instance group is restarting the instance. - REFRESHING The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance. - VERIFYING The managed instance group has created the instance and it is in the process of being verified. ", 'x-google-enum-descriptions': ['The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group.', 'The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful.', "The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased.", 'The managed instance group is permanently deleting this instance.', 'The managed instance group has not scheduled any actions for this instance.', 'The managed instance group is recreating this instance.', 'The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance.', 'The managed instance group is restarting this instance.', 'The managed instance group is resuming this instance.', 'The managed instance group is starting this instance.', 'The managed instance group is stopping this instance.', 'The managed instance group is suspending this instance.', "The managed instance group is verifying this already created instance. Verification happens every time the instance is (re)created or restarted and consists of: 1. Waiting until health check specified as part of this managed instance group's autohealing policy reports HEALTHY. Note: Applies only if autohealing policy has a health check specified 2. Waiting for addition verification steps performed as post-instance creation (subject to future extensions)."]}, 'instanceHealth': {'type': 'array', 'items': {'$ref': '#/$defs/InstanceHealth'}, 'readOnly': True, 'description': 'Output only. [Output Only] Health state of the instance per health-check.'}, 'instanceStatus': {'enum': ['DEPROVISIONING', 'PENDING', 'PENDING_STOP', 'PROVISIONING', 'REPAIRING', 'RUNNING', 'STAGING', 'STOPPED', 'STOPPING', 'SUSPENDED', 'SUSPENDING', 'TERMINATED'], 'type': 'string', 'readOnly': True, 'description': 'Output only. [Output Only] The status of the instance. This field is empty when the instance does not exist.', 'x-google-enum-descriptions': ['The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.', 'For Flex Start provisioning instance is waiting for available capacity from Dynamic Workload Scheduler (DWS).', 'The instance is gracefully shutting down.', 'Resources are being allocated for the instance.', 'The instance is in repair.', 'The instance is running.', 'All required resources have been allocated and the instance is being started.', 'The instance has stopped successfully.', 'The instance is currently stopping (either being deleted or killed).', 'The instance has suspended.', 'The instance is suspending.', 'The instance has stopped (either by explicit action or underlying failure).']}, 'shutdownDetails': {'$ref': '#/$defs/ShutdownDetails', 'readOnly': True, 'description': 'Output only. Specifies the graceful shutdown details if the instance is in `PENDING_STOP` state or there is a programmed stop scheduled.'}, 'preservedStateFromConfig': {'$ref': '#/$defs/PreservedState', 'readOnly': True, 'description': 'Output only. [Output Only] Preserved state applied from per-instance config for this instance.'}, 'preservedStateFromPolicy': {'$ref': '#/$defs/PreservedState', 'readOnly': True, 'description': 'Output only. [Output Only] Preserved state generated based on stateful policy for this instance.'}, 'propertiesFromFlexibilityPolicy': {'$ref': '#/$defs/PropertiesFromFlexibilityPolicy', 'readOnly': True, 'description': 'Output only. [Output Only] Instance properties selected for this instance resulting from InstanceFlexibilityPolicy.'}}, 'description': 'A Managed Instance resource.'}, 'ShutdownDetails': {'type': 'object', 'properties': {'maxDuration': {'$ref': '#/$defs/Duration', 'readOnly': True, 'description': 'Output only. The duration for graceful shutdown. Only applicable when the instance is in `PENDING_STOP` state.'}, 'requestTimestamp': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. Past timestamp indicating the beginning of `PENDING_STOP` state of instance in RFC3339 <https://www.ietf.org/rfc/rfc3339.txt> text format.'}}}, 'InitializeParams': {'type': 'object', 'properties': {'labels': {'type': 'object', 'description': 'Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks.', 'additionalProperties': {'type': 'string'}}, 'diskName': {'type': 'string', 'description': 'Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created.'}, 'diskType': {'type': 'string', 'description': "Specifies the disk type used for the boot disk or an additional data disk. For valid disk type values, see Supported types for Hyperdisk volumes </compute/docs/disks/add-hyperdisk#hd_disk_types> and Persistent Disk type variables </compute/docs/disks/add-persistent-disk#hd_disk_types>. When creating a single instance, you must provide either the full or partial URL of the disk type. For example, the following values are valid: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType When creating an instance template, instance flexibility policy, or when creating or updating an all-instances configuration, you specify the disk type without a URL, for example, hyperdisk-balanced. If you omit this field for a disk, the default disk type depends on the instance's machine series, as follows. - For first- and second-generation machine series like N1, N2, T2, and M1, the default disk type is Standard Persistent Disk (pd-standard). - For C3, C3D, and M3 the default is Balanced Persistent Disk ( pd-balanced). - For other third-generation machine series like A3, H3, Z3, all fourth-generation types like C4, N4, M4, and newer machine series, the default is Hyperdisk Balanced (hyperdisk-balanced). The disk type you specify must be compatible with the instance's machine series. For a list of machine series that support Persistent Disk, see Machine series support for Persistent Disk </compute/docs/disks/persistent-disks#pd-machine-series>. For a list of machine series that support Hyperdisk, see Machine series support for Hyperdisk </compute/docs/disks/hyperdisks#machine-type-support>."}, 'licenses': {'type': 'array', 'items': {'type': 'string'}, 'description': "A list of publicly visible licenses. Reserved for Google's use."}, 'diskSizeGb': {'type': 'string', 'format': 'int64', 'description': 'Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB.'}, 'description': {'type': 'string', 'description': 'An optional description. Provide this property when creating the disk.'}, 'sourceImage': {'type': 'string', 'description': 'The source image to create this disk. When creating a new instance boot disk, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required. To create a disk with one of the public operating system images </compute/docs/images/os-details>, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set.'}, 'storagePool': {'type': 'string', 'description': 'The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool '}, 'architecture': {'enum': ['ARCHITECTURE_UNSPECIFIED', 'ARM64', 'X86_64'], 'type': 'string', 'description': 'The architecture of the attached disk. Valid values are arm64 or x86_64.', 'x-google-enum-descriptions': ['Default value indicating Architecture is not set.', 'Machines with architecture ARM64', 'Machines with architecture X86_64']}, 'replicaZones': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone.'}, 'onUpdateAction': {'enum': ['RECREATE_DISK', 'RECREATE_DISK_IF_SOURCE_CHANGED', 'USE_EXISTING_DISK'], 'type': 'string', 'description': 'Specifies which action to take on instance update with this disk. Default is to use the existing disk.', 'x-google-enum-descriptions': ['Always recreate the disk.', 'Recreate the disk if source (image, snapshot) of this disk is different from source of existing disk.', 'Use the existing disk, this is the default behaviour.']}, 'sourceSnapshot': {'type': 'string', 'description': 'The source snapshot to create this disk. When creating a new instance boot disk, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. Note: You cannot create VMs in bulk using a snapshot as the source. Use an image instead when you create VMs using the bulk insert method </compute/docs/reference/rest/v1/instances/bulkInsert>.'}, 'provisionedIops': {'type': 'string', 'format': 'int64', 'description': 'Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation </compute/docs/disks/extreme-persistent-disk>.'}, 'resourcePolicies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name.'}, 'resourceManagerTags': {'type': 'object', 'writeOnly': True, 'description': 'Input only. Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags <https://cloud.google.com/resource-manager/docs/tags/tags-overview>. Keys and values can be either in numeric format, such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in namespaced format such as `{org_id|project_id}/{tag_key_short_name}` and `{tag_value_short_name}`. The field is ignored (both PUT & PATCH) when empty.', 'additionalProperties': {'type': 'string'}}, 'provisionedThroughput': {'type': 'string', 'format': 'int64', 'description': 'Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must greater than or equal to 1.'}, 'sourceImageEncryptionKey': {'$ref': '#/$defs/CustomerEncryptionKey', 'description': 'The customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption> of the source image. Required if the source image is protected by a customer-supplied encryption key. InstanceTemplate and InstancePropertiesPatch do not store customer-supplied encryption keys </compute/docs/disks/customer-supplied-encryption>, so you cannot create disks for instances in a managed instance group </compute/docs/instance-groups/> if the source images are encrypted with your own keys.'}, 'enableConfidentialCompute': {'type': 'boolean', 'description': 'Whether this disk is using confidential compute mode.'}, 'sourceSnapshotEncryptionKey': {'$ref': '#/$defs/CustomerEncryptionKey', 'description': 'The customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption> of the source snapshot.'}}, 'description': '[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.'}, 'LocalizedMessage': {'type': 'object', 'properties': {'locale': {'type': 'string', 'description': 'The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"'}, 'message': {'type': 'string', 'description': 'The localized error message in the above locale.'}}, 'description': 'Provides a localized error message that is safe to return to the user which can be attached to an RPC error.'}, 'FileContentBuffer': {'type': 'object', 'properties': {'content': {'type': 'string', 'format': 'byte', 'description': 'The raw content in the secure keys file.'}, 'fileType': {'enum': ['BIN', 'UNDEFINED', 'X509'], 'type': 'string', 'description': 'The file type of source file.', 'x-google-enum-descriptions': ['', '', '']}}}, 'QuotaExceededInfo': {'type': 'object', 'properties': {'limit': {'type': 'number', 'format': 'double', 'description': "Current effective quota limit. The limit's unit depends on the quota type or metric."}, 'limitName': {'type': 'string', 'description': 'The name of the quota limit.'}, 'dimensions': {'type': 'object', 'description': 'The map holding related quota dimensions.', 'additionalProperties': {'type': 'string'}}, 'metricName': {'type': 'string', 'description': 'The Compute Engine quota metric name.'}, 'futureLimit': {'type': 'number', 'format': 'double', 'description': "Future quota limit being rolled out. The limit's unit depends on the quota type or metric."}, 'rolloutStatus': {'enum': ['IN_PROGRESS', 'ROLLOUT_STATUS_UNSPECIFIED'], 'type': 'string', 'description': 'Rollout status of the future quota limit.', 'x-google-enum-descriptions': ['IN_PROGRESS - A rollout is in process which will change the limit value to future limit.', 'ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default value.']}}, 'description': 'Additional details for quota exceeded error for resource quota.'}, 'InitialStateConfig': {'type': 'object', 'properties': {'pk': {'$ref': '#/$defs/FileContentBuffer', 'description': 'The Platform Key (PK).'}, 'dbs': {'type': 'array', 'items': {'$ref': '#/$defs/FileContentBuffer'}, 'description': 'The Key Database (db).'}, 'dbxs': {'type': 'array', 'items': {'$ref': '#/$defs/FileContentBuffer'}, 'description': 'The forbidden key database (dbx).'}, 'keks': {'type': 'array', 'items': {'$ref': '#/$defs/FileContentBuffer'}, 'description': 'The Key Exchange Key (KEK).'}}, 'description': 'Initial State for shielded instance, these are public keys which are safe to store in public'}, 'PreservedNetworkIp': {'type': 'object', 'properties': {'ipAddress': {'$ref': '#/$defs/IpAddress', 'description': 'Ip address representation'}, 'autoDelete': {'enum': ['NEVER', 'ON_PERMANENT_INSTANCE_DELETION'], 'type': 'string', 'description': 'These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.', 'x-google-enum-descriptions': ['', '']}}}, 'CustomerEncryptionKey': {'type': 'object', 'properties': {'rawKey': {'type': 'string', 'deprecated': True, 'description': '[DEPRECATED] CSEK is no longer supported. Use CMEK instead. Specifies a 256-bit customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption>, encoded in RFC 4648 base64 <https://tools.ietf.org/html/rfc4648#section-4> to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=". Only one of the following fields should be set: this field, rsaEncryptedKey, kmsKeyName.'}, 'sha256': {'type': 'string', 'deprecated': True, 'description': '[DEPRECATED] CSEK is no longer supported. Use CMEK instead. [Output only] The RFC 4648 base64 <https://tools.ietf.org/html/rfc4648#section-4> encoded SHA-256 hash of the customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption> that protects this resource.'}, 'kmsKeyName': {'type': 'string', 'description': 'The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1. Only one of the following fields should be set: this field, rawKey, rsaEncryptedKey.'}, 'rsaEncryptedKey': {'type': 'string', 'deprecated': True, 'description': '[DEPRECATED] CSEK is no longer supported. Use CMEK instead. Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key </compute/docs/disks/customer-supplied-encryption#rsa-encryption> to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 <https://tools.ietf.org/html/rfc4648#section-4> encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem. Only one of the following fields should be set: this field, rawKey, kmsKeyName.'}, 'kmsKeyServiceAccount': {'type': 'string', 'description': 'The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ '}}}, 'PropertiesFromFlexibilityPolicy': {'type': 'object', 'properties': {'disks': {'type': 'array', 'items': {'$ref': '#/$defs/AttachedDisk'}, 'description': 'List of disks to be attached to the instance.'}, 'machineType': {'type': 'string', 'readOnly': True, 'description': 'Output only. The machine type to be used for this instance.'}, 'minCpuPlatform': {'type': 'string', 'description': "Name of the minimum CPU platform to be used by this instance. e.g. 'Intel Ice Lake'."}}}}, 'properties': {'nextPageToken': {'type': 'string', 'description': 'A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.'}, 'managedInstances': {'type': 'array', 'items': {'$ref': '#/$defs/ManagedInstance'}, 'description': 'The list of managed instances.'}}, 'description': 'Response message for listing managed instances.'}
list_reservations
Lists Compute Engine reservations. Details for each reservation include name, ID, creation timestamp, zone, status, specific reservation required, commitment, and linked commitments. Requires project and zone as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project', 'zone'], 'properties': {'zone': {'type': 'string', 'description': 'Required. The zone of the reservations.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The maximum number of reservations to return.'}, 'pageToken': {'type': 'string', 'description': 'Optional. A page token received from a previous call to list reservations.'}}, 'description': 'Request message for listing reservations basic info.'}
Output schema
{'type': 'object', '$defs': {'ReservationBasicInfo': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the reservation.'}, 'name': {'type': 'string', 'description': 'Name of the reservation.'}, 'zone': {'type': 'string', 'description': 'The zone of the reservation.'}, 'status': {'enum': ['CREATING', 'DELETING', 'INVALID', 'READY', 'UPDATING'], 'type': 'string', 'description': 'The status of the reservation.', 'x-google-enum-descriptions': ['Reservation resources are being allocated.', 'Reservation deletion is in progress.', '', 'Reservation resources have been allocated, and the reservation is ready for use.', 'Reservation update is in progress.']}, 'commitment': {'type': 'string', 'description': 'The commitment this reservation is tied to.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the reservation.'}, 'linkedCommitments': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The commitments linked to this reservation.'}, 'specificReservationRequired': {'type': 'boolean', 'description': '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.'}}, 'description': 'Basic information about a reservation.'}}, 'properties': {'reservations': {'type': 'array', 'items': {'$ref': '#/$defs/ReservationBasicInfo'}, 'description': 'The list of reservations.'}, 'nextPageToken': {'type': 'string', 'description': 'A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.'}}, 'description': 'Response message for listing reservations basic info.'}
list_snapshots
Lists snapshots in a project providing basic information per snapshot including name, id, status, creation time, disk size, storage bytes, source disk, and source disk id. Requires project as input.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['project'], 'properties': {'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The maximum number of snapshots to return.'}, 'pageToken': {'type': 'string', 'description': 'Optional. A page token received from a previous call to list snapshots.'}}, 'description': 'Request message for listing snapshots basic info.'}
Output schema
{'type': 'object', '$defs': {'SnapshotBasicInfo': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uint64', 'description': 'The unique identifier for the snapshot.'}, 'name': {'type': 'string', 'description': 'Name of the snapshot.'}, 'status': {'enum': ['CREATING', 'DELETING', 'FAILED', 'READY', 'UPLOADING'], 'type': 'string', 'description': 'The status of the snapshot.', 'x-google-enum-descriptions': ['Snapshot creation is in progress.', 'Snapshot is currently being deleted.', 'Snapshot creation failed.', 'Snapshot has been created successfully.', 'Snapshot is being uploaded.']}, 'createTime': {'type': 'string', 'format': 'date-time', 'description': 'Creation timestamp of the snapshot.'}, 'diskSizeGb': {'type': 'string', 'format': 'int64', 'description': 'Size of the source disk, specified in GB.'}, 'sourceDisk': {'type': 'string', 'description': 'The source disk of the snapshot.'}, 'sourceDiskId': {'type': 'string', 'description': 'The source disk id of the snapshot.'}, 'storageBytes': {'type': 'string', 'format': 'int64', 'description': 'A size of the storage used by the snapshot.'}}, 'description': 'Basic information about a snapshot.'}}, 'properties': {'snapshots': {'type': 'array', 'items': {'$ref': '#/$defs/SnapshotBasicInfo'}, 'description': 'The list of snapshots.'}, 'nextPageToken': {'type': 'string', 'description': 'A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.'}}, 'description': 'Response message for listing snapshots basic info.'}
reset_instance
Resets a Google Compute Engine virtual machine (VM) instance. Requires project, zone, and instance name as input. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.
Destructive
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The instance name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the instance.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for resetting an instance.'}
Output schema
{'type': 'object', 'properties': {'operationName': {'type': 'string', 'description': 'The operation name of the instance reset.'}}, 'description': 'Response message for resetting an instance.'}
set_instance_machine_type
Sets the machine type for a stopped Google Compute Engine instance to the specified machine type. Requires project, zone, instance name and machine type as input. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.
Destructive
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name', 'machineType'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The instance name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the instance.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}, 'machineType': {'type': 'string', 'description': 'Required. The machine type of the instance.'}}, 'description': 'Request message for setting machine type.'}
Output schema
{'type': 'object', 'properties': {'operationName': {'type': 'string', 'description': 'The operation name of the instance machine type change.'}}, 'description': 'Response message for setting machine type.'}
start_instance
Starts a Google Compute Engine virtual machine (VM) instance. Requires project, zone, and instance name as input. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.
Destructive
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The instance name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the instance.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for starting an instance.'}
Output schema
{'type': 'object', 'properties': {'operationName': {'type': 'string', 'description': 'The operation name of the instance start.'}}, 'description': 'Response message for starting an instance.'}
stop_instance
Stops a Google Compute Engine virtual machine (VM) instance. Requires project, zone, and instance name as input. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.
Destructive
Input schema
{'type': 'object', 'required': ['project', 'zone', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The instance name.', 'x-google-identifier': True}, 'zone': {'type': 'string', 'description': 'Required. The zone of the instance.'}, 'project': {'type': 'string', 'description': 'Required. Project ID for this request.'}}, 'description': 'Request message for stopping an instance.'}
Output schema
{'type': 'object', 'properties': {'operationName': {'type': 'string', 'description': 'The operation name of the instance stop.'}}, 'description': 'Response message for stopping an instance.'}
Changed
list_commitment_reservations
Oct. 1, 2026, 2:53 a.m.
Changed
get_commitment_basic_info
Oct. 1, 2026, 2:53 a.m.
Changed
list_commitments
Oct. 1, 2026, 2:53 a.m.
Changed
get_reservation_details
Oct. 1, 2026, 2:53 a.m.
Changed
get_zone_operation
Oct. 1, 2026, 2:53 a.m.
Changed
get_instance_template_properties
Oct. 1, 2026, 2:53 a.m.
Changed
list_managed_instances
Oct. 1, 2026, 2:53 a.m.
Changed
list_instance_group_managers
Oct. 1, 2026, 2:53 a.m.
Changed
get_instance_group_manager_basic_info
Oct. 1, 2026, 2:53 a.m.
Changed
list_instance_attached_disks
Oct. 1, 2026, 2:53 a.m.
Changed
get_commitment_basic_info
Sept. 19, 2026, 2:51 a.m.
Changed
list_commitments
Sept. 19, 2026, 2:51 a.m.
Changed
get_instance_template_properties
Sept. 19, 2026, 2:51 a.m.
Changed
list_managed_instances
Sept. 19, 2026, 2:51 a.m.
Added
list_snapshots
Sept. 17, 2026, 12:35 p.m.
Added
list_commitment_reservations
Sept. 17, 2026, 12:35 p.m.
Added
get_commitment_basic_info
Sept. 17, 2026, 12:35 p.m.
Added
list_commitments
Sept. 17, 2026, 12:35 p.m.
Added
list_reservations
Sept. 17, 2026, 12:35 p.m.
Added
get_reservation_details
Sept. 17, 2026, 12:35 p.m.
Added
get_reservation_basic_info
Sept. 17, 2026, 12:35 p.m.
Added
get_zone_operation
Sept. 17, 2026, 12:35 p.m.
Added
list_images
Sept. 17, 2026, 12:35 p.m.
Added
list_machine_types
Sept. 17, 2026, 12:35 p.m.
Added
list_accelerator_types
Sept. 17, 2026, 12:35 p.m.
Added
list_disks
Sept. 17, 2026, 12:35 p.m.
Added
get_disk_performance_config
Sept. 17, 2026, 12:35 p.m.
Added
get_disk_basic_info
Sept. 17, 2026, 12:35 p.m.
Added
get_instance_template_properties
Sept. 17, 2026, 12:35 p.m.
Added
get_instance_template_basic_info
Sept. 17, 2026, 12:35 p.m.