VirtualMachineConfigSpec

VirtualMachineConfigSpec
VirtualMachineConfigSpec

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.

AllOf
This class requires all of the following:
JSON Example
{
    "_typeName": "string",
    "changeVersion": "string",
    "name": "string",
    "version": "string",
    "createDate": "string",
    "uuid": "string",
    "instanceUuid": "string",
    "npivNodeWorldWideName": [
        0
    ],
    "npivPortWorldWideName": [
        0
    ],
    "npivWorldWideNameType": "string",
    "npivDesiredNodeWwns": 0,
    "npivDesiredPortWwns": 0,
    "npivTemporaryDisabled": false,
    "npivOnNonRdmDisks": false,
    "npivWorldWideNameOp": "string",
    "locationId": "string",
    "guestId": "string",
    "alternateGuestName": "string",
    "annotation": "string",
    "files": {
        "_typeName": "string",
        "vmPathName": "string",
        "snapshotDirectory": "string",
        "suspendDirectory": "string",
        "logDirectory": "string",
        "ftMetadataDirectory": "string"
    },
    "tools": {
        "_typeName": "string",
        "toolsVersion": 0,
        "toolsInstallType": "string",
        "afterPowerOn": false,
        "afterResume": false,
        "beforeGuestStandby": false,
        "beforeGuestShutdown": false,
        "beforeGuestReboot": false,
        "toolsUpgradePolicy": "string",
        "pendingCustomization": "string",
        "customizationKeyId": {
            "_typeName": "string",
            "keyId": "string",
            "providerId": {
                "_typeName": "string",
                "id": "string"
            }
        },
        "syncTimeWithHostAllowed": false,
        "syncTimeWithHost": false,
        "lastInstallInfo": {
            "_typeName": "string",
            "counter": 0,
            "fault": {
                "_typeName": "string",
                "faultCause": "MethodFault Object",
                "faultMessage": [
                    {
                        "_typeName": "string",
                        "key": "string",
                        "arg": [
                            {
                                "_typeName": "string",
                                "key": "string",
                                "value": {
                                    "_typeName": "string"
                                }
                            }
                        ],
                        "message": "string"
                    }
                ]
            }
        }
    },
    "flags": {
        "_typeName": "string",
        "disableAcceleration": false,
        "enableLogging": false,
        "useToe": false,
        "runWithDebugInfo": false,
        "monitorType": "string",
        "htSharing": "string",
        "snapshotDisabled": false,
        "snapshotLocked": false,
        "diskUuidEnabled": false,
        "virtualMmuUsage": "string",
        "virtualExecUsage": "string",
        "snapshotPowerOffBehavior": "string",
        "recordReplayEnabled": false,
        "faultToleranceType": "string",
        "cbrcCacheEnabled": false,
        "vvtdEnabled": false,
        "vbsEnabled": false
    },
    "consolePreferences": {
        "_typeName": "string",
        "powerOnWhenOpened": false,
        "enterFullScreenOnPowerOn": false,
        "closeOnPowerOffOrSuspend": false
    },
    "powerOpInfo": {
        "_typeName": "string",
        "powerOffType": "string",
        "suspendType": "string",
        "resetType": "string",
        "defaultPowerOffType": "string",
        "defaultSuspendType": "string",
        "defaultResetType": "string",
        "standbyAction": "string"
    },
    "rebootPowerOff": false,
    "numCPUs": 0,
    "vcpuConfig": [
        {
            "_typeName": "string",
            "latencySensitivity": {
                "_typeName": "string",
                "level": "string",
                "sensitivity": 0
            }
        }
    ],
    "numCoresPerSocket": 0,
    "memoryMB": 0,
    "memoryHotAddEnabled": false,
    "cpuHotAddEnabled": false,
    "cpuHotRemoveEnabled": false,
    "virtualICH7MPresent": false,
    "virtualSMCPresent": false,
    "deviceChange": [
        {
            "_typeName": "string",
            "operation": "string",
            "fileOperation": "string",
            "device": {
                "_typeName": "string",
                "key": 0,
                "deviceInfo": {
                    "_typeName": "string",
                    "label": "string",
                    "summary": "string"
                },
                "backing": {
                    "_typeName": "string"
                },
                "connectable": {
                    "_typeName": "string",
                    "migrateConnect": "string",
                    "startConnected": false,
                    "allowGuestControl": false,
                    "connected": false,
                    "status": "string"
                },
                "slotInfo": {
                    "_typeName": "string"
                },
                "controllerKey": 0,
                "unitNumber": 0,
                "numaNode": 0,
                "deviceGroupInfo": {
                    "_typeName": "string",
                    "groupInstanceKey": 0,
                    "sequenceId": 0
                }
            },
            "profile": [
                {
                    "_typeName": "string"
                }
            ],
            "backing": {
                "_typeName": "string",
                "parent": "VirtualDeviceConfigSpecBackingSpec Object",
                "crypto": {
                    "_typeName": "string"
                }
            },
            "filterSpec": [
                {
                    "_typeName": "string"
                }
            ],
            "changeMode": "string"
        }
    ],
    "cpuAllocation": {
        "_typeName": "string",
        "reservation": 0,
        "expandableReservation": false,
        "limit": 0,
        "shares": {
            "_typeName": "string",
            "shares": 0,
            "level": "string"
        },
        "overheadLimit": 0
    },
    "memoryAllocation": {
        "_typeName": "string",
        "reservation": 0,
        "expandableReservation": false,
        "limit": 0,
        "shares": {
            "_typeName": "string",
            "shares": 0,
            "level": "string"
        },
        "overheadLimit": 0
    },
    "latencySensitivity": {
        "_typeName": "string",
        "level": "string",
        "sensitivity": 0
    },
    "cpuAffinity": {
        "_typeName": "string",
        "affinitySet": [
            0
        ]
    },
    "memoryAffinity": {
        "_typeName": "string",
        "affinitySet": [
            0
        ]
    },
    "networkShaper": {
        "_typeName": "string",
        "enabled": false,
        "peakBps": 0,
        "averageBps": 0,
        "burstSize": 0
    },
    "cpuFeatureMask": [
        {
            "_typeName": "string",
            "operation": "string",
            "removeKey": {
                "_typeName": "string"
            },
            "info": {
                "_typeName": "string",
                "level": 0,
                "vendor": "string",
                "eax": "string",
                "ebx": "string",
                "ecx": "string",
                "edx": "string"
            }
        }
    ],
    "extraConfig": [
        {
            "_typeName": "string",
            "key": "string",
            "value": {
                "_typeName": "string"
            }
        }
    ],
    "swapPlacement": "string",
    "bootOptions": {
        "_typeName": "string",
        "bootDelay": 0,
        "enterBIOSSetup": false,
        "efiSecureBootEnabled": false,
        "bootRetryEnabled": false,
        "bootRetryDelay": 0,
        "bootOrder": [
            {
                "_typeName": "string"
            }
        ],
        "networkBootProtocol": "string"
    },
    "vAppConfig": {
        "_typeName": "string",
        "product": [
            {
                "_typeName": "string",
                "operation": "string",
                "removeKey": {
                    "_typeName": "string"
                },
                "info": {
                    "_typeName": "string",
                    "key": 0,
                    "classId": "string",
                    "instanceId": "string",
                    "name": "string",
                    "vendor": "string",
                    "version": "string",
                    "fullVersion": "string",
                    "vendorUrl": "string",
                    "productUrl": "string",
                    "appUrl": "string"
                }
            }
        ],
        "property": [
            {
                "_typeName": "string",
                "operation": "string",
                "removeKey": {
                    "_typeName": "string"
                },
                "info": {
                    "_typeName": "string",
                    "key": 0,
                    "classId": "string",
                    "instanceId": "string",
                    "id": "string",
                    "category": "string",
                    "label": "string",
                    "type": "string",
                    "typeReference": "string",
                    "userConfigurable": false,
                    "defaultValue": "string",
                    "value": "string",
                    "description": "string"
                }
            }
        ],
        "ipAssignment": {
            "_typeName": "string",
            "supportedAllocationScheme": [
                "string"
            ],
            "ipAllocationPolicy": "string",
            "supportedIpProtocol": [
                "string"
            ],
            "ipProtocol": "string"
        },
        "eula": [
            "string"
        ],
        "ovfSection": [
            {
                "_typeName": "string",
                "operation": "string",
                "removeKey": {
                    "_typeName": "string"
                },
                "info": {
                    "_typeName": "string",
                    "key": 0,
                    "namespace": "string",
                    "type": "string",
                    "atEnvelopeLevel": false,
                    "contents": "string"
                }
            }
        ],
        "ovfEnvironmentTransport": [
            "string"
        ],
        "installBootRequired": false,
        "installBootStopDelay": 0
    },
    "ftInfo": {
        "_typeName": "string",
        "role": 0,
        "instanceUuids": [
            "string"
        ],
        "configPaths": [
            "string"
        ],
        "orphaned": false
    },
    "repConfig": {
        "_typeName": "string",
        "generation": 0,
        "vmReplicationId": "string",
        "destination": "string",
        "port": 0,
        "rpo": 0,
        "quiesceGuestEnabled": false,
        "paused": false,
        "oppUpdatesEnabled": false,
        "netCompressionEnabled": false,
        "netEncryptionEnabled": false,
        "encryptionDestination": "string",
        "encryptionPort": 0,
        "remoteCertificateThumbprint": "string",
        "dataSetsReplicationEnabled": false,
        "disk": [
            {
                "_typeName": "string",
                "key": 0,
                "diskReplicationId": "string"
            }
        ]
    },
    "vAppConfigRemoved": false,
    "vAssertsEnabled": false,
    "changeTrackingEnabled": false,
    "firmware": "string",
    "maxMksConnections": 0,
    "guestAutoLockEnabled": false,
    "managedBy": {
        "_typeName": "string",
        "extensionKey": "string",
        "type": "string"
    },
    "memoryReservationLockedToMax": false,
    "nestedHVEnabled": false,
    "vPMCEnabled": false,
    "scheduledHardwareUpgradeInfo": {
        "_typeName": "string",
        "upgradePolicy": "string",
        "versionKey": "string",
        "scheduledHardwareUpgradeStatus": "string",
        "fault": {
            "_typeName": "string",
            "faultCause": "MethodFault Object",
            "faultMessage": [
                {
                    "_typeName": "string",
                    "key": "string",
                    "arg": [
                        {
                            "_typeName": "string",
                            "key": "string",
                            "value": {
                                "_typeName": "string"
                            }
                        }
                    ],
                    "message": "string"
                }
            ]
        }
    },
    "vmProfile": [
        {
            "_typeName": "string"
        }
    ],
    "messageBusTunnelEnabled": false,
    "crypto": {
        "_typeName": "string"
    },
    "migrateEncryption": "string",
    "sgxInfo": {
        "_typeName": "string",
        "epcSize": 0,
        "flcMode": "string",
        "lePubKeyHash": "string",
        "requireAttestation": false
    },
    "ftEncryptionMode": "string",
    "guestMonitoringModeInfo": {
        "_typeName": "string",
        "gmmFile": "string",
        "gmmAppliance": "string"
    },
    "sevEnabled": false,
    "virtualNuma": {
        "_typeName": "string",
        "coresPerNumaNode": 0,
        "exposeVnumaOnCpuHotadd": false
    },
    "motherboardLayout": "string",
    "pmemFailoverEnabled": false,
    "vmxStatsCollectionEnabled": false,
    "vmOpNotificationToAppEnabled": false,
    "vmOpNotificationTimeout": 0,
    "deviceSwap": {
        "_typeName": "string",
        "lsiToPvscsi": {
            "_typeName": "string",
            "enabled": false,
            "applicable": false,
            "status": "string"
        }
    },
    "simultaneousThreads": 0,
    "pmem": {
        "_typeName": "string",
        "snapshotMode": "string"
    },
    "deviceGroups": {
        "_typeName": "string",
        "deviceGroup": [
            {
                "_typeName": "string",
                "groupInstanceKey": 0,
                "deviceInfo": {
                    "_typeName": "string",
                    "label": "string",
                    "summary": "string"
                }
            }
        ]
    },
    "fixedPassthruHotPlugEnabled": false
}
string
changeVersion
Optional

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.

