MCP Tools Reference: backupdr.googleapis.com

Tool: RestoreBackup

Restores a VM or Disk from a specified Backup. This is a long-running operation and returns an operation ID. You may need to check the status using get_operation.

The following sample demonstrate how to use curl to invoke the RestoreBackup MCP tool.

Curl Request
                  
curl --location 'https://backupdr.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "RestoreBackup",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Input Schema

Request message for restoring from a Backup.

RestoreBackupRequest

JSON representation
{
  "name": string,
  "requestId": string,

  // Union field target_environment can be only one of the following:
  "computeInstanceTargetEnvironment": {
    object (ComputeInstanceTargetEnvironment)
  },
  "diskTargetEnvironment": {
    object (DiskTargetEnvironment)
  },
  "regionDiskTargetEnvironment": {
    object (RegionDiskTargetEnvironment)
  }
  // End of list of possible types for union field target_environment.

  // Union field instance_properties can be only one of the following:
  "computeInstanceRestoreProperties": {
    object (ComputeInstanceRestoreProperties)
  },
  "diskRestoreProperties": {
    object (DiskRestoreProperties)
  }
  // End of list of possible types for union field instance_properties.

  // Union field _clear_overrides_field_mask can be only one of the following:
  "clearOverridesFieldMask": string
  // End of list of possible types for union field _clear_overrides_field_mask.
}
Fields
name

string

Required. The resource name of the Backup instance, in the format 'projects/*/locations/*/backupVaults/*/dataSources/*/backups/'.

requestId

string

Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

Union field target_environment. The target environment for the restore operation. target_environment can be only one of the following:
computeInstanceTargetEnvironment

object (ComputeInstanceTargetEnvironment)

Compute Engine target environment to be used during restore.

diskTargetEnvironment

object (DiskTargetEnvironment)

Disk target environment to be used during restore.

regionDiskTargetEnvironment

object (RegionDiskTargetEnvironment)

Region disk target environment to be used during restore.

Union field instance_properties. The property overrides for the instance being restored. instance_properties can be only one of the following:
computeInstanceRestoreProperties

object (ComputeInstanceRestoreProperties)

Compute Engine instance properties to be overridden during restore.

diskRestoreProperties

object (DiskRestoreProperties)

Disk properties to be overridden during restore.

Union field _clear_overrides_field_mask.

_clear_overrides_field_mask can be only one of the following:

clearOverridesFieldMask

string (FieldMask format)

Optional. A field mask used to clear server-side default values for fields within the instance_properties oneof.

When a field in this mask is cleared, the server will not apply its default logic (like inheriting a value from the source) for that field.

The most common current use case is clearing default encryption keys.

Examples of field mask paths: - Compute Instance Disks: compute_instance_restore_properties.disks.*.disk_encryption_key - Single Disk: disk_restore_properties.disk_encryption_key

This is a comma-separated list of fully qualified names of fields. Example: "user.displayName,photo".

ComputeInstanceTargetEnvironment

JSON representation
{
  "project": string,
  "zone": string,

  // Union field _use_project_service_account can be only one of the following:
  "useProjectServiceAccount": boolean
  // End of list of possible types for union field _use_project_service_account.
}
Fields
project

string

Required. Target project for the Compute Engine instance.

zone

string

Required. The zone of the Compute Engine instance.

Union field _use_project_service_account.

_use_project_service_account can be only one of the following:

useProjectServiceAccount

boolean

Optional. Whether to use the project service account for the Compute Engine instance restore.

DiskTargetEnvironment

JSON representation
{
  "project": string,
  "zone": string,

  // Union field _use_project_service_account can be only one of the following:
  "useProjectServiceAccount": boolean
  // End of list of possible types for union field _use_project_service_account.
}
Fields
project

string

Required. Target project for the disk.

zone

string

Required. Target zone for the disk.

Union field _use_project_service_account.

_use_project_service_account can be only one of the following:

useProjectServiceAccount

boolean

Optional. Whether to use the project service account for the disk restore.

RegionDiskTargetEnvironment

JSON representation
{
  "project": string,
  "region": string,
  "replicaZones": [
    string
  ],

  // Union field _use_project_service_account can be only one of the following:
  "useProjectServiceAccount": boolean
  // End of list of possible types for union field _use_project_service_account.
}
Fields
project

string

Required. Target project for the disk.

region

string

Required. Target region for the disk.

replicaZones[]

string

Required. Target URLs of the replica zones for the disk.

Union field _use_project_service_account.

_use_project_service_account can be only one of the following:

useProjectServiceAccount

boolean

Optional. Whether to use the project service account for the disk restore.

ComputeInstanceRestoreProperties

JSON representation
{
  "disks": [
    {
      object (AttachedDisk)
    }
  ],
  "guestAccelerators": [
    {
      object (AcceleratorConfig)
    }
  ],
  "labels": {
    string: string,
    ...
  },
  "networkInterfaces": [
    {
      object (NetworkInterface)
    }
  ],
  "resourcePolicies": [
    string
  ],
  "serviceAccounts": [
    {
      object (ServiceAccount)
    }
  ],

  // Union field _name can be only one of the following:
  "name": string
  // End of list of possible types for union field _name.

  // Union field _advanced_machine_features can be only one of the following:
  "advancedMachineFeatures": {
    object (AdvancedMachineFeatures)
  }
  // End of list of possible types for union field _advanced_machine_features.

  // Union field _can_ip_forward can be only one of the following:
  "canIpForward": boolean
  // End of list of possible types for union field _can_ip_forward.

  // Union field _confidential_instance_config can be only one of the following:
  "confidentialInstanceConfig": {
    object (ConfidentialInstanceConfig)
  }
  // End of list of possible types for union field _confidential_instance_config.

  // Union field _deletion_protection can be only one of the following:
  "deletionProtection": boolean
  // End of list of possible types for union field _deletion_protection.

  // Union field _description can be only one of the following:
  "description": string
  // End of list of possible types for union field _description.

  // Union field _display_device can be only one of the following:
  "displayDevice": {
    object (DisplayDevice)
  }
  // End of list of possible types for union field _display_device.

  // Union field _hostname can be only one of the following:
  "hostname": string
  // End of list of possible types for union field _hostname.

  // Union field _instance_encryption_key can be only one of the following:
  "instanceEncryptionKey": {
    object (CustomerEncryptionKey)
  }
  // End of list of possible types for union field _instance_encryption_key.

  // Union field _key_revocation_action_type can be only one of the following:
  "keyRevocationActionType": enum (KeyRevocationActionType)
  // End of list of possible types for union field _key_revocation_action_type.

  // Union field _machine_type can be only one of the following:
  "machineType": string
  // End of list of possible types for union field _machine_type.

  // Union field _metadata can be only one of the following:
  "metadata": {
    object (Metadata)
  }
  // End of list of possible types for union field _metadata.

  // Union field _min_cpu_platform can be only one of the following:
  "minCpuPlatform": string
  // End of list of possible types for union field _min_cpu_platform.

  // Union field _network_performance_config can be only one of the following:
  "networkPerformanceConfig": {
    object (NetworkPerformanceConfig)
  }
  // End of list of possible types for union field _network_performance_config.

  // Union field _params can be only one of the following:
  "params": {
    object (InstanceParams)
  }
  // End of list of possible types for union field _params.

  // Union field _private_ipv6_google_access can be only one of the following:
  "privateIpv6GoogleAccess": enum (InstancePrivateIpv6GoogleAccess)
  // End of list of possible types for union field _private_ipv6_google_access.

  // Union field _allocation_affinity can be only one of the following:
  "reservationAffinity": {
    object (AllocationAffinity)
  }
  // End of list of possible types for union field _allocation_affinity.

  // Union field _scheduling can be only one of the following:
  "scheduling": {
    object (Scheduling)
  }
  // End of list of possible types for union field _scheduling.

  // Union field _tags can be only one of the following:
  "tags": {
    object (Tags)
  }
  // End of list of possible types for union field _tags.
}
Fields
disks[]

object (AttachedDisk)

Optional. Array of disks associated with this instance. Persistent disks must be created before you can assign them. Source regional persistent disks will be restored with default replica zones if not specified.

guestAccelerators[]

object (AcceleratorConfig)

Optional. A list of the type and count of accelerator cards attached to the instance.

labels

map (key: string, value: string)

Optional. Labels to apply to this instance.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

networkInterfaces[]

object (NetworkInterface)

Optional. An array of network configurations for this instance. These specify how interfaces are configured to interact with other network services, such as connecting to the internet. Multiple interfaces are supported per instance. Required to restore in different project or region.

resourcePolicies[]

string

Optional. Resource policies applied to this instance. By default, no resource policies will be applied.

serviceAccounts[]

object (ServiceAccount)

Optional. A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.

Union field _name.

_name can be only one of the following:

name

string

Required. Name of the compute instance.

Union field _advanced_machine_features.

_advanced_machine_features can be only one of the following:

advancedMachineFeatures

object (AdvancedMachineFeatures)

Optional. Controls for advanced machine-related behavior features.

Union field _can_ip_forward.

_can_ip_forward can be only one of the following:

canIpForward

boolean

Optional. Allows this instance to send and receive packets with non-matching destination or source IPs.

Union field _confidential_instance_config.

_confidential_instance_config can be only one of the following:

confidentialInstanceConfig

object (ConfidentialInstanceConfig)

Optional. Controls Confidential compute options on the instance

Union field _deletion_protection.

_deletion_protection can be only one of the following:

deletionProtection

boolean

Optional. Whether the resource should be protected against deletion.

Union field _description.

_description can be only one of the following:

description

string

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

Union field _display_device.

_display_device can be only one of the following:

displayDevice

object (DisplayDevice)

Optional. Enables display device for the instance.

Union field _hostname.

_hostname can be only one of the following:

hostname

string

Optional. Specifies the hostname of the instance. The specified hostname must be RFC1035 compliant. If hostname is not specified, the default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.

Union field _instance_encryption_key.

_instance_encryption_key can be only one of the following:

instanceEncryptionKey

object (CustomerEncryptionKey)

Optional. Encrypts suspended data for an instance with a customer-managed encryption key.

Union field _key_revocation_action_type.

_key_revocation_action_type can be only one of the following:

keyRevocationActionType

enum (KeyRevocationActionType)

Optional. KeyRevocationActionType of the instance.

Union field _machine_type.

_machine_type can be only one of the following:

machineType

string

Optional. Full or partial URL of the machine type resource to use for this instance.

Union field _metadata.

_metadata can be only one of the following:

metadata

object (Metadata)

Optional. This includes custom metadata and predefined keys.

Union field _min_cpu_platform.

_min_cpu_platform can be only one of the following:

minCpuPlatform

string

Optional. Minimum CPU platform to use for this instance.

Union field _network_performance_config.

_network_performance_config can be only one of the following:

networkPerformanceConfig

object (NetworkPerformanceConfig)

Optional. Configure network performance such as egress bandwidth tier.

Union field _params.

_params can be only one of the following:

params

object (InstanceParams)

Input only. Additional params passed with the request, but not persisted as part of resource payload.

Union field _private_ipv6_google_access.

_private_ipv6_google_access can be only one of the following:

privateIpv6GoogleAccess

enum (InstancePrivateIpv6GoogleAccess)

Optional. The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.

Union field _allocation_affinity.

_allocation_affinity can be only one of the following:

reservationAffinity

object (AllocationAffinity)

Optional. Specifies the reservations that this instance can consume from.

Union field _scheduling.

_scheduling can be only one of the following:

scheduling

object (Scheduling)

Optional. Sets the scheduling options for this instance.

Union field _tags.

