vm.device.create¶
Create a new device for the VM of id vm.
If attributes.dtype is the RAW type and a new raw file is to be created, attributes.exists will be passed as false. This means the API handles creating the raw file and raises the appropriate exception if file creation fails.
If attributes.dtype is of DISK type and a new Zvol is to be created, attributes.create_zvol will be passed as true with valid attributes.zvol_name and attributes.zvol_volsize values.
No Additional Items
Tuple Validation
Parameter 1: vm_device_create
vm_device_create
Type: objectVMDeviceCreateArgs parameters.
No Additional PropertiesAttributes
Device-specific configuration attributes.
VMCDROMDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for CD-ROM/DVD devices.
Must be one of:
- "CDROM"
"CDROM"
Path
Type: string Default: "*"Path must not contain "{", "}" characters, and it should start with "/mnt/".
Must match regular expression:^[^{}]*$
Must be at least 1
characters long
VMDisplayDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for display/graphics devices.
Must be one of:
- "DISPLAY"
"DISPLAY"
Resolution
Type: enum (of string) Default: "1024x768"Screen resolution for the virtual display.
Must be one of:
- "1920x1200"
- "1920x1080"
- "1600x1200"
- "1600x900"
- "1400x1050"
- "1280x1024"
- "1280x720"
- "1024x768"
- "800x600"
- "640x480"
Port
Default: nullVNC/SPICE port number for remote display access. null
for auto-assignment.
Value must be greater or equal to 5900
and lesser or equal to 65535
Web Port
Default: nullWeb-based display access port number. null
for auto-assignment.
Bind
Type: string Default: "127.0.0.1"IP address to bind the display server to.
Must be at least 1
characters long
Wait
Type: boolean Default: falseWhether to wait for a client connection before starting the VM.
Password
Default: nullPassword for display server authentication.
Web
Type: boolean Default: trueWhether to enable web-based display access.
Type
Type: enum (of string) Default: "SPICE"Display protocol type.
Must be one of:
- "SPICE"
- "VNC"
VMNICDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for network interface cards.
Must be one of:
- "NIC"
"NIC"
Trust Guest Rx Filters
Type: boolean Default: falseWhether to trust guest OS receive filter settings for better performance.
Type
Type: enum (of string) Default: "E1000"Network interface controller type. E1000
for Intel compatibility, VIRTIO
for performance.
Must be one of:
- "E1000"
- "VIRTIO"
Nic Attach
Default: nullHost network interface or bridge to attach to. null
for no attachment.
Mac
Default: nullMAC address for the virtual network interface. null
for auto-generation.
Must match regular expression:
^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$
VMPCIDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for PCI passthrough devices.
Must be one of:
- "PCI"
"PCI"
Pptdev
Type: stringHost PCI device identifier to pass through to the VM.
Must be at least 1
characters long
VMRAWDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for raw disk devices.
Must be one of:
- "RAW"
"RAW"
Path
Type: string Default: "127.0.0.1"Path must not contain "{", "}" characters.
Must match regular expression:^[^{}]*$
Must be at least 1
characters long
Type
Type: enum (of string) Default: "AHCI"Disk controller interface type. AHCI for compatibility, VIRTIO for performance.
Must be one of:
- "AHCI"
- "VIRTIO"
Exists
Type: boolean Default: falseWhether the disk file already exists or should be created.
Boot
Type: boolean Default: falseWhether this disk should be marked as bootable.
Size
Default: nullSize of the disk in bytes. Required if creating a new disk file.
Logical Sectorsize
Default: nullLogical sector size for the disk. null
for default.
Must be one of:
- null
- 512
- 4096
Physical Sectorsize
Default: nullPhysical sector size for the disk. null
for default.
Must be one of:
- null
- 512
- 4096
Iotype
Type: enum (of string) Default: "THREADS"I/O backend type for disk operations.
Must be one of:
- "NATIVE"
- "THREADS"
- "IO_URING"
Serial
Default: nullSerial number to assign to the virtual disk. null
for auto-generated.
Must be at least 1
characters long
VMDiskDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for virtual disk devices.
Must be one of:
- "DISK"
"DISK"
Path
Default: nullPath to existing disk file or ZFS volume. null
if creating a new ZFS volume.
Must be at least 1
characters long
Type
Type: enum (of string) Default: "AHCI"Disk controller interface type. AHCI for compatibility, VIRTIO for performance.
Must be one of:
- "AHCI"
- "VIRTIO"
Create Zvol
Type: boolean Default: falseWhether to create a new ZFS volume for this disk.
Zvol Name
Default: nullName for the new ZFS volume. Required if create_zvol
is true.
Zvol Volsize
Default: nullSize of the new ZFS volume in bytes. Required if create_zvol
is true.
Logical Sectorsize
Default: nullLogical sector size for the disk. null
for default.
Must be one of:
- null
- 512
- 4096
Physical Sectorsize
Default: nullPhysical sector size for the disk. null
for default.
Must be one of:
- null
- 512
- 4096
Iotype
Type: enum (of string) Default: "THREADS"I/O backend type for disk operations.
Must be one of:
- "NATIVE"
- "THREADS"
- "IO_URING"
Serial
Default: nullSerial number to assign to the virtual disk. null
for auto-generated.
Must be at least 1
characters long
VMUSBDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for USB devices.
Must be one of:
- "USB"
"USB"
USB device attributes for identification. null
for USB host controller only.
USBAttributes
Type: objectNo Additional Properties
Vendor Id
Type: string Default: "127.0.0.1"USB vendor identifier in hexadecimal format (e.g., '0x1d6b' for Linux Foundation).
Must match regular expression:^0x.*
Must be at least 1
characters long
Product Id
Type: string Default: "127.0.0.1"USB product identifier in hexadecimal format (e.g., '0x0002' for 2.0 root hub).
Must match regular expression:^0x.*
Must be at least 1
characters long
Controller Type
Type: enum (of string) Default: "nec-xhci"USB controller type for the virtual machine.
Must be one of:
- "piix3-uhci"
- "piix4-uhci"
- "ehci"
- "ich9-ehci1"
- "vt82c686b-uhci"
- "pci-ohci"
- "nec-xhci"
- "qemu-xhci"
Device
Default: nullHost USB device path to pass through. null
for controller only.
Must be at least 1
characters long
Vm
Type: integerID of the virtual machine this device belongs to.
Order
Default: nullBoot order priority for this device. null
for automatic assignment.
VMDeviceEntry
Type: objectThe newly created VM device configuration.
No Additional PropertiesId
Type: integerUnique identifier for the VM device.
Attributes
Device-specific configuration attributes.
VMCDROMDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for CD-ROM/DVD devices.
Must be one of:
- "CDROM"
"CDROM"
Path
Type: string Default: "*"Path must not contain "{", "}" characters, and it should start with "/mnt/".
Must match regular expression:^[^{}]*$
Must be at least 1
characters long
VMDisplayDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for display/graphics devices.
Must be one of:
- "DISPLAY"
"DISPLAY"
Resolution
Type: enum (of string) Default: "1024x768"Screen resolution for the virtual display.
Must be one of:
- "1920x1200"
- "1920x1080"
- "1600x1200"
- "1600x900"
- "1400x1050"
- "1280x1024"
- "1280x720"
- "1024x768"
- "800x600"
- "640x480"
Port
Default: nullVNC/SPICE port number for remote display access. null
for auto-assignment.
Value must be greater or equal to 5900
and lesser or equal to 65535
Web Port
Default: nullWeb-based display access port number. null
for auto-assignment.
Bind
Type: string Default: "127.0.0.1"IP address to bind the display server to.
Must be at least 1
characters long
Wait
Type: boolean Default: falseWhether to wait for a client connection before starting the VM.
Password
Default: nullPassword for display server authentication.
Web
Type: boolean Default: trueWhether to enable web-based display access.
Type
Type: enum (of string) Default: "SPICE"Display protocol type.
Must be one of:
- "SPICE"
- "VNC"
VMNICDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for network interface cards.
Must be one of:
- "NIC"
"NIC"
Trust Guest Rx Filters
Type: boolean Default: falseWhether to trust guest OS receive filter settings for better performance.
Type
Type: enum (of string) Default: "E1000"Network interface controller type. E1000
for Intel compatibility, VIRTIO
for performance.
Must be one of:
- "E1000"
- "VIRTIO"
Nic Attach
Default: nullHost network interface or bridge to attach to. null
for no attachment.
Mac
Default: nullMAC address for the virtual network interface. null
for auto-generation.
Must match regular expression:
^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$
VMPCIDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for PCI passthrough devices.
Must be one of:
- "PCI"
"PCI"
Pptdev
Type: stringHost PCI device identifier to pass through to the VM.
Must be at least 1
characters long
VMRAWDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for raw disk devices.
Must be one of:
- "RAW"
"RAW"
Path
Type: string Default: "127.0.0.1"Path must not contain "{", "}" characters.
Must match regular expression:^[^{}]*$
Must be at least 1
characters long
Type
Type: enum (of string) Default: "AHCI"Disk controller interface type. AHCI for compatibility, VIRTIO for performance.
Must be one of:
- "AHCI"
- "VIRTIO"
Exists
Type: boolean Default: falseWhether the disk file already exists or should be created.
Boot
Type: boolean Default: falseWhether this disk should be marked as bootable.
Size
Default: nullSize of the disk in bytes. Required if creating a new disk file.
Logical Sectorsize
Default: nullLogical sector size for the disk. null
for default.
Must be one of:
- null
- 512
- 4096
Physical Sectorsize
Default: nullPhysical sector size for the disk. null
for default.
Must be one of:
- null
- 512
- 4096
Iotype
Type: enum (of string) Default: "THREADS"I/O backend type for disk operations.
Must be one of:
- "NATIVE"
- "THREADS"
- "IO_URING"
Serial
Default: nullSerial number to assign to the virtual disk. null
for auto-generated.
Must be at least 1
characters long
VMDiskDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for virtual disk devices.
Must be one of:
- "DISK"
"DISK"
Path
Default: nullPath to existing disk file or ZFS volume. null
if creating a new ZFS volume.
Must be at least 1
characters long
Type
Type: enum (of string) Default: "AHCI"Disk controller interface type. AHCI for compatibility, VIRTIO for performance.
Must be one of:
- "AHCI"
- "VIRTIO"
Create Zvol
Type: boolean Default: falseWhether to create a new ZFS volume for this disk.
Zvol Name
Default: nullName for the new ZFS volume. Required if create_zvol
is true.
Zvol Volsize
Default: nullSize of the new ZFS volume in bytes. Required if create_zvol
is true.
Logical Sectorsize
Default: nullLogical sector size for the disk. null
for default.
Must be one of:
- null
- 512
- 4096
Physical Sectorsize
Default: nullPhysical sector size for the disk. null
for default.
Must be one of:
- null
- 512
- 4096
Iotype
Type: enum (of string) Default: "THREADS"I/O backend type for disk operations.
Must be one of:
- "NATIVE"
- "THREADS"
- "IO_URING"
Serial
Default: nullSerial number to assign to the virtual disk. null
for auto-generated.
Must be at least 1
characters long
VMUSBDevice
Type: objectNo Additional Properties
Dtype
Type: constDevice type identifier for USB devices.
Must be one of:
- "USB"
"USB"
USB device attributes for identification. null
for USB host controller only.
USBAttributes
Type: objectNo Additional Properties
Vendor Id
Type: string Default: "127.0.0.1"USB vendor identifier in hexadecimal format (e.g., '0x1d6b' for Linux Foundation).
Must match regular expression:^0x.*
Must be at least 1
characters long
Product Id
Type: string Default: "127.0.0.1"USB product identifier in hexadecimal format (e.g., '0x0002' for 2.0 root hub).
Must match regular expression:^0x.*
Must be at least 1
characters long
Controller Type
Type: enum (of string) Default: "nec-xhci"USB controller type for the virtual machine.
Must be one of:
- "piix3-uhci"
- "piix4-uhci"
- "ehci"
- "ich9-ehci1"
- "vt82c686b-uhci"
- "pci-ohci"
- "nec-xhci"
- "qemu-xhci"
Device
Default: nullHost USB device path to pass through. null
for controller only.
Must be at least 1
characters long
Vm
Type: integerID of the virtual machine this device belongs to.
Order
Type: integerBoot order priority for this device (lower numbers boot first).
Required roles: VM_DEVICE_WRITE