string
name
Optional

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

string
version
Optional

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.

string As date-time As date-time
createDate
Optional

Creation date of a virtual machine represented in DateTime format.

This property is populated by the vCenter Server with the date and time of creation of the virtual machine. Values provided by the client will be ignored.

Reconfigure privilege: VirtualMachine.Config.Settings

string
uuid
Optional

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

string
instanceUuid
Optional

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

array of integer
npivNodeWorldWideName
Optional

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.

array of integer
npivPortWorldWideName
Optional

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.

string
npivWorldWideNameType
Optional

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.

integer
npivDesiredNodeWwns
Optional

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

integer
npivDesiredPortWwns
Optional

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

boolean
npivTemporaryDisabled
Optional

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.

boolean
npivOnNonRdmDisks
Optional

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.

string
npivWorldWideNameOp
Optional

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 also VirtualMachineConfigSpecNpivWwnOpEnum.

string
locationId
Optional

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

string
guestId
Optional

Short guest operating system identifier.

Reconfigure privilege: VirtualMachine.Config.Settings

string
alternateGuestName
Optional

Full name for guest, if guestId is specified as other or other-64.

Reconfigure privilege: VirtualMachine.Config.Settings

string
annotation
Optional

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

files
Optional

The FileInfo data object type contains the locations of virtual machine files other than the virtual disk files.

The configurable parameters are all in the FileInfo object.

The object also contains a FileLayout object that returns a complete list of additional files that makes up the virtual machine configuration. This is a read-only structure and is returned when the configuration is read. This is ignored during configuration and can be left out.

tools
Optional

ToolsConfigInfo is a data object type containing settings for the VMware Tools software running in the guest operating system.

flags
Optional

The FlagInfo data object type encapsulates the flag settings for a virtual machine.

These properties are optional since the same structure is used to change the values during an edit or create operation.

consolePreferences
Optional

Preferences for the legacy console application that affect the way it behaves during power operations on the virtual machine.

powerOpInfo
Optional

The DefaultPowerOpInfo data object type holds the configured defaults for the power operations on a virtual machine.

The properties indicated whether to do a "soft" or guest initiated operation, or a "hard" operation.

boolean
rebootPowerOff
Optional

Whether the next reboot will result in a power off.

Reconfigure privilege: VirtualMachine.Config.Settings

Since: vSphere API Release 8.0.0.1

integer As int32 As int32
numCPUs
Optional

Number of virtual processors in a virtual machine.

Reconfigure privilege: VirtualMachine.Config.CpuCount

vcpuConfig
Optional

Vcpu configuration.

The vcpuConfig array is indexed by vcpu number.

integer As int32 As int32
numCoresPerSocket
Optional

Number of cores among which to distribute CPUs in this virtual machine.

Set "numCoresPerSocket" with a non-zero value to manually configure coresPerSocket size. Set "numCoresPerSocket" with zero to remove any manual size if present, and use default coresPerSocket behavior. Leave "numCoresPerSocket" unset to continue with existing configuration (either manual or default).

integer As int64 As int64
memoryMB
Optional

Size of a virtual machine's memory, in MB.

Reconfigure privilege: VirtualMachine.Config.Memory

boolean
memoryHotAddEnabled
Optional

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

boolean
cpuHotAddEnabled
Optional

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

boolean
cpuHotRemoveEnabled
Optional

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

boolean
virtualICH7MPresent
Optional

Does this virtual machine have Virtual Intel I/O Controller Hub 7

boolean
virtualSMCPresent
Optional

Does this virtual machine have System Management Controller

deviceChange
Optional

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.
cpuAllocation
Optional

The ResourceAllocationInfo data object specifies the reserved resource requirement as well as the limit (maximum allowed usage) for a given kind of resource.

This is specified for both memory allocation (specified in MB) and CPU allocation (specified in MHz).

For a ResourcePool, the ResourceAllocationInfo object describes both the guaranteed amount of the resource (reservation) and whether or not it is expandable (expandableReservation). If expandableReservation is true, then the resource pool can grow its reservation dynamically by borrowing unreserved resources from its parent resource pool. For the methods CreateResourcePool, CreateVApp and ImportVApp, you must provide values for all properties except overheadLimit; they are not optional. (Currently, overheadLimit is for vCenter Server use only.)

If the limit is configured, it must be greater than or equal to the reservation.

memoryAllocation
Optional

The ResourceAllocationInfo data object specifies the reserved resource requirement as well as the limit (maximum allowed usage) for a given kind of resource.

This is specified for both memory allocation (specified in MB) and CPU allocation (specified in MHz).

