# Data Object - VirtualDeviceOption(vim.vm.device.VirtualDeviceOption)

Property of
  VirtualHardwareOption
Extended by
  VirtualCdromOption, VirtualControllerOption, VirtualDiskOption, VirtualEthernetCardOption, VirtualFloppyOption, VirtualKeyboardOption, VirtualMachineVMCIDeviceOption, VirtualNVDIMMOption, VirtualParallelPortOption, VirtualPCIPassthroughOption, VirtualPointingDeviceOption, VirtualSCSIPassthroughOption, VirtualSerialPortOption, VirtualSoundCardOption, VirtualTPMOption, VirtualUSBOption, VirtualVideoCardOption, VirtualVMIROMOption
Extends
  DynamicData
See also
  BoolOption, VirtualDeviceBackingOption, VirtualDeviceBusSlotOption, VirtualDeviceConnectOption

## Data Object Description

The VirtualDeviceOption data object type contains information about a virtual device type, the options for configuring the virtual device, and the relationship between this virtual device and other devices. The vSphere API groups device configurations that are mutually exclusive into different configuration objects; each of these configuration objects may define subtypes for virtual device backing options that are independent of the virtual device. Backing-dependent options should appear in a subtype of VirtualDeviceBackingOption.

Properties

Name | Type | Description
--- | --- | ---
autoAssignController* | BoolOption | Flag to indicate whether or not this device will be auto-assigned a controller if one is required. If this is true, then a client need not explicitly create the controller that this device will plug into.
backingOption* | VirtualDeviceBackingOption[] | A list of backing options that can be used to map the virtual device to the host. The list is optional, since some devices exist only within the virtual machine; for example, a VirtualController.
busSlotOption* | VirtualDeviceBusSlotOption | If the device can use a bus slot configuration, then the busSlotOption describes the bus slot options. Since vSphere API 5.1
connectOption* | VirtualDeviceConnectOption | If the device is connectable, then the connectOption describes the connect options and defaults.
controllerType* | xsd:string | Data object type that denotes the controller option object that is valid for controlling this device.
defaultBackingOptionIndex* | xsd:int | Index into the backingOption list, indicating the default backing.
deprecated | xsd:boolean | Indicates whether this device is deprecated. Hence, if set the device cannot be used when creating a new virtual machine or be added to an existing virtual machine. However, the device is still supported by the platform.
hotRemoveSupported | xsd:boolean | Indicates if this type of device can be hot-removed from the virtual machine via a reconfigure operation when the virtual machine is powered on. Since vSphere API 4.0
licensingLimit* | xsd:string[] | List of property names enforced by a licensing restriction of the underlying product. For example, a limit that is not derived based on the product or hardware features; the property name "numCPU".
plugAndPlay | xsd:boolean | Indicates if this type of device can be hot-added to the virtual machine via a reconfigure operation when the virtual machine is powered on.
type | xsd:string | The name of the run-time class the client should instantiate to create a run-time instance of this device.
Properties inherited from DynamicData
None

*Need not be set
Show WSDL type definition
<complexType xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VirtualDeviceOption"> <complexContent> <extension base="vsan:DynamicData"> <sequence> <element name="type" type="xsd:string"/> <element name="connectOption" type="vsan:VirtualDeviceConnectOption" minOccurs="0"/> <element name="busSlotOption" type="vsan:VirtualDeviceBusSlotOption" minOccurs="0"/> <element name="controllerType" type="xsd:string" minOccurs="0"/> <element name="autoAssignController" type="vsan:BoolOption" minOccurs="0"/> <element name="backingOption" type="vsan:VirtualDeviceBackingOption" minOccurs="0" maxOccurs="unbounded"/> <element name="defaultBackingOptionIndex" type="xsd:int" minOccurs="0"/> <element name="licensingLimit" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <element name="deprecated" type="xsd:boolean"/> <element name="plugAndPlay" type="xsd:boolean"/> <element name="hotRemoveSupported" type="xsd:boolean" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType>