Create Virtual Machine
const url = 'https://example.com/compute/v1/workspaces/example/engines/qibdo/vms';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"name":"example","description":"example","hypervisor":"HYPERVISOR_UNSPECIFIED","vmm":"VMM_UNSPECIFIED","location_id":"example","cpu":{"v_cpus_boot":1,"v_cpus_max":1,"topology":{"threads_per_core":1,"cores_per_die":1,"dies_per_socket":1,"sockets":1},"affinity":[{"v_cpu":1,"host_cpus":[1]}],"features":[{"name":"example","policy":"FEATURE_POLICY_UNSPECIFIED"}],"maximum_number_physical_bits":1,"emulation":{"mode":"MODE_UNSPECIFIED","models":[{"id":"example"}],"vendor":{"id":"example"},"architecture":"CPU_ARCHITECTURE_UNSPECIFIED"}},"memory":{"size_bytes":"example","access_mode":"MEMORY_ACCESS_MODE_UNSPECIFIED","huge_pages":[{"size_bytes":"example","nodes":[1]}],"is_prefault":true,"is_mergeable":true,"uses_transparent_huge_pages":true,"zones":[{"id":"example","file":"example","size_bytes":"example","access_mode":"MEMORY_ACCESS_MODE_UNSPECIFIED","huge_pages":[{"size_bytes":"example","nodes":[1]}],"is_prefault":true}],"is_discardable":true,"memory_backing":"MEMORY_BACKING_UNSPECIFIED","allocation":{"mode":"ALLOCATION_MODE_UNSPECIFIED","threads":1},"max_size":{"size_bytes":"example","slots":1}},"disks":[{"name":"example","description":"example","size_bytes":"example","vm_id":"example","source_id":"example","device_id":"example","init_config":{"cloud_init":{"config":"example","template_id":"example"}},"qemu_driver":{"type":"QEMU_TYPE_UNSPECIFIED"},"path_file":{"host_id":"example","path":"example"},"path_block":{"host_id":"example","path":"example"},"path_directory":{"host_id":"example","path":"example"},"path_network":{"host_id":"example","path":"example","protocol":"NETWORK_PROTOCOL_UNSPECIFIED","volume_id":"example"},"path_volume":{"host_id":"example","path":"example","pool":"example","storage_volume":"example","mode":"MODE_UNSPECIFIED"},"path_nvme":{"host_id":"example","path":"example","address_type":"ADDRESS_TYPE_UNSPECIFIED","is_managed":true,"namespace":1},"path_v_host_user":{"host_id":"example","path":"example","char_device_type":"CHAR_DEVICE_TYPE_UNSPECIFIED"},"mount_path":{"block":{"device_prefix":"example","device_type":"DISK_BLOCK_DEVICE_UNSPECIFIED","block":"example","partition":1},"bus":"BUS_UNSPECIFIED"},"is_read_only":true,"is_shareable":true,"is_direct":true,"has_iommu":true,"number_of_queues":1,"queue_size":1,"has_v_host_user":true,"v_host_socket":"example","rate_limiter":{"bandwidth":{"size_bps":"example","one_time_burst_bps":"example","refill_period":"example"},"operations":{"size":{"value":1,"unit":"DURATION_UNIT_UNSPECIFIED"},"one_time_burst":{"value":1,"unit":"DURATION_UNIT_UNSPECIFIED"},"refill_period":"example"}},"pci_segment_id":1,"serial":"example","rate_limit_groupId":"example","queue_affinity":[{"queue_index":1,"host_cpus":[1]}],"encryption":{"format":"ENCRYPTION_FORMAT_UNSPECIFIED","secret":{"id":"example","vault_id":"example","type":"SECRET_TYPE_UNSPECIFIED"},"cipher":{"algorithm":"ENCRYPTION_ALGORITHM_UNSPECIFIED","size":"CIPHER_WORD_SIZE_UNSPECIFIED","mode":"CIPHER_MODE_UNSPECIFIED"},"iv":{"name":"example","hash":"HASH_ALGORITHM_UNSPECIFIED"}}}],"numa":{"mode":"NUMA_MODE_UNSPECIFIED","nodes":[{"guest_numa_id":1,"cpus":[1],"distances":[{"destination_numa_id":1,"distance":1}],"memory_zones":[{"id":"example"}],"sgx_epc_sections":[{"id":"example"}],"pci_segments":[1],"memory_size_bytes":"example","access_mode":"MEMORY_ACCESS_MODE_UNSPECIFIED","numa_hosts":[1],"mode":"NUMA_MODE_UNSPECIFIED"}]},"os":{"type":"OS_TYPE_UNSPECIFIED","kernel":{"path":"example"},"firmware":{"type":"STANDARD_TYPE_UNSPECIFIED","path":"example"},"initrd":"example","cmdline":"example","boot_devices":[{"device":"DEVICE_UNSPECIFIED"}]},"rate_limit_group":[{"id":"example","group_id":"example","rate_limiter":{"bandwidth":{"size_bps":"example","one_time_burst_bps":"example","refill_period":"example"},"operations":{"size":{"value":1,"unit":"DURATION_UNIT_UNSPECIFIED"},"one_time_burst":{"value":1,"unit":"DURATION_UNIT_UNSPECIFIED"},"refill_period":"example"}}}],"interfaces":{"console":{"file":"example","socket":"example","mode":"INTERFACE_MODE__UNSPECIFIED","is_iommu_enabled":true},"serial":{"file":"example","socket":"example","mode":"INTERFACE_MODE__UNSPECIFIED","is_iommu_enabled":true},"debug":{"file":"example","mode":"INTERFACE_MODE__UNSPECIFIED","io_base":"example"}},"features":{"pae":{"enabled":true},"acpi":{"enabled":true},"apic":{"enabled":true},"hap":{"enabled":true},"gic":{"enabled":true,"version":1},"hyperv":{"enabled":true,"relaxed_timers_enabled":true,"virtual_apic_enabled":true,"vpindex_enabled":true,"runtime_enabled":true,"synic_enabled":true,"reset_enabled":true,"vendor_id":"example","frequencies_enabled":true,"reenlightenment_enabled":true,"ipi_enabled":true,"evmcs_enabled":true,"avic_enabled":true,"emsr_bitmap_enabled":true,"xmm_input_enabled":true,"spinlocks":{"enabled":true,"retries":1},"stimer":{"enabled":true,"direct_enabled":true},"tlbflush":{"enabled":true,"direct":true,"extended":true}},"kvm":{"enabled":true,"hidden":true,"hint_dedicated":true,"poll_control_enabled":true,"paravirtualized_ipis_enabled":true,"dirty_ring":{"enabled":true,"size_bytes":"example"}},"xen":{"enabled":true,"e820_host_enabled":true,"passthrough":{"enabled":true,"mode":"MODE_UNSPECIFIED"}},"viridian":{"enabled":true},"privnet":{"enabled":true},"pvspinlock":{"enabled":true},"pmu":{"enabled":true},"vmport":{"enabled":true}},"network":[{"mac_address":"example","network_io":{"inbound":{"average_bps":"example","peak_bps":"example","burst_bps":"example","floor_bps":"example"},"outbound":{"average_bps":"example","peak_bps":"example","burst_bps":"example","floor_bps":"example"}},"nic":"INTERFACE_CARD_UNSPECIFIED","mount_path":{"block":{"device_type":"BLOCK_DEVICE_TYPE_UNSPECIFIED","number":1,"device_prefix":"example"},"bus":"BUS_UNSPECIFIED"},"openv_switch":{"interface_id":"example","profile_id":"example"},"mido_net":{"interface_id":"example"},"ieee_port":{"manager_id":1,"type_id":1,"type_id_version":1,"instance_id":"example","ieee_bq_port":{},"ieee_bh_port":{"profile_id":"example"}},"virtual_network_interface":{"network_name":"example","port_group":"example","subnet_id":"example","allocated_port_id":"example"},"bridge_interface":{"bridge":"example"},"userspace_interface":{"ipv4_addresses":[{"address":"example","prefix":1}],"ipv6_addresses":[{"address":"example","prefix":1}]},"ethernet_interface":{},"direct_physical_interface":{"mode":"DIRECT_PHYSICAL_INTERFACE_MODE_UNSPECIFIED"}}],"clock":{"offset":"OFFSET_UNSPECIFIED","timers":[{"name":"TIMER_NAME_UNSPECIFIED","is_present":true,"tick_policy":"TICK_POLICY_UNSPECIFIED","track":"TRACK_UNSPECIFIED"}]},"restart_policy":"RESTART_POLICY_UNSPECIFIED","resource_pool_id":"example","cloud_init_extension":"example","eviction_strategy":"EVICTION_STRATEGY_UNSPECIFIED"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/compute/v1/workspaces/example/engines/qibdo/vms \ --header 'Content-Type: application/json' \ --data '{ "name": "example", "description": "example", "hypervisor": "HYPERVISOR_UNSPECIFIED", "vmm": "VMM_UNSPECIFIED", "location_id": "example", "cpu": { "v_cpus_boot": 1, "v_cpus_max": 1, "topology": { "threads_per_core": 1, "cores_per_die": 1, "dies_per_socket": 1, "sockets": 1 }, "affinity": [ { "v_cpu": 1, "host_cpus": [ 1 ] } ], "features": [ { "name": "example", "policy": "FEATURE_POLICY_UNSPECIFIED" } ], "maximum_number_physical_bits": 1, "emulation": { "mode": "MODE_UNSPECIFIED", "models": [ { "id": "example" } ], "vendor": { "id": "example" }, "architecture": "CPU_ARCHITECTURE_UNSPECIFIED" } }, "memory": { "size_bytes": "example", "access_mode": "MEMORY_ACCESS_MODE_UNSPECIFIED", "huge_pages": [ { "size_bytes": "example", "nodes": [ 1 ] } ], "is_prefault": true, "is_mergeable": true, "uses_transparent_huge_pages": true, "zones": [ { "id": "example", "file": "example", "size_bytes": "example", "access_mode": "MEMORY_ACCESS_MODE_UNSPECIFIED", "huge_pages": [ { "size_bytes": "example", "nodes": [ 1 ] } ], "is_prefault": true } ], "is_discardable": true, "memory_backing": "MEMORY_BACKING_UNSPECIFIED", "allocation": { "mode": "ALLOCATION_MODE_UNSPECIFIED", "threads": 1 }, "max_size": { "size_bytes": "example", "slots": 1 } }, "disks": [ { "name": "example", "description": "example", "size_bytes": "example", "vm_id": "example", "source_id": "example", "device_id": "example", "init_config": { "cloud_init": { "config": "example", "template_id": "example" } }, "qemu_driver": { "type": "QEMU_TYPE_UNSPECIFIED" }, "path_file": { "host_id": "example", "path": "example" }, "path_block": { "host_id": "example", "path": "example" }, "path_directory": { "host_id": "example", "path": "example" }, "path_network": { "host_id": "example", "path": "example", "protocol": "NETWORK_PROTOCOL_UNSPECIFIED", "volume_id": "example" }, "path_volume": { "host_id": "example", "path": "example", "pool": "example", "storage_volume": "example", "mode": "MODE_UNSPECIFIED" }, "path_nvme": { "host_id": "example", "path": "example", "address_type": "ADDRESS_TYPE_UNSPECIFIED", "is_managed": true, "namespace": 1 }, "path_v_host_user": { "host_id": "example", "path": "example", "char_device_type": "CHAR_DEVICE_TYPE_UNSPECIFIED" }, "mount_path": { "block": { "device_prefix": "example", "device_type": "DISK_BLOCK_DEVICE_UNSPECIFIED", "block": "example", "partition": 1 }, "bus": "BUS_UNSPECIFIED" }, "is_read_only": true, "is_shareable": true, "is_direct": true, "has_iommu": true, "number_of_queues": 1, "queue_size": 1, "has_v_host_user": true, "v_host_socket": "example", "rate_limiter": { "bandwidth": { "size_bps": "example", "one_time_burst_bps": "example", "refill_period": "example" }, "operations": { "size": { "value": 1, "unit": "DURATION_UNIT_UNSPECIFIED" }, "one_time_burst": { "value": 1, "unit": "DURATION_UNIT_UNSPECIFIED" }, "refill_period": "example" } }, "pci_segment_id": 1, "serial": "example", "rate_limit_groupId": "example", "queue_affinity": [ { "queue_index": 1, "host_cpus": [ 1 ] } ], "encryption": { "format": "ENCRYPTION_FORMAT_UNSPECIFIED", "secret": { "id": "example", "vault_id": "example", "type": "SECRET_TYPE_UNSPECIFIED" }, "cipher": { "algorithm": "ENCRYPTION_ALGORITHM_UNSPECIFIED", "size": "CIPHER_WORD_SIZE_UNSPECIFIED", "mode": "CIPHER_MODE_UNSPECIFIED" }, "iv": { "name": "example", "hash": "HASH_ALGORITHM_UNSPECIFIED" } } } ], "numa": { "mode": "NUMA_MODE_UNSPECIFIED", "nodes": [ { "guest_numa_id": 1, "cpus": [ 1 ], "distances": [ { "destination_numa_id": 1, "distance": 1 } ], "memory_zones": [ { "id": "example" } ], "sgx_epc_sections": [ { "id": "example" } ], "pci_segments": [ 1 ], "memory_size_bytes": "example", "access_mode": "MEMORY_ACCESS_MODE_UNSPECIFIED", "numa_hosts": [ 1 ], "mode": "NUMA_MODE_UNSPECIFIED" } ] }, "os": { "type": "OS_TYPE_UNSPECIFIED", "kernel": { "path": "example" }, "firmware": { "type": "STANDARD_TYPE_UNSPECIFIED", "path": "example" }, "initrd": "example", "cmdline": "example", "boot_devices": [ { "device": "DEVICE_UNSPECIFIED" } ] }, "rate_limit_group": [ { "id": "example", "group_id": "example", "rate_limiter": { "bandwidth": { "size_bps": "example", "one_time_burst_bps": "example", "refill_period": "example" }, "operations": { "size": { "value": 1, "unit": "DURATION_UNIT_UNSPECIFIED" }, "one_time_burst": { "value": 1, "unit": "DURATION_UNIT_UNSPECIFIED" }, "refill_period": "example" } } } ], "interfaces": { "console": { "file": "example", "socket": "example", "mode": "INTERFACE_MODE__UNSPECIFIED", "is_iommu_enabled": true }, "serial": { "file": "example", "socket": "example", "mode": "INTERFACE_MODE__UNSPECIFIED", "is_iommu_enabled": true }, "debug": { "file": "example", "mode": "INTERFACE_MODE__UNSPECIFIED", "io_base": "example" } }, "features": { "pae": { "enabled": true }, "acpi": { "enabled": true }, "apic": { "enabled": true }, "hap": { "enabled": true }, "gic": { "enabled": true, "version": 1 }, "hyperv": { "enabled": true, "relaxed_timers_enabled": true, "virtual_apic_enabled": true, "vpindex_enabled": true, "runtime_enabled": true, "synic_enabled": true, "reset_enabled": true, "vendor_id": "example", "frequencies_enabled": true, "reenlightenment_enabled": true, "ipi_enabled": true, "evmcs_enabled": true, "avic_enabled": true, "emsr_bitmap_enabled": true, "xmm_input_enabled": true, "spinlocks": { "enabled": true, "retries": 1 }, "stimer": { "enabled": true, "direct_enabled": true }, "tlbflush": { "enabled": true, "direct": true, "extended": true } }, "kvm": { "enabled": true, "hidden": true, "hint_dedicated": true, "poll_control_enabled": true, "paravirtualized_ipis_enabled": true, "dirty_ring": { "enabled": true, "size_bytes": "example" } }, "xen": { "enabled": true, "e820_host_enabled": true, "passthrough": { "enabled": true, "mode": "MODE_UNSPECIFIED" } }, "viridian": { "enabled": true }, "privnet": { "enabled": true }, "pvspinlock": { "enabled": true }, "pmu": { "enabled": true }, "vmport": { "enabled": true } }, "network": [ { "mac_address": "example", "network_io": { "inbound": { "average_bps": "example", "peak_bps": "example", "burst_bps": "example", "floor_bps": "example" }, "outbound": { "average_bps": "example", "peak_bps": "example", "burst_bps": "example", "floor_bps": "example" } }, "nic": "INTERFACE_CARD_UNSPECIFIED", "mount_path": { "block": { "device_type": "BLOCK_DEVICE_TYPE_UNSPECIFIED", "number": 1, "device_prefix": "example" }, "bus": "BUS_UNSPECIFIED" }, "openv_switch": { "interface_id": "example", "profile_id": "example" }, "mido_net": { "interface_id": "example" }, "ieee_port": { "manager_id": 1, "type_id": 1, "type_id_version": 1, "instance_id": "example", "ieee_bq_port": {}, "ieee_bh_port": { "profile_id": "example" } }, "virtual_network_interface": { "network_name": "example", "port_group": "example", "subnet_id": "example", "allocated_port_id": "example" }, "bridge_interface": { "bridge": "example" }, "userspace_interface": { "ipv4_addresses": [ { "address": "example", "prefix": 1 } ], "ipv6_addresses": [ { "address": "example", "prefix": 1 } ] }, "ethernet_interface": {}, "direct_physical_interface": { "mode": "DIRECT_PHYSICAL_INTERFACE_MODE_UNSPECIFIED" } } ], "clock": { "offset": "OFFSET_UNSPECIFIED", "timers": [ { "name": "TIMER_NAME_UNSPECIFIED", "is_present": true, "tick_policy": "TICK_POLICY_UNSPECIFIED", "track": "TRACK_UNSPECIFIED" } ] }, "restart_policy": "RESTART_POLICY_UNSPECIFIED", "resource_pool_id": "example", "cloud_init_extension": "example", "eviction_strategy": "EVICTION_STRATEGY_UNSPECIFIED" }'Creates a new Virtual Machine (VM) in a specific workspace and zone
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The unique identifier of the workspace that the virtual machine belongs to
Request Body required
Section titled “Request Body required ”object
Unique Identifier
Global unique identifier for the virtual machine. This a String that uses the UUID format.
Generation Identifier
Virtual Machine Generation ID that is used to help notify the guest operating system when the virtual machine is re-executing something that has already executed before.
Name
Name/title of the virtual machine (RFC 1035 DNS label, max 63 chars)
Description
Optional description of the virtual machine
Location Id
On create, the placement intent: a ZONE (pins) or REGION (collapses to one active zone) location reference. On read, the concrete zone the VM was placed in. GLOBAL and MULTI_REGION are rejected.
Workspace Id
Unique identifier of the workspace that the virtual machine belongs to
Cpu
CPU configuration for a virtual machine.
object
Number of vCPUs present at boot time.
This is the number of virtual CPUs (vCPUs) that will be present in the virtual machine when it boots.
Maximum number of vCPUs.
This option defines the maximum number of vCPUs that can be assigned to the VM. In particular, this option is used when looking for CPU hotplug as it lets the provide an indication about how many vCPUs might be needed later during the runtime of the VM.
For instance, if booting the VM with 2 vCPUs and a maximum of 6 vCPUs, it means up to 4 vCPUs can be added later at runtime by resizing the VM.
The value must be greater than or equal to the number of boot vCPUs
Topology
CPU topology refers to the physical organization of central processing units (CPUs) within a system, including the number of sockets, cores, and threads. This information is essential for optimizing virtualization, workload distribution, and performance tuning.
object
Number of threads per core.
A CPU core can support multiple threads of execution, depending on its capabilities. This attribute refers to how many threads each core can handle simultaneously, commonly known as “simultaneous multithreading” (SMT). For example, a core with threadsPerCore set to 2 would be able to handle two threads at once, essentially doubling the performance of the core in certain multi-threaded workloads.
Number of cores per die.
A CPU die is a single piece of silicon that contains the CPU’s processing units (cores). The coresPerDie represents how many cores are physically present on a single die within the CPU.
Typically, a CPU die will have several cores, and each core might handle multiple threads (depending on the threadsPerCore value).
Number of dies per socket.
A CPU socket is the physical interface that connects a processor to the motherboard, typically containing one or more CPU dies. The diesPerSocket attribute represents how many CPU dies are available in each socket. Some high-end server CPUs may have multiple dies in a single socket, each with its own set of cores. The Virtual Machine Manager (VMM) may refer to this as “diesPerPackage,” as a “package” is often used to refer to a single CPU or socket that includes multiple dies.
Number of CPU sockets.
Affinity
List of Processor affinity, or CPU pinning or “cache affinity”, enables the binding and unbinding of a process or a thread to a central processing unit (CPU) or a range of CPUs, so that the process or thread will execute only on the designated CPU or CPUs rather than any CPU. It is useful for achieving CPU pinning, ensuring multiple VMs won’t affect the performance of each other. It might also be used in the context of NUMA as it is way of making sure the VM can run on a specific host NUMA node. In general, this option is used to increase the performances of a VM depending on the host platform and the type of workload running in the guest
Processor Affinity
Processor affinity, or CPU pinning or “cache affinity”. It enables the binding and unbinding of a process or a thread to a central processing unit (CPU) or a range of CPUs, so that the process or thread will execute only on the designated CPU or CPUs rather than any CPU. It is useful for achieving CPU pinning, ensuring multiple VMs won’t affect the performance of each other. It might also be used in the context of NUMA as it is way of making sure the VM can run on a specific host NUMA node. In general, this option is used to increase the performances of a VM depending on the host platform and the type of workload running in the guest
object
Virtual CPU number
The physical CPU numbers
Features
A list of Features used to fine-tune features provided by the selected CPU model. The list of known feature names can be found in the same file as CPU models. The meaning of each feature element depends on its policy attribute.
Feature
A Feature is used to fine-tune features provided by the selected CPU model. The list of known feature names can be found in the same file as CPU models. The meaning of each feature element depends on its policy attribute.
object
Name of the feature
The name of the feature is a string that represents the feature that is being enabled or disabled.
Maximum number of physical bits.
Maximum size for guest’s addressable space. This option defines the maximum number of physical bits for all vCPUs, which sets a limit for the size of the guest’s addressable space. This is mainly useful for debug purpose.
CPU Emulation
Emulation properties for a CPU. It defines properties like the model, vendor, etc
object
Cpu Emulation Model
Specifies CPU model requested by the guest.
object
CPU Vendor
Specifies CPU vendor requested by the guest. e.g. Intel
object
Memory
Memory configuration for a qibdo Virtual Machine. It indicates the amount of memory that the VM will have, the access mode, the usage or not of huge pages, the memory zones, the memory backing, among other properties.
object
Guest memory, in bytes.
object
Huge-page size, in bytes.
object
Zone size, in bytes.
object
Huge-page size, in bytes.
object
object
Maximum guest memory, in bytes.
object
Disk size, in bytes.
object
object
object
object
object
object
object
object
object
object
object
object
object
Bandwidth Rate for Disk
object
Sustained bandwidth, in bits per second.
One-time burst allowance, in bits per second.
Operations Rate for Disk
object
object
object
object
object
object
object
object
Created Timestamp
Timestamp when the disk was created
Updated Timestamp
Timestamp when the disk was last updated
object
object
object
object
object
Memory attached to this NUMA node, in bytes.
object
object
object
object
Represents a rate limiter group for virtual machines
object
The unique ID of the rate limiter group
The group identifier
The associated virtual machine rate limiter
object
The bandwidth rate limiter. REQUIRED: an omitted message would be read as a 0 bps limit, not as “no limit” — the domain models both limiters as always present.
object
Sustained bandwidth, in bits per second.
One-time burst allowance, in bits per second.
The operations rate limiter. REQUIRED for the same reason as bandwidth.
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Dirty-ring buffer size, in bytes.
object
object
object
object
object
object
object
object
object
object
Each rate is in bits per second; absent means the caller set no limit for it.
object
Each rate is in bits per second; absent means the caller set no limit for it.
object
object
object
object
object
object
object
object
The subnet this interface attaches to. When set, the platform allocates a network port on that subnet at create time and assigns the interface’s address and MAC automatically.
The allocated network port identifier. Server-assigned when subnet_id is set; the port is released when the virtual machine is deleted.
object
object
object
object
object
object
Deployment Target Id
Unique identifier of the physical host where the virtual machine is running
Created Timestamp
Timestamp when the virtual machine was created
Updated Timestamp
Timestamp when the virtual machine was last updated
Clock Configuration
Clock offset basis and timer configuration for the guest
object
Clock offset basis relative to the host clock.
Named timer configurations for the guest.
A named timer with presence and tick policy configuration.
object
Timer hardware name.
Whether this timer is present (enabled) in the guest.
Tick policy when the guest falls behind the host clock.
Clock track source (RTC-specific).
Restart Policy
Defines what the system should do when the VM stops: always restart, restart on failure only, manual control, or never restart
Resource Pool Id
The ResourcePool this VM is placed into, either named explicitly by the caller or auto-resolved from the VM’s domain spec. Always populated after create.
Cloud-init Extension
Optional caller-supplied cloud-init YAML, merged on top of the platform baseline at VM creation time. Transient, not persisted on the aggregate; size-bounded; YAML-validated server-side before CRD submission. Responses MUST NOT echo this back because secrets may be present.
Eviction Strategy
User intent when the VM’s host enters maintenance. Maps to the virtualization host’s eviction strategy. Mutating via Update changes future eviction behaviour only; it never triggers a live migration of a running VM. Unspecified on Create is read by the server as LIVE_MIGRATE_IF_POSSIBLE.
Responses
Section titled “ Responses ”OK
Compute Operation
An acknowledgment of a mutation request, carrying tracking metadata, errors, and warnings. Follows GCP’s Operations pattern (AIP-151).
object
Operation ID
Unique identifier for this operation.
Resource ID
The ID of the resource affected by this operation. May be empty for async operations where the resource does not yet exist.
Resource Type
The type of resource (e.g., “com.qibdo.cloud.compute:vm”).
Operation Type
The kind of mutation that was requested.
Status
Current lifecycle state of the operation.
Insert Time
When the operation was first created.
Start Time
When the operation started executing.
End Time
When the operation completed (either successfully or with errors).
Errors
Business rule errors encountered during the operation.
Operation Error
A structured error returned inside an operation when a business rule fails.
object
Error Code
Numeric identifier following the S_SSS_EEE convention.
Description
Human-readable explanation of the error.
Reason
Machine-readable error identifier in UPPER_SNAKE form — the same dispatch
key google.rpc.ErrorInfo.reason carries on the synchronous error plane.
Warnings
Non-fatal notices about the operation.
Operation Warning
A non-fatal notice attached to an operation.
object
Warning Code
Numeric identifier following the S_SSS_EEE convention.
Description
Human-readable explanation of the warning.
Progress
Percentage of completion (0-100).
Scope Type
The category of scope the operation ran in or was triggered from. COMPUTE_SCOPE_TYPE_UNSPECIFIED when the operation is not scoped.
Scope ID
The resource this operation was scoped to — for example, when scope_type is COMPUTE_SCOPE_TYPE_WORKSPACE this is the workspace id. Empty for COMPUTE_SCOPE_TYPE_PLATFORM, which has no scoped resource, and when unscoped.
Principal ID
Who performed or triggered the operation, whether a person or a machine account. Always populated: platform-driven work records the reserved system principal, so every audit record names an actor.
Trace ID
W3C trace id, for correlating this operation with the traces and log lines of the request that caused it. Empty when the operation ran with no trace context — a scheduled or event-driven action rather than a request.
Example
{ "operation_type": "COMPUTE_OPERATION_TYPE_UNSPECIFIED", "status": "COMPUTE_OPERATION_STATUS_UNSPECIFIED", "scope_type": "COMPUTE_SCOPE_TYPE_UNSPECIFIED"}default
Section titled “default ”Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
object
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
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][google.rpc.Status.details] field, or localized by the client.
A list of messages that carry the error details. There is a common set of message types for APIs to use.
Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
object
The type of the serialized message.
Example generated
{ "code": 1, "message": "example", "details": [ { "@type": "example" } ]}