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

Type: object

##

Type: array
No Additional Items

#### Tuple Validation

##### Parameter 1: vm_device_create

#### vm_device_create

Type: object

VMDeviceCreateArgs parameters.

No Additional Properties

##

#### Attributes

## One of

#### VMCDROMDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"CDROM"`

##

#### Path

Type: string Default: "*"

Path must not contain "{", "}" characters, and it should start with "/mnt/".

Must match regular expression: `^/mnt/[^{}]*$`

Must be at least `1` characters long

#### VMDisplayDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"DISPLAY"`

##

#### Resolution

Type: enum (of string) Default: "1024x768"

##### Must be one of:

- "1920x1200"
- "1920x1080"
- "1600x1200"
- "1600x900"
- "1400x1050"
- "1280x1024"
- "1280x720"
- "1024x768"
- "800x600"
- "640x480"

##

#### Port

Default: null

## Any of

Type: integer

Value must be greater or equal to `5900` and lesser or equal to `65535`

Type: null

##

#### Web Port

Default: null

## Any of

Type: integer

Value must be greater or equal to `5900` and lesser or equal to `65535`

Type: null

##

#### Bind

Type: string Default: "127.0.0.1"

Must be at least `1` characters long

##

#### Wait

Type: boolean Default: false

##

#### Password

Type: string

Must be at least `1` characters long

##

#### Web

Type: boolean Default: true

##

#### Type

Type: const Default: "SPICE"
Specific value: `"SPICE"`

#### VMNICDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"NIC"`

##

#### Trust Guest Rx Filters

Type: boolean Default: false

##

#### Type

Type: enum (of string) Default: "E1000"

##### Must be one of:

- "E1000"
- "VIRTIO"

##

#### Nic Attach

Default: null

## Any of

Type: string
Type: null

##

#### Mac

Default: null

## Any of

Type: string
Must match regular expression: `^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$`
Type: null

#### VMPCIDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"PCI"`

##

#### Pptdev

Type: string

Must be at least `1` characters long

#### VMRAWDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"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"

##### Must be one of:

- "AHCI"
- "VIRTIO"

##

#### Exists

Type: boolean Default: false

##

#### Boot

Type: boolean Default: false

##

#### Size

Default: null

## Any of

Type: integer
Type: null

##

#### Logical Sectorsize

Default: null

## Any of

Type: enum (of integer or null)

##### Must be one of:

- null
- 512
- 4096

Type: null

##

#### Physical Sectorsize

Default: null

## Any of

Type: enum (of integer or null)

##### Must be one of:

- null
- 512
- 4096

Type: null

##

#### Iotype

Type: enum (of string) Default: "THREADS"

##### Must be one of:

- "NATIVE"
- "THREADS"
- "IO_URING"

##

#### Serial

Default: null

## Any of

Type: string

Must be at least `1` characters long

Type: null

#### VMDiskDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"DISK"`

##

#### Path

Default: null

## Any of

Type: string

Must be at least `1` characters long

Type: null

##

#### Type

Type: enum (of string) Default: "AHCI"

##### Must be one of:

- "AHCI"
- "VIRTIO"

##

#### Create Zvol

Type: boolean Default: false

##

#### Zvol Name

Default: null

## Any of

Type: string
Type: null

##

#### Zvol Volsize

Default: null

## Any of

Type: integer
Type: null

##

#### Logical Sectorsize

Default: null

## Any of

Type: enum (of integer or null)

##### Must be one of:

- null
- 512
- 4096

Type: null

##

#### Physical Sectorsize

Default: null

## Any of

Type: enum (of integer or null)

##### Must be one of:

- null
- 512
- 4096

Type: null

##

#### Iotype

Type: enum (of string) Default: "THREADS"

##### Must be one of:

- "NATIVE"
- "THREADS"
- "IO_URING"

##

#### Serial

Default: null

## Any of

Type: string

Must be at least `1` characters long

Type: null

#### VMUSBDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"USB"`

##

Default: null

## Any of

#### USBAttributes

Type: object
No Additional Properties

##

#### Vendor Id

Type: string Default: "127.0.0.1"

Vendor id must start with "0x" prefix e.g 0x16a8.

Must match regular expression: `^0x.*`

Must be at least `1` characters long

##

#### Product Id

Type: string Default: "127.0.0.1"

Product id must start with "0x" prefix e.g 0x16a8.

Must match regular expression: `^0x.*`

Must be at least `1` characters long

Type: null

##

#### Controller Type

Type: enum (of string) Default: "nec-xhci"

##### Must be one of:

- "piix3-uhci"
- "piix4-uhci"
- "ehci"
- "ich9-ehci1"
- "vt82c686b-uhci"
- "pci-ohci"
- "nec-xhci"
- "qemu-xhci"

##

#### Device

Default: null

## Any of

Type: string

Must be at least `1` characters long

Type: null

##

#### Vm

Type: integer

##

#### Order

Default: null

## Any of

Type: integer
Type: null