For a ResourcePool, the ResourceAllocationInfo object describes both the guaranteed amount of the resource (reservation) and whether or not it is expandable (expandableReservation). If expandableReservation is true, then the resource pool can grow its reservation dynamically by borrowing unreserved resources from its parent resource pool. For the methods CreateResourcePool, CreateVApp and ImportVApp, you must provide values for all properties except overheadLimit; they are not optional. (Currently, overheadLimit is for vCenter Server use only.)

If the limit is configured, it must be greater than or equal to the reservation.

latencySensitivity
Optional

Specification of the latency-sensitivity information.

The latency-sensitivity is used to request from the kernel a constraint on the scheduling delay of the virtual CPUs or other resources. This allows latency-sensitive applications(e.g. VOIP, audio/video streaming, etc.) to run in a virtual machine which is configured to use specific scheduling latencies and to be scheduled with low latency.

The kernel does not provide any guarantee that it will meet the latency-sensitivity requirement of a virtual machine CPU or other resources but it will always accept the latency-sensitivity value provided.

cpuAffinity
Optional

Specification of scheduling affinity.

Scheduling affinity is used for explicitly specifying which processors or NUMA nodes may be used by a virtual machine.

memoryAffinity
Optional

Specification of scheduling affinity.

Scheduling affinity is used for explicitly specifying which processors or NUMA nodes may be used by a virtual machine.

networkShaper
Optional

Network traffic shaping specification.

Traffic shaping is used to configure the network utilization characteristics of a virtual machine.

cpuFeatureMask
Optional

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

extraConfig
Optional

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)

string
swapPlacement
Optional

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 also VirtualMachineConfigInfoSwapPlacementTypeEnum.

bootOptions
Optional

The VirtualMachineBootOptions data object defines the boot-time behavior of a virtual machine.

You can use the delay options to specify a time interval during which you can enter the virtual machine BIOS setup. These options provide a solution for the situation that occurs when the console attaches to the virtual machine after the boot sequence has passed the BIOS setup entry point.

vAppConfig
Optional

vApp related configuration of a VM.

ftInfo
Optional

FaultToleranceConfigInfo is a data object type containing Fault Tolerance settings for this virtual machine.

role, instanceUuids and configPaths contain information about the whole fault tolerance group.

repConfig
Optional

The ReplicationConfigSpec object type encapsulates the replication configuration parameters for a virtual machine.

It consists of two parts: 1) a set of virtual machine-wide replication properties; 2) a set of properties per replicated virtual disk. ReplicationSetting is passed as an argument for initial replication configuration (@see vim.HbrManager#enableReplication) as well as for re-configuration of a replicated VM's properties (@see vim.HbrManager#reconfigureReplication).

boolean
vAppConfigRemoved
Optional

Set to true, if the vApp configuration should be removed

Reconfigure privilege: VApp.ApplicationConfig

boolean
vAssertsEnabled
Optional

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.

boolean
changeTrackingEnabled
Optional

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)

string
firmware
Optional

Set the desired firmware type for this Virtual Machine.

Possible values are described in GuestOsDescriptorFirmwareTypeEnum

integer As int32 As int32
maxMksConnections
Optional

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

boolean
guestAutoLockEnabled
Optional

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

managedBy
Optional

The ManagedByInfo data object contains information about the extension responsible for the life-cycle of the entity.

boolean
memoryReservationLockedToMax
Optional

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

boolean
nestedHVEnabled
Optional

Specifies that this VM will use nested hardware-assisted virtualization.

When creating a new VM: - If vim.vm.FlagInfo.vbsEnabled is set to true, and this flag is set to false error is returned. - If this flag is unset and vim.vm.FlagInfo.vbsEnabled is set to true, the value of this flag is set to true.

Reconfigure privilege: VirtualMachine.Config.Settings

boolean
vPMCEnabled
Optional

Specifies that this VM will have virtual CPU performance counters enabled.

Reconfigure privilege: VirtualMachine.Config.Settings

scheduledHardwareUpgradeInfo
Optional

Data object type containing settings for the scheduled hardware upgrades.

vmProfile
Optional

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.

boolean
messageBusTunnelEnabled
Optional

Whether to allow tunneling of clients from the guest VM into the common message bus on the host network.

crypto
Optional

This data object type encapsulates virtual machine or disk encryption settings.