_tags can be only one of the following:

tags

object (Tags)

Optional. Tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation.

AdvancedMachineFeatures

JSON representation
{

  // Union field _enable_nested_virtualization can be only one of the following:
  "enableNestedVirtualization": boolean
  // End of list of possible types for union field _enable_nested_virtualization.

  // Union field _threads_per_core can be only one of the following:
  "threadsPerCore": integer
  // End of list of possible types for union field _threads_per_core.

  // Union field _visible_core_count can be only one of the following:
  "visibleCoreCount": integer
  // End of list of possible types for union field _visible_core_count.

  // Union field _enable_uefi_networking can be only one of the following:
  "enableUefiNetworking": boolean
  // End of list of possible types for union field _enable_uefi_networking.
}
Fields

Union field _enable_nested_virtualization.

_enable_nested_virtualization can be only one of the following:

enableNestedVirtualization

boolean

Optional. Whether to enable nested virtualization or not (default is false).

Union field _threads_per_core.

_threads_per_core can be only one of the following:

threadsPerCore

integer

Optional. 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.

Union field _visible_core_count.

_visible_core_count can be only one of the following:

visibleCoreCount

integer

Optional. 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.

Union field _enable_uefi_networking.

_enable_uefi_networking can be only one of the following:

enableUefiNetworking

boolean

Optional. Whether to enable UEFI networking for instance creation.

ConfidentialInstanceConfig

JSON representation
{

  // Union field _enable_confidential_compute can be only one of the following:
  "enableConfidentialCompute": boolean
  // End of list of possible types for union field _enable_confidential_compute.
}
Fields

Union field _enable_confidential_compute.

_enable_confidential_compute can be only one of the following:

enableConfidentialCompute

boolean

Optional. Defines whether the instance should have confidential compute enabled.

AttachedDisk

JSON representation
{
  "license": [
    string
  ],
  "guestOsFeature": [
    {
      object (GuestOsFeature)
    }
  ],

  // Union field _initialize_params can be only one of the following:
  "initializeParams": {
    object (InitializeParams)
  }
  // End of list of possible types for union field _initialize_params.

  // Union field _device_name can be only one of the following:
  "deviceName": string
  // End of list of possible types for union field _device_name.

  // Union field _kind can be only one of the following:
  "kind": string
  // End of list of possible types for union field _kind.

  // Union field _disk_type_deprecated can be only one of the following:
  "diskTypeDeprecated": enum (DiskType)
  // End of list of possible types for union field _disk_type_deprecated.

  // Union field _mode can be only one of the following:
  "mode": enum (DiskMode)
  // End of list of possible types for union field _mode.

  // Union field _source can be only one of the following:
  "source": string
  // End of list of possible types for union field _source.

  // Union field _index can be only one of the following:
  "index": string
  // End of list of possible types for union field _index.

  // Union field _boot can be only one of the following:
  "boot": boolean
  // End of list of possible types for union field _boot.

  // Union field _auto_delete can be only one of the following:
  "autoDelete": boolean
  // End of list of possible types for union field _auto_delete.

  // Union field _disk_interface can be only one of the following:
  "diskInterface": enum (DiskInterface)
  // End of list of possible types for union field _disk_interface.

  // Union field _disk_encryption_key can be only one of the following:
  "diskEncryptionKey": {
    object (CustomerEncryptionKey)
  }
  // End of list of possible types for union field _disk_encryption_key.

  // Union field _disk_size_gb can be only one of the following:
  "diskSizeGb": string
  // End of list of possible types for union field _disk_size_gb.

  // Union field _saved_state can be only one of the following:
  "savedState": enum (DiskSavedState)
  // End of list of possible types for union field _saved_state.

  // Union field _disk_type can be only one of the following:
  "diskType": string
  // End of list of possible types for union field _disk_type.

  // Union field _type can be only one of the following:
  "type": enum (DiskType)
  // End of list of possible types for union field _type.
}
Fields
license[]

string

Optional. Any valid publicly visible licenses.

guestOsFeature[]

object (GuestOsFeature)

Optional. A list of features to enable on the guest operating system. Applicable only for bootable images.

Union field _initialize_params.

_initialize_params can be only one of the following:

initializeParams

object (InitializeParams)

Optional. Specifies the parameters to initialize this disk.

Union field _device_name.

_device_name can be only one of the following:

deviceName

string

Optional. This is used as an identifier for the disks. This is the unique name has to provided to modify disk parameters like disk_name and replica_zones (in case of RePDs)

Union field _kind.

_kind can be only one of the following:

kind

string

Optional. Type of the resource.

Union field _disk_type_deprecated.

_disk_type_deprecated can be only one of the following:

diskTypeDeprecated
(deprecated)

enum (DiskType)

Specifies the type of the disk.

Union field _mode.

_mode can be only one of the following:

mode

enum (DiskMode)

Optional. The mode in which to attach this disk.

Union field _source.

_source can be only one of the following:

source

string

Optional. Specifies a valid partial or full URL to an existing Persistent Disk resource.

Union field _index.

_index can be only one of the following:

index

string (int64 format)

Optional. A zero-based index to this disk, where 0 is reserved for the boot disk.

Union field _boot.

_boot can be only one of the following:

boot

boolean

Optional. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.

Union field _auto_delete.

_auto_delete can be only one of the following:

autoDelete

boolean

Optional. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).

Union field _disk_interface.

_disk_interface can be only one of the following:

diskInterface

enum (DiskInterface)

Optional. Specifies the disk interface to use for attaching this disk.

Union field _disk_encryption_key.

_disk_encryption_key can be only one of the following:

diskEncryptionKey

object (CustomerEncryptionKey)

Optional. Encrypts or decrypts a disk using a customer-supplied encryption key.

Union field _disk_size_gb.

_disk_size_gb can be only one of the following:

diskSizeGb

string (int64 format)

Optional. The size of the disk in GB.

Union field _saved_state.

_saved_state can be only one of the following:

savedState

enum (DiskSavedState)

Optional. Output only. The state of the disk.

Union field _disk_type.

_disk_type can be only one of the following:

diskType

string

Optional. Output only. The URI of the disk type resource. For example: projects/project/zones/zone/diskTypes/pd-standard or pd-ssd

Union field _type.

_type can be only one of the following:

type

enum (DiskType)

Optional. Specifies the type of the disk.

InitializeParams

JSON representation
{
  "replicaZones": [
    string
  ],

  // Union field _disk_name can be only one of the following:
  "diskName": string
  // End of list of possible types for union field _disk_name.
}
Fields
replicaZones[]

string

Optional. URL of the zone where the disk should be created. Required for each regional disk associated with the instance.

Union field _disk_name.

_disk_name can be only one of the following:

diskName

string

Optional. Specifies the disk name. If not specified, the default is to use the name of the instance.

GuestOsFeature

JSON representation
{

  // Union field _type can be only one of the following:
  "type": enum (FeatureType)
  // End of list of possible types for union field _type.
}
Fields

Union field _type.

_type can be only one of the following:

type

enum (FeatureType)

The ID of a supported feature.

CustomerEncryptionKey

JSON representation
{

  // Union field key can be only one of the following:
  "rawKey": string,
  "rsaEncryptedKey": string,
  "kmsKeyName": string
  // End of list of possible types for union field key.

  // Union field _kms_key_service_account can be only one of the following:
  "kmsKeyServiceAccount": string
  // End of list of possible types for union field _kms_key_service_account.
}
Fields
Union field key. The key to use for encryption. key can be only one of the following:
rawKey

string

Optional. Specifies a 256-bit customer-supplied encryption key.

rsaEncryptedKey

string

Optional. RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.

kmsKeyName

string

Optional. The name of the encryption key that is stored in Google Cloud KMS.

Union field _kms_key_service_account.

_kms_key_service_account can be only one of the following:

kmsKeyServiceAccount

string

Optional. The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.

DisplayDevice

JSON representation
{

  // Union field _enable_display can be only one of the following:
  "enableDisplay": boolean
  // End of list of possible types for union field _enable_display.
}
Fields

Union field _enable_display.

_enable_display can be only one of the following:

enableDisplay

boolean

Optional. Enables display for the Compute Engine VM

AcceleratorConfig

JSON representation
{

  // Union field _accelerator_type can be only one of the following:
  "acceleratorType": string
  // End of list of possible types for union field _accelerator_type.

  // Union field _accelerator_count can be only one of the following:
  "acceleratorCount": integer
  // End of list of possible types for union field _accelerator_count.
}
Fields

Union field _accelerator_type.

_accelerator_type can be only one of the following:

acceleratorType

string

Optional. Full or partial URL of the accelerator type resource to attach to this instance.

Union field _accelerator_count.

_accelerator_count can be only one of the following:

acceleratorCount

integer

Optional. The number of the guest accelerator cards exposed to this instance.

LabelsEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

Metadata

JSON representation
{
  "items": [
    {
      object (Entry)
    }
  ]
}
Fields
items[]

object (Entry)

Optional. Array of key/value pairs. The total size of all keys and values must be less than 512 KB.

Entry

JSON representation
{

  // Union field _key can be only one of the following:
  "key": string
  // End of list of possible types for union field _key.

  // Union field _value can be only one of the following:
  "value": string
  // End of list of possible types for union field _value.
}
Fields

Union field _key.

_key can be only one of the following:

key

string

Optional. Key for the metadata entry.

Union field _value.

_value can be only one of the following:

value

string

Optional. 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).

NetworkInterface

JSON representation
{
  "accessConfigs": [
    {
      object (AccessConfig)
    }
  ],
  "ipv6AccessConfigs": [
    {
      object (AccessConfig)
    }
  ],
  "aliasIpRanges": [
    {
      object (AliasIpRange)
    }
  ],

  // Union field _network can be only one of the following:
  "network": string
  // End of list of possible types for union field _network.

  // Union field _subnetwork can be only one of the following:
  "subnetwork": string
  // End of list of possible types for union field _subnetwork.

  // Union field _ip_address can be only one of the following:
  "networkIP": string
  // End of list of possible types for union field _ip_address.

  // Union field _ipv6_address can be only one of the following:
  "ipv6Address": string
  // End of list of possible types for union field _ipv6_address.

  // Union field _internal_ipv6_prefix_length can be only one of the following:
  "internalIpv6PrefixLength": integer
  // End of list of possible types for union field _internal_ipv6_prefix_length.

  // Union field _name can be only one of the following:
  "name": string
  // End of list of possible types for union field _name.

  // Union field _stack_type can be only one of the following:
  "stackType": enum (StackType)
  // End of list of possible types for union field _stack_type.

  // Union field _ipv6_access_type can be only one of the following:
  "ipv6AccessType": enum (Ipv6AccessType)
  // End of list of possible types for union field _ipv6_access_type.

  // Union field _queue_count can be only one of the following:
  "queueCount": integer
  // End of list of possible types for union field _queue_count.

  // Union field _nic_type can be only one of the following:
  "nicType": enum (NicType)
  // End of list of possible types for union field _nic_type.

  // Union field _network_attachment can be only one of the following:
  "networkAttachment": string
  // End of list of possible types for union field _network_attachment.
}
Fields
accessConfigs[]

object (AccessConfig)

Optional. 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.

ipv6AccessConfigs[]

object (AccessConfig)

Optional. 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.

aliasIpRanges[]

object (AliasIpRange)

Optional. An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.

Union field _network.

_network can be only one of the following:

network

string

Optional. URL of the VPC network resource for this instance.

Union field _subnetwork.

_subnetwork can be only one of the following:

subnetwork

string

Optional. The URL of the Subnetwork resource for this instance.

Union field _ip_address.

_ip_address can be only one of the following:

networkIP

string

Optional. 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.

Union field _ipv6_address.

_ipv6_address can be only one of the following:

ipv6Address

string

Optional. 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.

Union field _internal_ipv6_prefix_length.

_internal_ipv6_prefix_length can be only one of the following:

internalIpv6PrefixLength

integer

Optional. The prefix length of the primary internal IPv6 range.

Union field _name.

_name can be only one of the following:

name

string

Output only. [Output Only] The name of the network interface, which is generated by the server.

Union field _stack_type.

_stack_type can be only one of the following:

stackType

enum (StackType)

The stack type for this network interface.

Union field _ipv6_access_type.

_ipv6_access_type can be only one of the following:

ipv6AccessType

enum (Ipv6AccessType)

Optional. [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.

Union field _queue_count.

_queue_count can be only one of the following:

queueCount

integer

Optional. 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.

Union field _nic_type.

_nic_type can be only one of the following:

nicType

enum (NicType)

Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.

Union field _network_attachment.

_network_attachment can be only one of the following:

networkAttachment

string

Optional. 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}.

AccessConfig

JSON representation
{

  // Union field _type can be only one of the following:
  "type": enum (AccessType)
  // End of list of possible types for union field _type.

  // Union field _name can be only one of the following:
  "name": string
  // End of list of possible types for union field _name.

  // Union field _external_ip can be only one of the following:
  "natIP": string
  // End of list of possible types for union field _external_ip.

  // Union field _external_ipv6 can be only one of the following:
  "externalIpv6": string
  // End of list of possible types for union field _external_ipv6.

  // Union field _external_ipv6_prefix_length can be only one of the following:
  "externalIpv6PrefixLength": integer
  // End of list of possible types for union field _external_ipv6_prefix_length.

  // Union field _set_public_ptr can be only one of the following:
  "setPublicPtr": boolean
  // End of list of possible types for union field _set_public_ptr.

  // Union field _public_ptr_domain_name can be only one of the following:
  "publicPtrDomainName": string
  // End of list of possible types for union field _public_ptr_domain_name.

  // Union field _network_tier can be only one of the following:
  "networkTier": enum (NetworkTier)
  // End of list of possible types for union field _network_tier.
}
Fields

Union field _type.

_type can be only one of the following:

type

enum (AccessType)

Optional. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.

Union field _name.

_name can be only one of the following:

name

string

Optional. The name of this access configuration.

Union field _external_ip.

_external_ip can be only one of the following:

natIP

string

Optional. The external IP address of this access configuration.

Union field _external_ipv6.

_external_ipv6 can be only one of the following:

externalIpv6

string

Optional. The external IPv6 address of this access configuration.

Union field _external_ipv6_prefix_length.

_external_ipv6_prefix_length can be only one of the following:

externalIpv6PrefixLength

integer

Optional. The prefix length of the external IPv6 range.

Union field _set_public_ptr.

_set_public_ptr can be only one of the following:

setPublicPtr

boolean

Optional. Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name.

Union field _public_ptr_domain_name.

_public_ptr_domain_name can be only one of the following:

publicPtrDomainName

string

Optional. The DNS domain name for the public PTR record.

Union field _network_tier.

_network_tier can be only one of the following:

networkTier

enum (NetworkTier)

Optional. This signifies the networking tier used for configuring this access

AliasIpRange

JSON representation
{

  // Union field _ip_cidr_range can be only one of the following:
  "ipCidrRange": string
  // End of list of possible types for union field _ip_cidr_range.

  // Union field _subnetwork_range_name can be only one of the following:
  "subnetworkRangeName": string
  // End of list of possible types for union field _subnetwork_range_name.
}
Fields

Union field _ip_cidr_range.

_ip_cidr_range can be only one of the following:

ipCidrRange

string

Optional. The IP alias ranges to allocate for this interface.

Union field _subnetwork_range_name.

_subnetwork_range_name can be only one of the following:

subnetworkRangeName

string

Optional. 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.

NetworkPerformanceConfig

JSON representation
{

  // Union field _total_egress_bandwidth_tier can be only one of the following:
  "totalEgressBandwidthTier": enum (Tier)
  // End of list of possible types for union field _total_egress_bandwidth_tier.
}
Fields

Union field _total_egress_bandwidth_tier.

_total_egress_bandwidth_tier can be only one of the following:

totalEgressBandwidthTier

enum (Tier)

Optional. The tier of the total egress bandwidth.

InstanceParams

JSON representation
{
  "resourceManagerTags": {
    string: string,
    ...
  }
}
Fields
resourceManagerTags

map (key: string, value: string)

Optional. Resource manager tags to be bound to the instance.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ResourceManagerTagsEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

AllocationAffinity

JSON representation
{
  "values": [
    string
  ],

  // Union field _consume_allocation_type can be only one of the following:
  "consumeReservationType": enum (Type)
  // End of list of possible types for union field _consume_allocation_type.

  // Union field _key can be only one of the following:
  "key": string
  // End of list of possible types for union field _key.
}
Fields
values[]

string

Optional. Corresponds to the label values of a reservation resource.

Union field _consume_allocation_type.

_consume_allocation_type can be only one of the following:

consumeReservationType

enum (Type)

Optional. Specifies the type of reservation from which this instance can consume

Union field _key.

_key can be only one of the following:

key

string

Optional. Corresponds to the label key of a reservation resource.

Scheduling

JSON representation
{
  "nodeAffinities": [
    {
      object (NodeAffinity)
    }
  ],

  // Union field _on_host_maintenance can be only one of the following:
  "onHostMaintenance": enum (OnHostMaintenance)
  // End of list of possible types for union field _on_host_maintenance.

  // Union field _automatic_restart can be only one of the following:
  "automaticRestart": boolean
  // End of list of possible types for union field _automatic_restart.

  // Union field _preemptible can be only one of the following:
  "preemptible": boolean
  // End of list of possible types for union field _preemptible.

  // Union field _min_node_cpus can be only one of the following:
  "minNodeCpus": integer
  // End of list of possible types for union field _min_node_cpus.

  // Union field _provisioning_model can be only one of the following:
  "provisioningModel": enum (ProvisioningModel)
  // End of list of possible types for union field _provisioning_model.

  // Union field _instance_termination_action can be only one of the following:
  "instanceTerminationAction": enum (InstanceTerminationAction)
  // End of list of possible types for union field _instance_termination_action.

  // Union field _local_ssd_recovery_timeout can be only one of the following:
  "localSsdRecoveryTimeout": {
    object (SchedulingDuration)
  }
  // End of list of possible types for union field _local_ssd_recovery_timeout.
}
Fields
nodeAffinities[]

object (NodeAffinity)

Optional. A set of node affinity and anti-affinity configurations. Overrides reservationAffinity.

Union field _on_host_maintenance.

_on_host_maintenance can be only one of the following:

onHostMaintenance

enum (OnHostMaintenance)

Optional. Defines the maintenance behavior for this instance.

Union field _automatic_restart.

_automatic_restart can be only one of the following:

automaticRestart

boolean

Optional. Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).

Union field _preemptible.

_preemptible can be only one of the following:

preemptible

boolean

Optional. Defines whether the instance is preemptible.

Union field _min_node_cpus.

_min_node_cpus can be only one of the following:

minNodeCpus

integer

Optional. The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.

Union field _provisioning_model.

_provisioning_model can be only one of the following:

provisioningModel

enum (ProvisioningModel)

Optional. Specifies the provisioning model of the instance.

Union field _instance_termination_action.

_instance_termination_action can be only one of the following:

instanceTerminationAction

enum (InstanceTerminationAction)

Optional. Specifies the termination action for the instance.

Union field _local_ssd_recovery_timeout.

_local_ssd_recovery_timeout can be only one of the following:

localSsdRecoveryTimeout

object (SchedulingDuration)

Optional. 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.

NodeAffinity

JSON representation
{
  "values": [
    string
  ],

  // Union field _key can be only one of the following:
  "key": string
  // End of list of possible types for union field _key.

  // Union field _operator can be only one of the following:
  "operator": enum (Operator)
  // End of list of possible types for union field _operator.
}
Fields
values[]

string

Optional. Corresponds to the label values of Node resource.

Union field _key.

_key can be only one of the following:

key

string

Optional. Corresponds to the label key of Node resource.

Union field _operator.

_operator can be only one of the following:

operator

enum (Operator)

Optional. Defines the operation of node selection.

SchedulingDuration

JSON representation
{

  // Union field _seconds can be only one of the following:
  "seconds": string
  // End of list of possible types for union field _seconds.

  // Union field _nanos can be only one of the following:
  "nanos": integer
  // End of list of possible types for union field _nanos.
}
Fields

Union field _seconds.

_seconds can be only one of the following:

seconds

string (int64 format)

Optional. Span of time at a resolution of a second.

Union field _nanos.

_nanos can be only one of the following:

nanos

integer

Optional. Span of time that's a fraction of a second at nanosecond resolution.

ServiceAccount

JSON representation
{
  "scopes": [
    string
  ],

  // Union field _email can be only one of the following:
  "email": string
  // End of list of possible types for union field _email.
}
Fields
scopes[]

string

Optional. The list of scopes to be made available for this service account.

Union field _email.

_email can be only one of the following:

email

string

Optional. Email address of the service account.

Tags

JSON representation
{
  "items": [
    string
  ]
}
Fields
items[]

string

Optional. An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.

DiskRestoreProperties

JSON representation
{
  "licenses": [
    string
  ],
  "guestOsFeature": [
    {
      object (GuestOsFeature)
    }
  ],
  "resourcePolicy": [
    string
  ],
  "labels": {
    string: string,
    ...
  },
  "resourceManagerTags": {
    string: string,
    ...
  },

  // Union field _name can be only one of the following:
  "name": string
  // End of list of possible types for union field _name.

  // Union field _description can be only one of the following:
  "description": string
  // End of list of possible types for union field _description.

  // Union field _size_gb can be only one of the following:
  "sizeGb": string
  // End of list of possible types for union field _size_gb.

  // Union field _disk_encryption_key can be only one of the following:
  "diskEncryptionKey": {
    object (CustomerEncryptionKey)
  }
  // End of list of possible types for union field _disk_encryption_key.

  // Union field _physical_block_size_bytes can be only one of the following:
  "physicalBlockSizeBytes": string
  // End of list of possible types for union field _physical_block_size_bytes.

  // Union field _provisioned_iops can be only one of the following:
  "provisionedIops": string
  // End of list of possible types for union field _provisioned_iops.

  // Union field _provisioned_throughput can be only one of the following:
  "provisionedThroughput": string
  // End of list of possible types for union field _provisioned_throughput.

  // Union field _enable_confidential_compute can be only one of the following:
  "enableConfidentialCompute": boolean
  // End of list of possible types for union field _enable_confidential_compute.

  // Union field _storage_pool can be only one of the following:
  "storagePool": string
  // End of list of possible types for union field _storage_pool.

  // Union field _access_mode can be only one of the following:
  "accessMode": enum (AccessMode)
  // End of list of possible types for union field _access_mode.

  // Union field _architecture can be only one of the following:
  "architecture": enum (Architecture)
  // End of list of possible types for union field _architecture.

  // Union field _type can be only one of the following:
  "type": string
  // End of list of possible types for union field _type.
}
Fields
licenses[]

string

Optional. A list of publicly available licenses that are applicable to this backup. This is applicable if the original image had licenses attached, e.g. Windows image

guestOsFeature[]

object (GuestOsFeature)

Optional. A list of features to enable in the guest operating system. This is applicable only for bootable images.

resourcePolicy[]

string

Optional. Resource policies applied to this disk.

labels

map (key: string, value: string)

Optional. Labels to apply to this disk. These can be modified later using

setLabels

method. Label values can be empty.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

resourceManagerTags

map (key: string, value: string)

Optional. Resource manager tags to be bound to the disk.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Union field _name.

_name can be only one of the following:

name

string

Required. Name of the disk.

Union field _description.

_description can be only one of the following:

description

string

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

Union field _size_gb.

_size_gb can be only one of the following:

sizeGb

string (int64 format)

Required. The size of the disk in GB.

Union field _disk_encryption_key.

_disk_encryption_key can be only one of the following:

diskEncryptionKey

object (CustomerEncryptionKey)

Optional. Encrypts the disk using a customer-supplied encryption key or a customer-managed encryption key.

Union field _physical_block_size_bytes.

_physical_block_size_bytes can be only one of the following:

physicalBlockSizeBytes

string (int64 format)

Optional. Physical block size of the persistent disk, in bytes. If not present in a request, a default value is used. Currently, the supported size is 4096.

Union field _provisioned_iops.

_provisioned_iops can be only one of the following:

provisionedIops

string (int64 format)

Optional. Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle.

Union field _provisioned_throughput.

_provisioned_throughput can be only one of the following:

provisionedThroughput

string (int64 format)

Optional. Indicates how much throughput to provision for the disk. This sets the number of throughput MB per second that the disk can handle.

Union field _enable_confidential_compute.

_enable_confidential_compute can be only one of the following:

enableConfidentialCompute

boolean

Optional. Indicates whether this disk is using confidential compute mode. Encryption with a Cloud KMS key is required to enable this option.

Union field _storage_pool.

_storage_pool can be only one of the following:

storagePool

string

Optional. The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource.

Union field _access_mode.

_access_mode can be only one of the following:

accessMode

enum (AccessMode)

Optional. The access mode of the disk.

Union field _architecture.

_architecture can be only one of the following:

architecture

enum (Architecture)

Optional. The architecture of the source disk. Valid values are ARM64 or X86_64.

Union field _type.

_type can be only one of the following:

type

string

Required. URL of the disk type resource describing which disk type to use to create the disk.

LabelsEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

ResourceManagerTagsEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

FieldMask

JSON representation
{
  "paths": [
    string
  ]
}
Fields
paths[]

string

The set of field mask paths.

DiskType

List of the Disk Types.

Enums
DISK_TYPE_UNSPECIFIED Default value, which is unused.
SCRATCH A scratch disk type.
PERSISTENT A persistent disk type.

DiskMode

List of the Disk Modes.

Enums
DISK_MODE_UNSPECIFIED Default value, which is unused.
READ_WRITE Attaches this disk in read-write mode. Only one virtual machine at a time can be attached to a disk in read-write mode.
READ_ONLY Attaches this disk in read-only mode. Multiple virtual machines can use a disk in read-only mode at a time.
LOCKED The disk is locked for administrative reasons. Nobody else can use the disk. This mode is used (for example) when taking a snapshot of a disk to prevent mounting the disk while it is being snapshotted.

DiskInterface

List of the Disk Interfaces.

Enums
DISK_INTERFACE_UNSPECIFIED Default value, which is unused.
SCSI SCSI Disk Interface.
NVME NVME Disk Interface.
NVDIMM NVDIMM Disk Interface.
ISCSI ISCSI Disk Interface.

FeatureType

List of the Feature Types.

Enums
FEATURE_TYPE_UNSPECIFIED Default value, which is unused.
VIRTIO_SCSI_MULTIQUEUE VIRTIO_SCSI_MULTIQUEUE feature type.
WINDOWS WINDOWS feature type.
MULTI_IP_SUBNET MULTI_IP_SUBNET feature type.
UEFI_COMPATIBLE UEFI_COMPATIBLE feature type.
SECURE_BOOT SECURE_BOOT feature type.
GVNIC GVNIC feature type.
SEV_CAPABLE SEV_CAPABLE feature type.
BARE_METAL_LINUX_COMPATIBLE BARE_METAL_LINUX_COMPATIBLE feature type.
SUSPEND_RESUME_COMPATIBLE SUSPEND_RESUME_COMPATIBLE feature type.
SEV_LIVE_MIGRATABLE SEV_LIVE_MIGRATABLE feature type.
SEV_SNP_CAPABLE SEV_SNP_CAPABLE feature type.
TDX_CAPABLE TDX_CAPABLE feature type.
IDPF IDPF feature type.
SEV_LIVE_MIGRATABLE_V2 SEV_LIVE_MIGRATABLE_V2 feature type.

DiskSavedState

List of the states of the Disk.

Enums
DISK_SAVED_STATE_UNSPECIFIED Default Disk state has not been preserved.
PRESERVED Disk state has been preserved.

KeyRevocationActionType

Specifies whether the virtual machine instance will be shut down on key revocation. It is currently used in instance, instance properties and GMI protos

Enums
KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED Default value. This value is unused.
NONE Indicates user chose no operation.
STOP Indicates user chose to opt for VM shutdown on key revocation.

AccessType

The type of configuration.

Enums
ACCESS_TYPE_UNSPECIFIED Default value. This value is unused.
ONE_TO_ONE_NAT ONE_TO_ONE_NAT
DIRECT_IPV6 Direct IPv6 access.

NetworkTier

Network tier property used by addresses, instances and forwarding rules.

Enums
NETWORK_TIER_UNSPECIFIED Default value. This value is unused.
PREMIUM High quality, Google-grade network tier, support for all networking products.
STANDARD Public internet quality, only limited support for other networking products.

StackType

Stack type for this network interface.

Enums
STACK_TYPE_UNSPECIFIED Default should be STACK_TYPE_UNSPECIFIED.
IPV4_ONLY The network interface will be assigned IPv4 address.
IPV4_IPV6 The network interface can have both IPv4 and IPv6 addresses.

Ipv6AccessType

IPv6 access type for this network interface.

Enums
UNSPECIFIED_IPV6_ACCESS_TYPE IPv6 access type not set. Means this network interface hasn't been turned on IPv6 yet.
INTERNAL This network interface can have internal IPv6.
EXTERNAL This network interface can have external IPv6.

NicType

Nic type for this network interface.

Enums
NIC_TYPE_UNSPECIFIED Default should be NIC_TYPE_UNSPECIFIED.
VIRTIO_NET VIRTIO
GVNIC GVNIC

Tier

Network performance tier.

Enums
TIER_UNSPECIFIED This value is unused.
DEFAULT Default network performance config.
TIER_1 Tier 1 network performance config.

InstancePrivateIpv6GoogleAccess

The private IPv6 google access type for the VMs.

Enums
INSTANCE_PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED Default value. This value is unused.
INHERIT_FROM_SUBNETWORK Each network interface inherits PrivateIpv6GoogleAccess from its subnetwork.
ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE 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.
ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE 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.

Type

Indicates whether to consume from a reservation or not.

Enums
TYPE_UNSPECIFIED Default value. This value is unused.
NO_RESERVATION Do not consume from any allocated capacity.
ANY_RESERVATION Consume any allocation available.
SPECIFIC_RESERVATION Must consume from a specific reservation. Must specify key value fields for specifying the reservations.

OnHostMaintenance

Defines the maintenance behavior for this instance=

Enums
ON_HOST_MAINTENANCE_UNSPECIFIED Default value. This value is unused.
TERMINATE Tells Compute Engine to terminate and (optionally) restart the instance away from the maintenance activity.
MIGRATE Default, Allows Compute Engine to automatically migrate instances out of the way of maintenance events.

Operator

Defines the type of node selections.

Enums
OPERATOR_UNSPECIFIED Default value. This value is unused.
IN Requires Compute Engine to seek for matched nodes.
NOT_IN Requires Compute Engine to avoid certain nodes.

ProvisioningModel

Defines the provisioning model for an instance.

Enums
PROVISIONING_MODEL_UNSPECIFIED Default value. This value is not used.
STANDARD Standard provisioning with user controlled runtime, no discounts.
SPOT Heavily discounted, no guaranteed runtime.

InstanceTerminationAction

Defines the supported termination actions for an instance.

Enums
INSTANCE_TERMINATION_ACTION_UNSPECIFIED Default value. This value is unused.
DELETE Delete the VM.
STOP Stop the VM without storing in-memory content. default action.

AccessMode

The supported access modes of the disk.

Enums
READ_WRITE_SINGLE The default AccessMode, means the disk can be attached to single instance in RW mode.
READ_WRITE_MANY The AccessMode means the disk can be attached to multiple instances in RW mode.
READ_ONLY_MANY The AccessMode means the disk can be attached to multiple instances in RO mode.

Architecture

Architecture of the source disk.

Enums
ARCHITECTURE_UNSPECIFIED Default value. This value is unused.
X86_64 Disks with architecture X86_64
ARM64 Disks with architecture ARM64

Output Schema

This resource represents a long-running operation that is the result of a network API call.

Operation

JSON representation
{
  "name": string,
  "metadata": {
    "@type": string,
    field1: ...,
    ...
  },
  "done": boolean,

  // Union field result can be only one of the following:
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // End of list of possible types for union field result.
}
Fields
name

string

The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.

metadata

object

Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.

An object containing fields of an arbitrary type. An additional field "@type" contains a URI identifying the type. Example: { "id": 1234, "@type": "types.example.com/standard/id" }.

done

boolean

If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.

Union field result. The operation result, which can be either an error or a valid response. If done == false, neither error nor response is set. If done == true, exactly one of error or response can be set. Some services might not provide the result. result can be only one of the following:
error

object (Status)

The error result of the operation in case of failure or cancellation.

response

object

The normal, successful response of the operation. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.

An object containing fields of an arbitrary type. An additional field "@type" contains a URI identifying the type. Example: { "id": 1234, "@type": "types.example.com/standard/id" }.

Any

JSON representation
{
  "typeUrl": string,
  "value": string
}
Fields
typeUrl

string

Identifies the type of the serialized Protobuf message with a URI reference consisting of a prefix ending in a slash and the fully-qualified type name.

Example: type.googleapis.com/google.protobuf.StringValue

This string must contain at least one / character, and the content after the last / must be the fully-qualified name of the type in canonical form, without a leading dot. Do not write a scheme on these URI references so that clients do not attempt to contact them.

The prefix is arbitrary and Protobuf implementations are expected to simply strip off everything up to and including the last / to identify the type. type.googleapis.com/ is a common default prefix that some legacy implementations require. This prefix does not indicate the origin of the type, and URIs containing it are not expected to respond to any requests.

All type URL strings must be legal URI references with the additional restriction (for the text format) that the content of the reference must consist only of alphanumeric characters, percent-encoded escapes, and characters in the following set (not including the outer backticks): /-.~_!$&()*+,;=. Despite our allowing percent encodings, implementations should not unescape them to prevent confusion with existing parsers. For example, type.googleapis.com%2FFoo should be rejected.

In the original design of Any, the possibility of launching a type resolution service at these type URLs was considered but Protobuf never implemented one and considers contacting these URLs to be problematic and a potential security issue. Do not attempt to contact type URLs.

value

string (bytes format)

Holds a Protobuf serialization of the type described by type_url.

A base64-encoded string.

Status

JSON representation
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Fields
code

integer

The status code, which should be an enum value of google.rpc.Code.

message

string

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.

details[]

object

A list of messages that carry the error details. There is a common set of message types for APIs to use.

An object containing fields of an arbitrary type. An additional field "@type" contains a URI identifying the type. Example: { "id": 1234, "@type": "types.example.com/standard/id" }.

Tool Annotations

Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