##

#### VMDeviceEntry

Type: object
No Additional Properties

##

#### Id

Type: integer

##

#### Attributes

## One of

#### VMCDROMDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"CDROM"`

##

#### Path

Type: string Default: "*"

Path must not contain "{", "}" characters, and it should start with "/mnt/".

Must match regular expression: `^/mnt/[^{}]*$`

Must be at least `1` characters long

#### VMDisplayDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"DISPLAY"`

##

#### Resolution

Type: enum (of string) Default: "1024x768"

##### Must be one of:

- "1920x1200"
- "1920x1080"
- "1600x1200"
- "1600x900"
- "1400x1050"
- "1280x1024"
- "1280x720"
- "1024x768"
- "800x600"
- "640x480"

##

#### Port

Default: null

## Any of

Type: integer

Value must be greater or equal to `5900` and lesser or equal to `65535`

Type: null

##

#### Web Port

Default: null

## Any of

Type: integer

Value must be greater or equal to `5900` and lesser or equal to `65535`

Type: null

##

#### Bind

Type: string Default: "127.0.0.1"

Must be at least `1` characters long

##

#### Wait

Type: boolean Default: false

##

#### Password

Type: string

Must be at least `1` characters long

##

#### Web

Type: boolean Default: true

##

#### Type

Type: const Default: "SPICE"
Specific value: `"SPICE"`

#### VMNICDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"NIC"`

##

#### Trust Guest Rx Filters

Type: boolean Default: false

##

#### Type

Type: enum (of string) Default: "E1000"

##### Must be one of:

- "E1000"
- "VIRTIO"

##

#### Nic Attach

Default: null

## Any of

Type: string
Type: null

##

#### Mac

Default: null

## Any of

Type: string
Must match regular expression: `^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$`
Type: null

#### VMPCIDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"PCI"`

##

#### Pptdev

Type: string

Must be at least `1` characters long

#### VMRAWDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"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"

##### Must be one of:

- "AHCI"
- "VIRTIO"

##

#### Exists

Type: boolean Default: false

##

#### Boot

Type: boolean Default: false

##

#### Size

Default: null

## Any of

Type: integer
Type: null

##

#### Logical Sectorsize

Default: null

## Any of

Type: enum (of integer or null)

##### Must be one of:

- null
- 512
- 4096

Type: null

##

#### Physical Sectorsize

Default: null

## Any of

Type: enum (of integer or null)

##### Must be one of:

- null
- 512
- 4096

Type: null

##

#### Iotype

Type: enum (of string) Default: "THREADS"

##### Must be one of:

- "NATIVE"
- "THREADS"
- "IO_URING"

##

#### Serial

Default: null

## Any of

Type: string

Must be at least `1` characters long

Type: null

#### VMDiskDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"DISK"`

##

#### Path

Default: null

## Any of

Type: string

Must be at least `1` characters long

Type: null

##

#### Type

Type: enum (of string) Default: "AHCI"

##### Must be one of:

- "AHCI"
- "VIRTIO"

##

#### Create Zvol

Type: boolean Default: false

##

#### Zvol Name

Default: null

## Any of

Type: string
Type: null

##

#### Zvol Volsize

Default: null

## Any of

Type: integer
Type: null

##

#### Logical Sectorsize

Default: null

## Any of

Type: enum (of integer or null)

##### Must be one of:

- null
- 512
- 4096

Type: null

##

#### Physical Sectorsize

Default: null

## Any of

Type: enum (of integer or null)

##### Must be one of:

- null
- 512
- 4096

Type: null

##

#### Iotype

Type: enum (of string) Default: "THREADS"

##### Must be one of:

- "NATIVE"
- "THREADS"
- "IO_URING"

##

#### Serial

Default: null

## Any of

Type: string

Must be at least `1` characters long

Type: null

#### VMUSBDevice

Type: object
No Additional Properties

##

#### Dtype

Type: const
Specific value: `"USB"`

##

Default: null

## Any of

#### USBAttributes

Type: object
No Additional Properties

##

#### Vendor Id

Type: string Default: "127.0.0.1"

Vendor id must start with "0x" prefix e.g 0x16a8.

Must match regular expression: `^0x.*`

Must be at least `1` characters long

##

#### Product Id

Type: string Default: "127.0.0.1"

Product id must start with "0x" prefix e.g 0x16a8.

Must match regular expression: `^0x.*`

Must be at least `1` characters long

Type: null

##

#### Controller Type

Type: enum (of string) Default: "nec-xhci"

##### Must be one of:

- "piix3-uhci"
- "piix4-uhci"
- "ehci"
- "ich9-ehci1"
- "vt82c686b-uhci"
- "pci-ohci"
- "nec-xhci"
- "qemu-xhci"

##

#### Device

Default: null

## Any of

Type: string

Must be at least `1` characters long

Type: null

##

#### Vm

Type: integer

##

#### Order

Type: integer

Required roles: VM_DEVICE_WRITE