string
migrateEncryption
Optional

An enum describing whether encrypted vMotion is required for this VM.

Supported values are listed in VirtualMachineConfigSpecEncryptedVMotionModesEnum. This defaults to opportunistic for a regular VM, and will be set to required for an encrypted VM.

sgxInfo
Optional

This data object describes the virtual software guard extension (vSGX) configuration of this virtual machine.

string
ftEncryptionMode
Optional

An enum describing whether encrypted Fault Tolerance is required for this VM.

Supported values are listed in VirtualMachineConfigSpecEncryptedFtModesEnum. - This defaults to opportunistic for a regular VM, and will be set to required for an encrypted VM. - If this property is unset, the mode of encrypted Fault Tolerance will be set to opportunistic.

Since: vSphere API Release 7.0.2.0

guestMonitoringModeInfo
Optional

This data object describes the GMM (Guest Mode Monitoring) configuration of this virtual machine.

boolean
sevEnabled
Optional

SEV (Secure Encrypted Virtualization) enabled or not.

SEV is enabled when set to true, and disabled otherwise.

Since: vSphere API Release 7.0.1.0

virtualNuma
Optional

This data object describes the virtual NUMA configuration for this virtual machine and configured through ConfigSpec.

Since: vSphere API Release 8.0.0.1

string
motherboardLayout
Optional

One of motherboardLayout choices.

Default is i440bxHostBridge. See motherboardLayout

Since: vSphere API Release 8.0.0.1

boolean
pmemFailoverEnabled
Optional

Property to enable/disable PMem HA failover.

- When set to TRUE, VMs configured to use PMem will be failed over to other hosts by HA, but the data in NVDIMM is not persistent. - When set to FALSE, VMs configured to use PMem will not be failed over to other hosts by HA. Property is currently only applicable to VMs with NVDimms and will fail to set True if vPMem disks are present.

Since: vSphere API Release 7.0.2.0

boolean
vmxStatsCollectionEnabled
Optional

Property to enable/disable VMXStats Collection.

- Setting this property is only allowed when the VM is powered off and will fail otherwise. - When set to TRUE, VMs will be configured to create a scoreboard file to store certain stats for various VMX components.

Since: vSphere API Release 7.0.3.1

boolean
vmOpNotificationToAppEnabled
Optional

Property to enable/disable operation notification to applications.

- When set to TRUE, application running inside the VM will be notified of operations for which they have registered. - If unset defaults to FALSE, no notifications are sent to the application.

Since: vSphere API Release 7.0.3.0

integer As int64 As int64
vmOpNotificationTimeout
Optional

Operation notification timeout in seconds.

- Specifies the maximum time duration the applications may take to prepare for the operation after its been notified. This value is used only if vmOpNotificationToAppEnabled is set to TRUE. - Timeout has to be a non-zero positive value for applications to be able to register and get notifications.

Since: vSphere API Release 8.0.0.1

deviceSwap
Optional

Device Swap: Report current status of device swap feature.

Since: vSphere API Release 8.0.0.1

integer As int32 As int32
simultaneousThreads
Optional

Number of SMT (Simultaneous multithreading) threads.

- Set "simultaneousThreads" with a non-zero value to configure threads. - If unset, then use system defaults.

Since: vSphere API Release 8.0.0.1

pmem
Optional

Virtual Persistent Memory configuration for the VM.

Since: vSphere API Release 7.0.3.0

deviceGroups
Optional

The VirtualDeviceGroups data object type contains information about the backing that maps the virtual device onto a physical device for a Vendor Device Group device.

Vendor Device Groups allow third-parties to define collections of devices that must be allocated to a virtual machine as a unit. Typically, this is because the set of devices are related in a some way, e.g. a physical link connects the devices.

Since: vSphere API Release 8.0.0.1

boolean
fixedPassthruHotPlugEnabled
Optional

Indicates whether support to add and remove fixed passthrough devices when the VM is running should be enabled.

This property can only be set when the VM is powered off. If set, additional setup will be performed when the VM is powered on so that hot adding and removing fixed passthrough devices will be possible. NOTE: When setting this to true, the memory reservation should be equal to the guest memory size or the option to reserve all guest memory should be selected. If unset, the current value is left unchanged.

Since: vSphere API Release 8.0.1.0