# Data Object - VirtualHardwareOption(vim.vm.VirtualHardwareOption)

Property of
  VirtualMachineConfigOption
Extends
  DynamicData
See also
  IntOption, LongOption, ResourceConfigOption, VirtualDeviceOption
Since
  2.0

## Data Object Description

The VirtualHardwareOption data object contains the options available for all virtual devices.

Properties

Name | Type | Description
--- | --- | ---
deviceListReadonly | xsd:boolean | Whether the set of virtual devices can be changed, e.g., can devices be added or removed. This does not preclude changing devices.
hwVersion | xsd:int | The virtual hardware version.
licensingLimit* | xsd:string[] | List of propery names which limits are given be a licensing restriction of the underlying product, e.g., a limit that is not derived based on the product or hardware features. For example, the property name "numCPU"
memoryMB | LongOption | The minimum, maximum, and default memory options, in MB, per virtual machine, for this VirtualHardwareOption. These values are typically overruled by the supported and recommended values specified in the GuestOsDescriptor class.
numCoresPerSocket | IntOption | The minimum, maximum and default number of cores per socket that can be used when distributing virtual CPUs. Since vSphere API 5.0
numCPU | xsd:int[] | List of acceptable values for the number of CPUs supported by this ConfigOption. This is usually superceded by the information available in the guest operating system descriptors. The guest operating system descriptor describes a maximum CPU count, but the acceptable values are still constrained to the set specified here. The default value is stored at index 0 in the list.
numCpuReadonly | xsd:boolean | Can the number of virtual CPUs be changed
numIDEControllers | IntOption | The minimum, maximum, and default number of IDE controllers for this virtual machine configuration. Note: SCSI controllers sit on the PCI controller so their options (minimum, maximum, and default values) are contained inside the VirtualPCIControllerOption class.
numNVDIMMControllers* | IntOption | The minimum, maximum and default number of virtual NVDIMM controllers for this virtual machine configuration. Since vSphere API 6.7
numPCIControllers | IntOption | The minimum, maximum, and default number of PCI controllers for this virtual machine configuration.
numPS2Controllers | IntOption | The minimum, maximum, and default number of PS2 controllers for this virtual machine configuration.
numSIOControllers | IntOption | The minimum, maximum, and default number of SIO controllers for this virtual machine configuration.
numSupportedWwnNodes* | IntOption | The minimum, maximum and default number of NPIV WorldWidePort names supported for this virtual machine configuration. Since vSphere API 4.0
numSupportedWwnPorts* | IntOption | The minimum, maximum and default number of NPIV WorldWideNode names supported for this virtual machine configuration. Since vSphere API 4.0
numTPMDevices* | IntOption | The minimum, maximum, and default number of virtual TPMs. Since vSphere API 6.7
numUSBControllers | IntOption | The minimum, maximum, and default number of USB controllers for this virtual machine configuration.
numUSBXHCIControllers | IntOption | The minimum, maximum, and default number of XHCI (USB 3.0) controllers for this virtual machine configuration. Since vSphere API 5.0
resourceConfigOption | ResourceConfigOption | Default value and value range for ResourceConfigOption Since vSphere API 4.1
virtualDeviceOption | VirtualDeviceOption[] | Array of virtual device options valid for this virtual machine configuration. The list is unordered.
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="VirtualHardwareOption"> <complexContent> <extension base="vsan:DynamicData"> <sequence> <element name="hwVersion" type="xsd:int"/> <element name="virtualDeviceOption" type="vsan:VirtualDeviceOption" maxOccurs="unbounded"/> <element name="deviceListReadonly" type="xsd:boolean"/> <element name="numCPU" type="xsd:int" maxOccurs="unbounded"/> <element name="numCoresPerSocket" type="vsan:IntOption"/> <element name="numCpuReadonly" type="xsd:boolean"/> <element name="memoryMB" type="vsan:LongOption"/> <element name="numPCIControllers" type="vsan:IntOption"/> <element name="numIDEControllers" type="vsan:IntOption"/> <element name="numUSBControllers" type="vsan:IntOption"/> <element name="numUSBXHCIControllers" type="vsan:IntOption"/> <element name="numSIOControllers" type="vsan:IntOption"/> <element name="numPS2Controllers" type="vsan:IntOption"/> <element name="licensingLimit" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <element name="numSupportedWwnPorts" type="vsan:IntOption" minOccurs="0"/> <element name="numSupportedWwnNodes" type="vsan:IntOption" minOccurs="0"/> <element name="resourceConfigOption" type="vsan:ResourceConfigOption"/> <element name="numNVDIMMControllers" type="vsan:IntOption" minOccurs="0"/> <element name="numTPMDevices" type="vsan:IntOption" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType>