# Data Object - VirtualMachineConfigSpec(vim.vm.ConfigSpec)

Property of
  PlacementSpec, StoragePlacementSpec, VirtualMachineCloneSpec, VirtualMachineImportSpec, VmBeingCreatedEvent, VmReconfiguredEvent
Parameter to
  CreateChildVM_Task, CreateVM_Task, ReconfigVM_Task
Extends
  DynamicData
See also
  CryptoSpec, FaultToleranceConfigInfo, LatencySensitivity, ManagedByInfo, OptionValue, ReplicationConfigSpec, ResourceAllocationInfo, ScheduledHardwareUpgradeInfo, ToolsConfigInfo, VirtualDeviceConfigSpec, VirtualMachineAffinityInfo, VirtualMachineBootOptions, VirtualMachineConsolePreferences, VirtualMachineCpuIdInfoSpec, VirtualMachineDefaultPowerOpInfo, VirtualMachineFileInfo, VirtualMachineFlagInfo, VirtualMachineNetworkShaperInfo, VirtualMachineProfileSpec, VmConfigSpec

## Data Object Description

This data object type encapsulates configuration settings when creating or reconfiguring a virtual machine. To support incremental changes, these properties are all optional. If an optional property is unset, or any nested optional property is unset, the property will not be changed unless 'unset' is a valid value for the property. To determine whether 'unset' is a valid value for a particular property, refer to the documentation for that property.

Properties

Name | Type | Description
--- | --- | ---
alternateGuestName* | xsd:string | Full name for guest, if guestId is specified as `other` or `other-64`. Reconfigure privilege: VirtualMachine.Config.Settings Since VI API 2.5
annotation* | xsd:string | User-provided description of the virtual machine. Because this property is optional in the virtual machine configuration, it is necessary to pass an explicit empty string in a ConfigSpec object to remove an annotation that is already present in the VirtualMachineConfigInfo for a virtual machine. Reconfigure privilege: VirtualMachine.Config.Rename
bootOptions* | VirtualMachineBootOptions | Settings that control the boot behavior of the virtual machine. These settings take effect during the next power-on of the virtual machine. Reconfigure privilege: VirtualMachine.Config.Settings Since VI API 2.5
changeTrackingEnabled* | xsd:boolean | Setting to control enabling/disabling changed block tracking for the virtual disks of this VM. This may only be set if the changeTrackingSupported capability is true for this virtual machine. Any change to this property will take effect the next time the virtual machine powers on, resumes from a suspended state, performs a snapshot create/delete/revert operation or migrates while powered on. Reconfigure privilege: VirtualMachine.Config.ChangeTracking (also required when setting this property while creating a virtual machine) Since vSphere API 4.0
changeVersion* | xsd:string | If specified, the changes are only applied if the current changeVersion matches the specified changeVersion. This field can be used to guard against updates that have happened between when configInfo is read and when it is applied. For more information about how configurations are uniquely identified, see changeVersion.
consolePreferences* | VirtualMachineConsolePreferences | Legacy console viewer preferences that are used with power operations. For example, power on. Reconfigure privilege: VirtualMachine.Config.Settings
cpuAffinity* | VirtualMachineAffinityInfo | Affinity settings for CPU. Reconfigure privilege: VirtualMachine.Config.Resource
cpuAllocation* | ResourceAllocationInfo | Resource limits for CPU. Reconfigure privilege: VirtualMachine.Config.Resource
cpuFeatureMask* | VirtualMachineCpuIdInfoSpec[] | Specifies the CPU feature compatibility masks. Reconfigure privilege: VirtualMachine.Config.Settings As of vSphere API 6.5 FeatureMask is the recommended method for masking virtual machines with hardware version 9 and above (newer).
cpuHotAddEnabled* | xsd:boolean | Indicates whether or not virtual processors can be added to the virtual machine while it is running. This attribute can only be set when the virtual machine is powered-off. Reconfigure privilege: VirtualMachine.Config.CpuCount Since vSphere API 4.0
cpuHotRemoveEnabled* | xsd:boolean | Indicates whether or not virtual processors can be removed from the virtual machine while it is running. This attribute can only be set when the virtual machine is powered-off. Reconfigure privilege: VirtualMachine.Config.CpuCount Since vSphere API 4.0
crypto* | CryptoSpec | Virtual Machine cryptographic options. The cryptographic options are inherited to all disks of the VM. The cryptographic options for a disk can be different by setting its CryptoSpec. Since vSphere API 6.5
deviceChange* | VirtualDeviceConfigSpec[] | Set of virtual devices being modified by the configuration operation. Reconfigure privileges: VirtualMachine.Config.Resource if setting the "shares" property of a new or existing VirtualDisk device VirtualMachine.Config.RawDevice if adding, removing, or modifying a raw device (also required when creating a virtual machine) VirtualMachine.Config.HostUSBDevice if adding, removing, or modifying a VirtualUSB device backed by a host USB device (also required when creating a virtual machine). VirtualMachine.Interact.DeviceConnection if setting the "connectable" property of a connectable device VirtualMachine.Interact.SetCDMedia if setting the "backing" property of a VirtualCdrom device VirtualMachine.Interact.SetFloppyMedia if setting the "backing" property of a VirtualFloppy device VirtualMachine.Config.EditDevice if setting any property of a non-CDROM non-Floppy device VirtualMachine.Config.AddExistingDisk if adding a VirtualDisk, and the fileOperation is unset (also required when creating a virtual machine) VirtualMachine.Config.AddNewDisk if adding a VirtualDisk and the fileOperation is set (also required when creating a virtual machine) VirtualMachine.Config.RemoveDisk if removing a VirtualDisk device VirtualMachine.Config.AddRemoveDevice if adding or removing any device other than disk, raw, or USB device. Network.Assign if if setting the "backing" property of a VirtualEthernetCard device.
extraConfig* | OptionValue[] | Additional configuration information for the virtual machine. This describes a set of modifications to the additional options. If the key is already present, it will be reset with the new value provided. Otherwise, a new option is added. Keys with empty values will be removed. Configuration keys that would conflict with parameters that are explicitly configurable through other fields in the ConfigSpec object are silently ignored. Reconfigure privilege: VirtualMachine.Config.AdvancedConfig (also required when setting this property while creating a virtual machine)
files* | VirtualMachineFileInfo | Information about virtual machine files. Reconfigure privilege: VirtualMachine.Config.Settings
firmware* | xsd:string | Set the desired firmware type for this Virtual Machine. Possible values are described in GuestOsDescriptorFirmwareType Since vSphere API 5.0
flags* | VirtualMachineFlagInfo | Additional flags for a virtual machine. Reconfigure privilege: VirtualMachine.Config.Settings
ftInfo* | FaultToleranceConfigInfo | Fault Tolerance settings for this virtual machine. Since vSphere API 4.0
guestAutoLockEnabled* | xsd:boolean | If set to True, this causes the guest operating system to automatically logout any active sessions whenever there are no remote display connections open to the virtual machine. Reconfigure privilege: VirtualMachine.Config.MksControl Since vSphere API 5.0
guestId* | xsd:string | Short guest operating system identifier. Reconfigure privilege: VirtualMachine.Config.Settings
instanceUuid* | xsd:string | VirtualCenter-specific 128-bit UUID of a virtual machine, represented as a hexadecimal string. This identifier is used by VirtalCenter to uniquely identify all virtual machine instances in the Virtual Infrastructure environment, including those that may share the same SMBIOS UUID. Normally, this property is not set by a client, allowing the Virtual Infrastructure environment to assign or change it when VirtualCenter detects an identifier conflict between virtual machines. This identifier can be modified even when a virtual machine is powered on. Clients can specify that vCenter Server reassign a new identifier by a providing an empty string. Reassigning the identifer is not allowed for Fault Tolerance virtual machines. Reconfigure privilege: VirtualMachine.Config.Settings Since vSphere API 4.0
latencySensitivity* | LatencySensitivity | The latency-sensitivity setting of the virtual machine. Reconfigure privilege: VirtualMachine.Config.Resource Since vSphere API 5.1
locationId* | xsd:string | 128-bit hash based on the virtual machine's configuration file location and the UUID of the host assigned to run the virtual machine. Normally, this property is not set by a client, allowing the Virtual Infrastructure environment to assign a location ID when the virtual machine is created. However, if the virtual machine's configuration file has been manually moved, it may be desirable to clear this property, setting it to an empty string, so the property is regenerated. Reconfigure privilege: VirtualMachine.Config.Settings
managedBy* | ManagedByInfo | Specifies that this VM is managed by a VC Extension. This information is primarily used in the Client to show a custom icon for managed virtual machines, and a description of the function of the virtual machine. If no extension can be found with the extension key in the managedBy object, or the type is not found in the managedEntityInfo list of the extension, the default virtual machine icon is used, and no description is shown. To unset this field pass a ManagedByInfo object with an empty extensionKey. Reconfigure privilege: VirtualMachine.Config.ManagedBy Since vSphere API 5.0
maxMksConnections* | xsd:int | If set, this setting limits the maximum number of active remote display connections that the virtual machine will support to the specified value. Reconfigure privilege: VirtualMachine.Config.MksControl Since vSphere API 5.0
memoryAffinity* | VirtualMachineAffinityInfo | Deprecated. since vSphere 6.0. Affinity settings for memory. Reconfigure privilege: VirtualMachine.Config.Resource
memoryAllocation* | ResourceAllocationInfo | Resource limits for memory. Reconfigure privilege: VirtualMachine.Config.Resource
memoryHotAddEnabled* | xsd:boolean | Indicates whether or not memory can be added to the virtual machine while it is running. This attribute can only be set when the virtual machine is powered-off. Reconfigure privilege: VirtualMachine.Config.Memory Since vSphere API 4.0
memoryMB* | xsd:long | Size of a virtual machine's memory, in MB. Reconfigure privilege: VirtualMachine.Config.Memory
memoryReservationLockedToMax* | xsd:boolean | If set true, memory resource reservation for this virtual machine will always be equal to the virtual machine's memory size; increases in memory size will be rejected when a corresponding reservation increase is not possible. This feature may only be enabled if it is currently possible to reserve all of the virtual machine's memory. Reconfigure privilege: VirtualMachine.Config.Resource Since vSphere API 5.0
messageBusTunnelEnabled* | xsd:boolean | Whether to allow tunneling of clients from the guest VM into the common message bus on the host network. Since vSphere API 6.0
migrateEncryption* | xsd:string | An enum describing whether encrypted vMotion is required for this VM. See EncryptedVMotionModes Since vSphere API 6.5
name* | xsd:string | Display name of the virtual machine. Any % (percent) character used in this name parameter must be escaped, unless it is used to start an escape sequence. Clients may also escape any other characters in this name parameter. Snapshots of virtual machines that have spaces in their names and are associated with ESX 2.x servers are not supported. Therefore, if you want the option to take snapshots of this virtual machine and you are associating it with an ESX 2.x server, do not use spaces in the name. Reconfigure privilege: VirtualMachine.Config.Rename
nestedHVEnabled* | xsd:boolean | Specifies that this VM will use nested hardware-assisted virtualization. Reconfigure privilege: VirtualMachine.Config.Settings Since vSphere API 5.1
networkShaper* | VirtualMachineNetworkShaperInfo | Deprecated. from vSphere 5.5, shaping policy on VM is not supported. Resource limits for network. Reconfigure privilege: VirtualMachine.Config.Resource
npivDesiredNodeWwns* | xsd:short | The NPIV node WWNs to be extended from the original list of WWN nummbers. This property should be set to desired number which is an aggregate of existing plus new numbers. Desired Node WWNs should always be greater than the existing number of node WWNs Since vSphere API 4.0
npivDesiredPortWwns* | xsd:short | The NPIV port WWNs to be extended from the original list of WWN nummbers. This property should be set to desired number which is an aggregate of existing plus new numbers. Desired Node WWNs should always be greater than the existing number of port WWNs Since vSphere API 4.0
npivNodeWorldWideName* | xsd:long[] | The NPIV node WWN to be assigned to a virtual machine. This property should only be used or set when the value of npivWorldWideNameOp property is "set". Otherwise, an InvalidVmConfig fault will be thrown. If the specified node WWN is currently being used by another virtual machine, a VmWwnConflict fault will be thrown. For detail description on WWN, see npivNodeWorldWideName. Reconfigure privilege: VirtualMachine.Config.Settings. Since VI API 2.5
npivOnNonRdmDisks* | xsd:boolean | This property is used to check whether the NPIV can be enabled on the Virtual machine with non-rdm disks in the configuration, so this is potentially not enabling npiv on vmfs disks. Also this property is used to check whether RDM is required to generate WWNs for a virtual machine. Since vSphere API 4.0
npivPortWorldWideName* | xsd:long[] | The NPIV port WWN to be assigned to a virtual machine. This property should only be used or set when the value of npivWorldWideNameOp property is "set". Otherwise, an InvalidVmConfig fault will be thrown. If the specified port WWN is currently being used by another virtual machine, a VmWwnConflict fault will be thrown. For detail description on WWN, see npivPortWorldWideName. Reconfigure privilege: VirtualMachine.Config.Settings. Since VI API 2.5
npivTemporaryDisabled* | xsd:boolean | This property is used to enable or disable the NPIV capability on a desired virtual machine on a temporary basis. When this property is set NPIV Vport will not be instantiated by the VMX process of the Virtual Machine. When this property is set port WWNs and node WWNs in the VM configuration are preserved. Reconfigure privilege: VirtualMachine.Config.Settings. Since vSphere API 4.0
npivWorldWideNameOp* | xsd:string | The flag to indicate what type of NPIV WWN operation is going to be performed on the virtual machine. If unset, it indicates no change to existing NPIV WWN assignment (or not assigned) in the virtual machine. Reconfigure privilege: VirtualMachine.Config.Settings. See NpivWwnOp Since VI API 2.5
npivWorldWideNameType* | xsd:string | This property is used internally in the communication between the VirtualCenter server and ESX Server to indicate the source for npivNodeWorldWideName and npivPortWorldWideName when npivWorldWideNameOp is "set". This property should only be set by the VirtualCenter server. If this property is set in a call to a VirtualCenter server, an InvalidVmConfig fault will always be thrown. In a call to an ESX Server host, an InvalidVmConfig fault will be thrown if the value of npivWorldWideNameOp is not set to "set". Reconfigure privilege: VirtualMachine.Config.Settings. Since VI API 2.5
numCoresPerSocket* | xsd:int | Number of cores among which to distribute CPUs in this virtual machine. Since vSphere API 5.0
numCPUs* | xsd:int | Number of virtual processors in a virtual machine. Reconfigure privilege: VirtualMachine.Config.CpuCount
powerOpInfo* | VirtualMachineDefaultPowerOpInfo | Configuration for default power operations. Reconfigure privilege: VirtualMachine.Config.Settings
repConfig* | ReplicationConfigSpec | vSphere Replication settings. Note this may become deprecated in the future releases. We discourage any unnecessary dependency on this field. Since vSphere API 6.0
scheduledHardwareUpgradeInfo* | ScheduledHardwareUpgradeInfo | Configuration of scheduled hardware upgrades. See ScheduledHardwareUpgradeInfo Since vSphere API 5.1
swapPlacement* | xsd:string | Virtual machine swapfile placement policy. This may only be set if the swapPlacementSupported capability is true for this virtual machine. Any change to this policy will take effect the next time the virtual machine powers on, resumes from a suspended state, or migrates while powered on. Reconfigure privilege: VirtualMachine.Config.SwapPlacement (also required when setting this property while creating a virtual machine) See VirtualMachineConfigInfoSwapPlacementType Since VI API 2.5
tools* | ToolsConfigInfo | Configuration of VMware Tools running in the guest operating system. Reconfigure privilege: VirtualMachine.Config.Settings
uuid* | xsd:string | 128-bit SMBIOS UUID of a virtual machine represented as a hexadecimal string in "12345678-abcd-1234-cdef-123456789abc" format. Normally, this property is not set by a client, allowing the Virtual Infrastructure environment to assign a UUID when the virtual machine is created. However, in some rare cases, such as a manual copy of a virtual machine, it may be necessary to set this property. Reconfigure privilege: VirtualMachine.Config.Settings
vAppConfig* | VmConfigSpec | Configuration of vApp meta-data for a virtual machine Since vSphere API 4.0
vAppConfigRemoved* | xsd:boolean | Set to true, if the vApp configuration should be removed Reconfigure privilege: VApp.ApplicationConfig Since vSphere API 4.0
vAssertsEnabled* | xsd:boolean | Indicates whether user-configured virtual asserts will be triggered during virtual machine replay. This setting takes effect during the next replay of the virtual machine. Enabling this functionality can potentially cause some performance overhead during virtual machine execution. Since vSphere API 4.0
version* | xsd:string | The version string for this virtual machine. This is used only while creating a new virtual machine, and can be updated by invoking UpgradeVM_Task for this virtual machine.
virtualICH7MPresent* | xsd:boolean | Does this virtual machine have Virtual Intel I/O Controller Hub 7 Since vSphere API 5.0
virtualSMCPresent* | xsd:boolean | Does this virtual machine have System Management Controller Since vSphere API 5.0
vmProfile* | VirtualMachineProfileSpec[] | Virtual Machine Profile requirement. Profiles are solution specific. Profile Based Storage Management is a vSphere server extension. API users who want to provision VMs using Storage Profiles, need to interact with it. This is an optional parameter and if user doesn't specify profile, the default behavior will apply. Since vSphere API 5.5
vPMCEnabled* | xsd:boolean | Specifies that this VM will have vurtual CPU performance counters enabled. Reconfigure privilege: VirtualMachine.Config.Settings Since vSphere API 5.1
Properties inherited from DynamicData
None

*Need not be set
Show WSDL type definition
<complexType xmlns="http://www.w3.org/2001/XMLSchema" xmlns:sms="urn:sms" name="VirtualMachineConfigSpec"> <complexContent> <extension base="sms:DynamicData"> <sequence> <element name="changeVersion" type="xsd:string" minOccurs="0"/> <element name="name" type="xsd:string" minOccurs="0"/> <element name="version" type="xsd:string" minOccurs="0"/> <element name="uuid" type="xsd:string" minOccurs="0"/> <element name="instanceUuid" type="xsd:string" minOccurs="0"/> <element name="npivNodeWorldWideName" type="xsd:long" minOccurs="0" maxOccurs="unbounded"/> <element name="npivPortWorldWideName" type="xsd:long" minOccurs="0" maxOccurs="unbounded"/> <element name="npivWorldWideNameType" type="xsd:string" minOccurs="0"/> <element name="npivDesiredNodeWwns" type="xsd:short" minOccurs="0"/> <element name="npivDesiredPortWwns" type="xsd:short" minOccurs="0"/> <element name="npivTemporaryDisabled" type="xsd:boolean" minOccurs="0"/> <element name="npivOnNonRdmDisks" type="xsd:boolean" minOccurs="0"/> <element name="npivWorldWideNameOp" type="xsd:string" minOccurs="0"/> <element name="locationId" type="xsd:string" minOccurs="0"/> <element name="guestId" type="xsd:string" minOccurs="0"/> <element name="alternateGuestName" type="xsd:string" minOccurs="0"/> <element name="annotation" type="xsd:string" minOccurs="0"/> <element name="files" type="sms:VirtualMachineFileInfo" minOccurs="0"/> <element name="tools" type="sms:ToolsConfigInfo" minOccurs="0"/> <element name="flags" type="sms:VirtualMachineFlagInfo" minOccurs="0"/> <element name="consolePreferences" type="sms:VirtualMachineConsolePreferences" minOccurs="0"/> <element name="powerOpInfo" type="sms:VirtualMachineDefaultPowerOpInfo" minOccurs="0"/> <element name="numCPUs" type="xsd:int" minOccurs="0"/> <element name="numCoresPerSocket" type="xsd:int" minOccurs="0"/> <element name="memoryMB" type="xsd:long" minOccurs="0"/> <element name="memoryHotAddEnabled" type="xsd:boolean" minOccurs="0"/> <element name="cpuHotAddEnabled" type="xsd:boolean" minOccurs="0"/> <element name="cpuHotRemoveEnabled" type="xsd:boolean" minOccurs="0"/> <element name="virtualICH7MPresent" type="xsd:boolean" minOccurs="0"/> <element name="virtualSMCPresent" type="xsd:boolean" minOccurs="0"/> <element name="deviceChange" type="sms:VirtualDeviceConfigSpec" minOccurs="0" maxOccurs="unbounded"/> <element name="cpuAllocation" type="sms:ResourceAllocationInfo" minOccurs="0"/> <element name="memoryAllocation" type="sms:ResourceAllocationInfo" minOccurs="0"/> <element name="latencySensitivity" type="sms:LatencySensitivity" minOccurs="0"/> <element name="cpuAffinity" type="sms:VirtualMachineAffinityInfo" minOccurs="0"/> <element name="memoryAffinity" type="sms:VirtualMachineAffinityInfo" minOccurs="0"/> <element name="networkShaper" type="sms:VirtualMachineNetworkShaperInfo" minOccurs="0"/> <element name="cpuFeatureMask" type="sms:VirtualMachineCpuIdInfoSpec" minOccurs="0" maxOccurs="unbounded"/> <element name="extraConfig" type="sms:OptionValue" minOccurs="0" maxOccurs="unbounded"/> <element name="swapPlacement" type="xsd:string" minOccurs="0"/> <element name="bootOptions" type="sms:VirtualMachineBootOptions" minOccurs="0"/> <element name="vAppConfig" type="sms:VmConfigSpec" minOccurs="0"/> <element name="ftInfo" type="sms:FaultToleranceConfigInfo" minOccurs="0"/> <element name="repConfig" type="sms:ReplicationConfigSpec" minOccurs="0"/> <element name="vAppConfigRemoved" type="xsd:boolean" minOccurs="0"/> <element name="vAssertsEnabled" type="xsd:boolean" minOccurs="0"/> <element name="changeTrackingEnabled" type="xsd:boolean" minOccurs="0"/> <element name="firmware" type="xsd:string" minOccurs="0"/> <element name="maxMksConnections" type="xsd:int" minOccurs="0"/> <element name="guestAutoLockEnabled" type="xsd:boolean" minOccurs="0"/> <element name="managedBy" type="sms:ManagedByInfo" minOccurs="0"/> <element name="memoryReservationLockedToMax" type="xsd:boolean" minOccurs="0"/> <element name="nestedHVEnabled" type="xsd:boolean" minOccurs="0"/> <element name="vPMCEnabled" type="xsd:boolean" minOccurs="0"/> <element name="scheduledHardwareUpgradeInfo" type="sms:ScheduledHardwareUpgradeInfo" minOccurs="0"/> <element name="vmProfile" type="sms:VirtualMachineProfileSpec" minOccurs="0" maxOccurs="unbounded"/> <element name="messageBusTunnelEnabled" type="xsd:boolean" minOccurs="0"/> <element name="crypto" type="sms:CryptoSpec" minOccurs="0"/> <element name="migrateEncryption" type="xsd:string" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType>