The size of the boot disk, in GB. The boot disk must be large
enough to accommodate all of the Docker images from each action in the
pipeline at the same time. If not specified, a small but reasonable
default value is used.
Currently, only Container-Optimized OS images can be used.
The default value is projects/cos-cloud/global/images/family/cos-stable,
which selects the latest stable release of Container-Optimized OS.
This option is provided to allow testing against the beta release of the
operating system to ensure that the new version does not interact
negatively with production pipelines.
To test a pipeline against the beta release of Container-Optimized OS,
use the value projects/cos-cloud/global/images/family/cos-beta.
The CPU platform to request. An instance based on a newer platform can be
allocated, but never one with fewer capabilities. The value of this
parameter must be a valid Compute Engine CPU platform name (such as "Intel
Skylake"). This parameter is only useful for carefully optimized work
loads where the CPU platform has a significant impact.
public RepeatedField<string> DockerCacheImages { get; }
The Compute Engine Disk Images to use as a Docker cache. The disks will be
mounted into the Docker folder in a way that the images present in the
cache will not need to be pulled. The digests of the cached images must
match those of the tags used or the latest version will still be pulled.
The root directory of the ext4 image must contain image and overlay2
directories copied from the Docker directory of a VM where the desired
Docker images have already been pulled. Any images pulled that are not
cached will be stored on the first cache disk instead of the boot disk.
Only a single image is supported.
Optional set of labels to apply to the VM and any attached disk resources.
These labels must adhere to the name and value
restrictions on
VM labels imposed by Compute Engine.
Labels keys with the prefix 'google-' are reserved for use by Google.
Labels applied at creation time to the VM. Applied on a best-effort basis
to attached disk resources shortly after VM creation.
Required. The machine type of the virtual machine to create. Must be the
short name of a standard machine type (such as "n1-standard-1") or a custom
machine type (such as "custom-1-4096", where "1" indicates the number of
vCPUs and "4096" indicates the memory in MB). See Creating an instance
with a custom machine
type
for more specifications on creating a custom machine type.
The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator.
The version specified here must be compatible with the GPU libraries
contained in the container being executed, and must be one of the drivers
hosted in the nvidia-drivers-us-public bucket on Google Cloud Storage.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eVirtualMachine\u003c/code\u003e class in the Google Cloud Life Sciences v2beta API represents a Compute Engine VM resource, providing details about its configuration.\u003c/p\u003e\n"],["\u003cp\u003eThis class offers properties to manage various aspects of a VM, including \u003ccode\u003eBootDiskSizeGb\u003c/code\u003e, \u003ccode\u003eBootImage\u003c/code\u003e, \u003ccode\u003eMachineType\u003c/code\u003e, and network settings, allowing for detailed specification.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eVirtualMachine\u003c/code\u003e supports both disk (\u003ccode\u003eDisks\u003c/code\u003e) and volume (\u003ccode\u003eVolumes\u003c/code\u003e) configurations for storage, though it only permits one method to be implemented.\u003c/p\u003e\n"],["\u003cp\u003eThe class includes options for enhancing VM functionality with features like accelerators (\u003ccode\u003eAccelerators\u003c/code\u003e), Docker cache images (\u003ccode\u003eDockerCacheImages\u003c/code\u003e), and Stackdriver monitoring (\u003ccode\u003eEnableStackdriverMonitoring\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of this resource available is version \u003ccode\u003e2.0.0-beta06\u003c/code\u003e, which is part of the Google.Cloud.LifeSciences.V2Beta assembly.\u003c/p\u003e\n"]]],[],null,["# Cloud Life Sciences v2beta API - Class VirtualMachine (2.0.0-beta06)\n\nVersion latestkeyboard_arrow_down\n\n- [2.0.0-beta06 (latest)](/dotnet/docs/reference/Google.Cloud.LifeSciences.V2Beta/latest/Google.Cloud.LifeSciences.V2Beta.VirtualMachine)\n- [2.0.0-beta05](/dotnet/docs/reference/Google.Cloud.LifeSciences.V2Beta/2.0.0-beta05/Google.Cloud.LifeSciences.V2Beta.VirtualMachine)\n- [1.0.0-beta02](/dotnet/docs/reference/Google.Cloud.LifeSciences.V2Beta/1.0.0-beta02/Google.Cloud.LifeSciences.V2Beta.VirtualMachine) \n\n public sealed class VirtualMachine : IMessage\u003cVirtualMachine\u003e, IEquatable\u003cVirtualMachine\u003e, IDeepCloneable\u003cVirtualMachine\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Cloud Life Sciences v2beta API class VirtualMachine.\n\nCarries information about a Compute Engine VM resource. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e VirtualMachine \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[VirtualMachine](/dotnet/docs/reference/Google.Cloud.LifeSciences.V2Beta/latest/Google.Cloud.LifeSciences.V2Beta.VirtualMachine), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[VirtualMachine](/dotnet/docs/reference/Google.Cloud.LifeSciences.V2Beta/latest/Google.Cloud.LifeSciences.V2Beta.VirtualMachine), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[VirtualMachine](/dotnet/docs/reference/Google.Cloud.LifeSciences.V2Beta/latest/Google.Cloud.LifeSciences.V2Beta.VirtualMachine), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.LifeSciences.V2Beta](/dotnet/docs/reference/Google.Cloud.LifeSciences.V2Beta/latest/Google.Cloud.LifeSciences.V2Beta)\n\nAssembly\n--------\n\nGoogle.Cloud.LifeSciences.V2Beta.dll\n\nConstructors\n------------\n\n### VirtualMachine()\n\n public VirtualMachine()\n\n### VirtualMachine(VirtualMachine)\n\n public VirtualMachine(VirtualMachine other)\n\nProperties\n----------\n\n### Accelerators\n\n public RepeatedField\u003cAccelerator\u003e Accelerators { get; }\n\nThe list of accelerators to attach to the VM.\n\n### BootDiskSizeGb\n\n public int BootDiskSizeGb { get; set; }\n\nThe size of the boot disk, in GB. The boot disk must be large\nenough to accommodate all of the Docker images from each action in the\npipeline at the same time. If not specified, a small but reasonable\ndefault value is used.\n\n### BootImage\n\n public string BootImage { get; set; }\n\nThe host operating system image to use.\n\nCurrently, only Container-Optimized OS images can be used.\n\nThe default value is `projects/cos-cloud/global/images/family/cos-stable`,\nwhich selects the latest stable release of Container-Optimized OS.\n\nThis option is provided to allow testing against the beta release of the\noperating system to ensure that the new version does not interact\nnegatively with production pipelines.\n\nTo test a pipeline against the beta release of Container-Optimized OS,\nuse the value `projects/cos-cloud/global/images/family/cos-beta`.\n\n### CpuPlatform\n\n public string CpuPlatform { get; set; }\n\nThe CPU platform to request. An instance based on a newer platform can be\nallocated, but never one with fewer capabilities. The value of this\nparameter must be a valid Compute Engine CPU platform name (such as \"Intel\nSkylake\"). This parameter is only useful for carefully optimized work\nloads where the CPU platform has a significant impact.\n\nFor more information about the effect of this parameter, see\n\u003chttps://cloud.google.com/compute/docs/instances/specify-min-cpu-platform\u003e.\n\n### Disks\n\n public RepeatedField\u003cDisk\u003e Disks { get; }\n\nThe list of disks to create and attach to the VM.\n\nSpecify either the `volumes[]` field or the `disks[]` field, but not both.\n\n### DockerCacheImages\n\n public RepeatedField\u003cstring\u003e DockerCacheImages { get; }\n\nThe Compute Engine Disk Images to use as a Docker cache. The disks will be\nmounted into the Docker folder in a way that the images present in the\ncache will not need to be pulled. The digests of the cached images must\nmatch those of the tags used or the latest version will still be pulled.\nThe root directory of the ext4 image must contain `image` and `overlay2`\ndirectories copied from the Docker directory of a VM where the desired\nDocker images have already been pulled. Any images pulled that are not\ncached will be stored on the first cache disk instead of the boot disk.\nOnly a single image is supported.\n\n### EnableStackdriverMonitoring\n\n public bool EnableStackdriverMonitoring { get; set; }\n\nWhether Stackdriver monitoring should be enabled on the VM.\n\n### Labels\n\n public MapField\u003cstring, string\u003e Labels { get; }\n\nOptional set of labels to apply to the VM and any attached disk resources.\nThese labels must adhere to the [name and value\nrestrictions](https://cloud.google.com/compute/docs/labeling-resources) on\nVM labels imposed by Compute Engine.\n\nLabels keys with the prefix 'google-' are reserved for use by Google.\n\nLabels applied at creation time to the VM. Applied on a best-effort basis\nto attached disk resources shortly after VM creation.\n\n### MachineType\n\n public string MachineType { get; set; }\n\nRequired. The machine type of the virtual machine to create. Must be the\nshort name of a standard machine type (such as \"n1-standard-1\") or a custom\nmachine type (such as \"custom-1-4096\", where \"1\" indicates the number of\nvCPUs and \"4096\" indicates the memory in MB). See [Creating an instance\nwith a custom machine\ntype](https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#create)\nfor more specifications on creating a custom machine type.\n\n### Network\n\n public Network Network { get; set; }\n\nThe VM network configuration.\n\n### NvidiaDriverVersion\n\n [Obsolete]\n public string NvidiaDriverVersion { get; set; }\n\nThe NVIDIA driver version to use when attaching an NVIDIA GPU accelerator.\nThe version specified here must be compatible with the GPU libraries\ncontained in the container being executed, and must be one of the drivers\nhosted in the `nvidia-drivers-us-public` bucket on Google Cloud Storage.\n\n### Preemptible\n\n public bool Preemptible { get; set; }\n\nIf true, allocate a preemptible VM.\n\n### Reservation\n\n public string Reservation { get; set; }\n\nIf specified, the VM will only be allocated inside the matching\nreservation. It will fail if the VM parameters don't match the reservation.\n\n### ServiceAccount\n\n public ServiceAccount ServiceAccount { get; set; }\n\nThe service account to install on the VM. This account does not need\nany permissions other than those required by the pipeline.\n\n### Volumes\n\n public RepeatedField\u003cVolume\u003e Volumes { get; }\n\nThe list of disks and other storage to create or attach to the VM.\n\nSpecify either the `volumes[]` field or the `disks[]` field, but not both."]]