---
title: "POST /v2/{+parent}/instances"
method: POST
path: "/v2/{+parent}/instances"
tags: ["projects"]
---

# POST /v2/{+parent}/instances

`POST /v2/{+parent}/instances`

Creates a new Instance in a given project and location.

## Path parameters

- `parent` string, required

## Query parameters

- `instanceId` string
- `requestId` string

## Request body

- Instance — The definition of a notebook instance.
  - `createTime` string, google-datetime — Output only. Instance creation time.
  - `enableDeletionProtection` boolean — Optional. If true, deletion protection will be enabled for this Workbench Instance. If false, deletion protection will be disabled for this Workbench Instance.
  - `instanceOwners` string[] — Optional. The owner of this instance after creation. Format: `alias@example.com` Currently supports one owner only. If not specified, all of the service account users of your VM instance's service account can use the instance.
  - `state` 'STATE_UNSPECIFIED' | 'STARTING' | 'PROVISIONING' | 'ACTIVE' | 'STOPPING' | 'STOPPED' | 'DELETED' | 'UPGRADING' | 'INITIALIZING' | 'SUSPENDING' | 'SUSPENDED' — Output only. The state of this instance.
  - `satisfiesPzi` boolean — Output only. Reserved for future use for Zone Isolation.
  - `proxyUri` string — Output only. The proxy endpoint that is used to access the Jupyter notebook.
  - `id` string — Output only. Unique ID of the resource.
  - `updateTime` string, google-datetime — Output only. Instance update time.
  - `labels` object — Optional. Labels to apply to this instance. These can be later modified by the UpdateInstance method.
  - `enableManagedEuc` boolean — Optional. Flag to enable managed end user credentials for the instance.
  - `name` string — Output only. Identifier. The name of this notebook instance. Format: `projects/{project_id}/locations/{location}/instances/{instance_id}`
  - `thirdPartyProxyUrl` string — Output only. The workforce pools proxy endpoint that is used to access the Jupyter notebook.
  - `satisfiesPzs` boolean — Output only. Reserved for future use for Zone Separation.
  - `gceSetup` GceSetup — The definition of how to configure a VM instance outside of Resources and Identity.
    - `reservationAffinity` ReservationAffinity — A reservation that an instance can consume from.
      - `key` string — Optional. Corresponds to the label key of a reservation resource. To target a RESERVATION_SPECIFIC by name, use compute.googleapis.com/reservation-name as the key and specify the name of your reservation as its value.
      - `consumeReservationType` 'RESERVATION_UNSPECIFIED' | 'RESERVATION_NONE' | 'RESERVATION_ANY' | 'RESERVATION_SPECIFIC' — Required. Specifies the type of reservation from which this instance can consume resources: RESERVATION_ANY (default), RESERVATION_SPECIFIC, or RESERVATION_NONE. See Consuming reserved instances for examples.
      - `values` string[] — Optional. 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.
    - `tags` string[] — Optional. The Compute Engine network tags to add to runtime (see [Add network tags](https://cloud.google.com/vpc/docs/add-remove-network-tags)).
    - `vmImage` VmImage — Definition of a custom Compute Engine virtual machine image for starting a notebook instance with the environment installed directly on the VM.
      - `name` string — Optional. Use VM image name to find the image.
      - `family` string — Optional. Use this VM image family to find the image; the newest image in this family will be used.
      - `project` string — Required. The name of the Google Cloud project that this VM image belongs to. Format: `{project_id}`
    - `bootDisk` BootDisk — The definition of a boot disk.
      - `diskSizeGb` string, int64 — Optional. The size of the boot disk in GB attached to this instance, up to a maximum of 64000 GB (64 TB). If not specified, this defaults to the recommended value of 150GB.
      - `diskEncryption` 'DISK_ENCRYPTION_UNSPECIFIED' | 'GMEK' | 'CMEK' — Optional. Input only. Disk encryption method used on the boot and data disks, defaults to GMEK.
      - `kmsKey` string — Optional. Input only. The KMS key used to encrypt the disks, only applicable if disk_encryption is CMEK. Format: `projects/{project_id}/locations/{location}/keyRings/{key_ring_id}/cryptoKeys/{key_id}` Learn more about using your own encryption keys.
      - `diskType` 'DISK_TYPE_UNSPECIFIED' | 'PD_STANDARD' | 'PD_SSD' | 'PD_BALANCED' | 'PD_EXTREME' | 'HYPERDISK_BALANCED' | 'HYPERDISK_EXTREME' | 'HYPERDISK_THROUGHPUT' | 'HYPERDISK_BALANCED_HIGH_AVAILABILITY' | 'HYPERDISK_ML' — Optional. Indicates the type of the disk.
    - `disablePublicIp` boolean — Optional. If true, no external IP will be assigned to this VM instance.
    - `containerImage` ContainerImage — Definition of a container image for starting a notebook instance with the environment installed in a container.
      - `repository` string — Required. The path to the container image repository. For example: `gcr.io/{project_id}/{image_name}`
      - `tag` string — Optional. The tag of the container image. If not specified, this defaults to the latest tag.
    - `shieldedInstanceConfig` ShieldedInstanceConfig — A set of Shielded Instance options. See [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). Not all combinations are valid.
      - `enableVtpm` boolean — Optional. Defines whether the VM instance has the vTPM enabled.
      - `enableIntegrityMonitoring` boolean — Optional. Defines whether the VM instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the VM instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the VM instance is created.
      - `enableSecureBoot` boolean — Optional. Defines whether the VM instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. Disabled by default.
    - `gpuDriverConfig` GPUDriverConfig — A GPU driver configuration
      - `enableGpuDriver` boolean — Optional. Whether the end user authorizes Google Cloud to install GPU driver on this VM instance. If this field is empty or set to false, the GPU driver won't be installed. Only applicable to instances with GPUs.
      - `customGpuDriverPath` string — Optional. Specify a custom Cloud Storage path where the GPU driver is stored. If not specified, we'll automatically choose from official GPU drivers.
    - `metadata` object — Optional. Custom metadata to apply to this instance.
    - `enableIpForwarding` boolean — Optional. Flag to enable ip forwarding or not, default false/off. https://cloud.google.com/vpc/docs/using-routes#canipforward
    - `minCpuPlatform` string — Optional. The minimum CPU platform to use for this instance. The list of valid values can be found in https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones
    - `networkInterfaces` NetworkInterface[] — Optional. The network interfaces for the VM. Supports only one interface.
      - `network` string — Optional. The name of the VPC that this VM instance is in. Format: `projects/{project_id}/global/networks/{network_id}`
      - `subnet` string — Optional. The name of the subnet that this VM instance is in. Format: `projects/{project_id}/regions/{region}/subnetworks/{subnetwork_id}`
      - `accessConfigs` AccessConfig[] — Optional. An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the instance will have an external internet access through an ephemeral external IP address.
        - `externalIp` string — An external IP address 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.
      - `nicType` 'NIC_TYPE_UNSPECIFIED' | 'VIRTIO_NET' | 'GVNIC' — Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
    - `acceleratorConfigs` AcceleratorConfig[] — Optional. The hardware accelerators used on this instance. If you use accelerators, make sure that your configuration has [enough vCPUs and memory to support the `machine_type` you have selected](https://cloud.google.com/compute/docs/gpus/#gpus-list). Currently supports only one accelerator configuration.
      - `type` 'ACCELERATOR_TYPE_UNSPECIFIED' | 'NVIDIA_TESLA_P100' | 'NVIDIA_TESLA_V100' | 'NVIDIA_TESLA_P4' | 'NVIDIA_TESLA_T4' | 'NVIDIA_TESLA_A100' | 'NVIDIA_A100_80GB' | 'NVIDIA_L4' | 'NVIDIA_H100_80GB' | 'NVIDIA_H100_MEGA_80GB' | 'NVIDIA_H200_141GB' | 'NVIDIA_TESLA_T4_VWS' | 'NVIDIA_TESLA_P100_VWS' | 'NVIDIA_TESLA_P4_VWS' | 'NVIDIA_B200' | 'NVIDIA_RTX6000' — Optional. Type of this accelerator.
      - `coreCount` string, int64 — Optional. Count of cores of this accelerator.
    - `serviceAccounts` ServiceAccount[] — Optional. The service account that serves as an identity for the VM instance. Currently supports only one service account.
      - `email` string — Optional. Email address of the service account.
      - `scopes` string[] — Output only. The list of scopes to be made available for this service account. Set by the CLH to https://www.googleapis.com/auth/cloud-platform
    - `dataDisks` DataDisk[] — Optional. Data disks attached to the VM instance. Currently supports only one data disk.
      - `diskSizeGb` string, int64 — Optional. The size of the disk in GB attached to this VM instance, up to a maximum of 64000 GB (64 TB). If not specified, this defaults to 100.
      - `kmsKey` string — Optional. Input only. The KMS key used to encrypt the disks, only applicable if disk_encryption is CMEK. Format: `projects/{project_id}/locations/{location}/keyRings/{key_ring_id}/cryptoKeys/{key_id}` Learn more about using your own encryption keys.
      - `diskType` 'DISK_TYPE_UNSPECIFIED' | 'PD_STANDARD' | 'PD_SSD' | 'PD_BALANCED' | 'PD_EXTREME' | 'HYPERDISK_BALANCED' | 'HYPERDISK_EXTREME' | 'HYPERDISK_THROUGHPUT' | 'HYPERDISK_BALANCED_HIGH_AVAILABILITY' | 'HYPERDISK_ML' — Optional. Input only. Indicates the type of the disk.
      - `resourcePolicies` string[] — Optional. The resource policies to apply to the data disk.
      - `diskEncryption` 'DISK_ENCRYPTION_UNSPECIFIED' | 'GMEK' | 'CMEK' — Optional. Input only. Disk encryption method used on the boot and data disks, defaults to GMEK.
    - `confidentialInstanceConfig` ConfidentialInstanceConfig — A set of Confidential Instance options.
      - `confidentialInstanceType` 'CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED' | 'SEV' — Optional. Defines the type of technology used by the confidential instance.
    - `instanceId` string — Output only. The unique ID of the Compute Engine instance resource.
    - `machineType` string — Optional. The machine type of the VM instance. https://cloud.google.com/compute/docs/machine-resource
  - `healthInfo` object — Output only. Additional information about instance health. Example: healthInfo": { "docker_proxy_agent_status": "1", "docker_status": "1", "jupyterlab_api_status": "-1", "jupyterlab_status": "-1", "updated": "2020-10-18 09:40:03.573409" }
  - `healthState` 'HEALTH_STATE_UNSPECIFIED' | 'HEALTHY' | 'UNHEALTHY' | 'AGENT_NOT_INSTALLED' | 'AGENT_NOT_RUNNING' — Output only. Instance health_state.
  - `upgradeHistory` UpgradeHistoryEntry[] — Output only. The upgrade history of this instance.
    - `action` 'ACTION_UNSPECIFIED' | 'UPGRADE' | 'ROLLBACK' — Optional. Action. Rolloback or Upgrade.
    - `containerImage` string — Optional. The container image before this instance upgrade.
    - `vmImage` string — Optional. The VM image before this instance upgrade.
    - `createTime` string, google-datetime — Immutable. The time that this instance upgrade history entry is created.
    - `targetVersion` string — Optional. Target VM Version, like m63.
    - `version` string — Optional. The version of the notebook instance before this upgrade.
    - `state` 'STATE_UNSPECIFIED' | 'STARTED' | 'SUCCEEDED' | 'FAILED' — Output only. The state of this instance upgrade history entry.
    - `snapshot` string — Optional. The snapshot of the boot disk of this notebook instance before upgrade.
    - `framework` string — Optional. The framework of this notebook instance.
  - `enableThirdPartyIdentity` boolean — Optional. Flag that specifies that a notebook can be accessed with third party identity provider.
  - `creator` string — Output only. Email address of entity that sent original CreateInstance request.
  - `disableProxyAccess` boolean — Optional. If true, the notebook instance will not register with the proxy.

## Response `200`

Successful response

---

[API](https://skmtc.dev/google/apis/notebooks.md) · [All operations](https://skmtc.dev/google/apis/notebooks/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/google/notebooks/revisions/127a2a41b4c1/schema)
