# Data Object - PlacementSpec(vim.cluster.PlacementSpec)

Property of
  PlacementRankSpec, StorageDrsPlacementRankVmSpec
Parameter to
  PlaceVm
Extends
  DynamicData
See also
  ClusterRuleInfo, Datastore, HostSystem, StoragePod, VirtualMachine, VirtualMachineCloneSpec, VirtualMachineConfigSpec, VirtualMachineMovePriority, VirtualMachineRelocateSpec
Since
  vSphere API 6.0

## Data Object Description

PlacementSpec encapsulates all of the information passed to the PlaceVm method, which asks DRS for recommendations for target hosts and datastores for placing a virtual machine and its virtual disks in a cluster using unified VMotion.

Properties

Name | Type | Description
--- | --- | ---
cloneName* | xsd:string | Name for the cloned virtual machine, if the operation type is a clone
cloneSpec* | VirtualMachineCloneSpec | Specification for a virtual machine clone operation
configSpec* | VirtualMachineConfigSpec | Configuration information for the virtual machine. For an intra-vCenter migration, this argument should be unset. For a cross-vCenter migration, this argument is required. In the latter case, the following elements of the configSpec will be expected: version, cpuAllocation, memoryAllocation, numCPUs, memoryMB, files, swapPlacement; in addition, the configSpec.deviceChange should contain all the virtual disks of the virtual machine to be migrated. If configSpec.deviceChange is empty, the vm will be treated as a diskless vm. If a storage profile is specified for a virtual disk or vm configuration, only datastores that match this profile will be considered for that virtual disk or vm configuration.
datastores* | ManagedObjectReference[] to a Datastore[] | A list of compatible datastores for the virtual machine. This list is ignored if relocateSpec.datastore is set. For both intra-vCenter and cross-vCenter migrations, this list is required if relocateSpec.datastore is unset. If neither relocateSpec.datastore nor a list of compatible datastores are specified, all datastores connected to hosts in the cluster will be considered, in which case, the selected datastores in the PlacementResult are not guaranteed to be compatible with the incoming virtual machine.
disallowPrerequisiteMoves* | xsd:boolean | Specification for whether to disable pre-requisite vmotions or storage vmotions for virtual machine placement. The default value is true, that is, to disallow such prerequisite moves.
hosts* | ManagedObjectReference[] to a HostSystem[] | A list of compatible hosts for the virtual machine. This list is ignored if relocateSpec.host is set. For both intra-vCenter and cross-vCenter migrations, this list is required if relocateSpec.host is unset. If neither relocateSpec.host nor a list of compatible hosts are specified, all hosts in the cluster will be considered, in which case, the selected hosts in the PlacementResult are not guaranteed to be compatible with the incoming virtual machine.
key* | xsd:string | Client generated identifier as a reference to the placement request
placementType* | xsd:string | Type of the placement. The set of possible values are described in PlacementSpecPlacementType
priority* | VirtualMachineMovePriority | Priority of the migration operation. The default value is defaultPriority.
relocateSpec* | VirtualMachineRelocateSpec | Specification for relocating a virtual machine. Can be used to optionally specify a target host, a target datastore, or a target resource pool. If a target host is specified, this host becomes the recommended host; if a target datastore is specified, this datastore becomes the recommended datastore; if no resource pool is specified, the virtual machine will be attached to the cluster root resource pool; if the target resource pool specified is a VirtualApp, an InvalidArgument fault will be thrown. If a storage profile is specified for a virtual disk or vm configuration, only datastores that match this profile will be considered for that virtual disk or vm configuration. For cross-vCenter migration, the caller should set the service and the folder arguments properly either in the input relocateSpec or in the output relocateSpec in the placement recommendation before passing the relocateSpec to the RelocateVM API.
rules* | ClusterRuleInfo[] | A list of rules to respect while placing the virtual machine on target cluster. If the list is empty, rules will not be considered during placement, in case of cross-cluster placement within a VC and cross VC placement across VCs.
storagePods* | ManagedObjectReference[] to a StoragePod[] | A list of compatible datastore clusters for the virtual machine. This list is ignored if relocateSpec.datastore is set. For both intra-vCenter and cross-vCenter migrations, this list can be empty, in which case, the user should set either RelocateSpec.datastore or PlacementSpec.datastores as the target datastore or the list of compatible datastores.
vm* | ManagedObjectReference to a VirtualMachine | The virtual machine to be placed. For an intra-vCenter migration, this argument is required. For a cross-vCenter migration, this argument should be unset, and the caller is responsible for applying the DRS-recommended placement to the correct vm.
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="PlacementSpec"> <complexContent> <extension base="vsan:DynamicData"> <sequence> <element name="priority" type="vsan:VirtualMachineMovePriority" minOccurs="0"/> <element name="vm" type="vsan:ManagedObjectReference" minOccurs="0"/> <element name="configSpec" type="vsan:VirtualMachineConfigSpec" minOccurs="0"/> <element name="relocateSpec" type="vsan:VirtualMachineRelocateSpec" minOccurs="0"/> <element name="hosts" type="vsan:ManagedObjectReference" minOccurs="0" maxOccurs="unbounded"/> <element name="datastores" type="vsan:ManagedObjectReference" minOccurs="0" maxOccurs="unbounded"/> <element name="storagePods" type="vsan:ManagedObjectReference" minOccurs="0" maxOccurs="unbounded"/> <element name="disallowPrerequisiteMoves" type="xsd:boolean" minOccurs="0"/> <element name="rules" type="vsan:ClusterRuleInfo" minOccurs="0" maxOccurs="unbounded"/> <element name="key" type="xsd:string" minOccurs="0"/> <element name="placementType" type="xsd:string" minOccurs="0"/> <element name="cloneSpec" type="vsan:VirtualMachineCloneSpec" minOccurs="0"/> <element name="cloneName" type="xsd:string" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType>