import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * ## Import * * ### Additional Importing Requirements * * Many of the requirements for [cloning](#additional-requirements-and-notes-for-cloning) apply to importing. Although importing writes directly to the Terraform state, some rules can not be enforced during import time, so every effort should be made to ensure the correctness of the configuration before the import. * * The following requirements apply to import: * * * The disks must have a [`label`](#label) argument assigned in a convention matching `Hard Disk`, starting with disk number 0, based on each virtual disk order on the SCSI bus. As an example, a disk on SCSI controller `0` with a unit number of `0` would be labeled as `Hard Disk 0`, a disk on the same controller with a unit number of `1` would be `Hard Disk 1`, but the next disk, which is on SCSI controller `1` with a unit number of `0`, still becomes `Hard Disk 2`. * * * Disks are always imported with [`keep_on_remove`](#keep_on_remove) enabled until the first `pulumi up` run which will remove the setting for known disks. This process safeguards against naming or accounting mistakes in the disk configuration. * * * The storage controller count for the resource is set to the number of contiguous storage controllers found, starting with the controller at SCSI bus number `0`. If no storage controllers are discovered, the virtual machine is not eligible for import. For maximum compatibility, ensure that the virtual machine has the exact number of storage controllers needed and set the storage controller count accordingly. * * After importing, you should run `pulumi preview`. Unless you have changed anything else in the configuration that would cause other attributes to change. The only difference should be configuration-only changes, which are typically comprised of: * * * The [`imported`](#imported) flag will transition from `true` to `false`. * * * The [`keep_on_remove`](#keep_on_remove) of known disks will transition from `true` to `false`. * * * Configuration supplied in the [`clone`](#clone) block, if present, will be persisted to state. This initial persistence operation does not perform any cloning or customization actions, nor does it force a new resource. After the first apply operation, further changes to `clone` will force the creation of a new resource. * * These changes only update Terraform state when applied. Hence, it is safe to run when the virtual machine is running. If more settings are modified, you may need to plan maintenance accordingly for any necessary virtual machine re-configurations. */ export declare class VirtualMachine extends pulumi.CustomResource { /** * Get an existing VirtualMachine resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: VirtualMachineState, opts?: pulumi.CustomResourceOptions): VirtualMachine; /** * Returns true if the given object is an instance of VirtualMachine. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is VirtualMachine; /** * The guest name for the operating system when guestId is otherGuest or otherGuest64. */ readonly alternateGuestName: pulumi.Output; /** * User-provided description of the virtual machine. */ readonly annotation: pulumi.Output; /** * The number of milliseconds to wait before starting the boot sequence. */ readonly bootDelay: pulumi.Output; /** * The number of milliseconds to wait before retrying the boot sequence. This only valid if bootRetryEnabled is true. */ readonly bootRetryDelay: pulumi.Output; /** * If set to true, a virtual machine that fails to boot will try again after the delay defined in boot_retry_delay. */ readonly bootRetryEnabled: pulumi.Output; /** * A specification for a CDROM device on this virtual machine. */ readonly cdroms: pulumi.Output; /** * A unique identifier for a given version of the last configuration was applied. */ readonly changeVersion: pulumi.Output; /** * A specification for cloning a virtual machine from template. */ readonly clone: pulumi.Output; /** * Allow CPUs to be added to this virtual machine while it is running. */ readonly cpuHotAddEnabled: pulumi.Output; /** * Allow CPUs to be added to this virtual machine while it is running. */ readonly cpuHotRemoveEnabled: pulumi.Output; /** * The maximum amount of memory (in MB) or CPU (in MHz) that this virtual machine can consume, regardless of available * resources. */ readonly cpuLimit: pulumi.Output; /** * Enable CPU performance counters on this virtual machine. */ readonly cpuPerformanceCountersEnabled: pulumi.Output; /** * The amount of memory (in MB) or CPU (in MHz) that this virtual machine is guaranteed. */ readonly cpuReservation: pulumi.Output; /** * The amount of shares to allocate to cpu for a custom share level. */ readonly cpuShareCount: pulumi.Output; /** * The allocation level for cpu resources. Can be one of high, low, normal, or custom. */ readonly cpuShareLevel: pulumi.Output; /** * A list of custom attributes to set on this resource. */ readonly customAttributes: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The ID of the datacenter where the VM is to be created. */ readonly datacenterId: pulumi.Output; /** * The ID of a datastore cluster to put the virtual machine in. */ readonly datastoreClusterId: pulumi.Output; /** * The ID of the virtual machine's datastore. The virtual machine configuration is placed here, along with any virtual * disks that are created without datastores. */ readonly datastoreId: pulumi.Output; /** * The IP address selected by the provider to be used with any provisioners configured on this resource. When possible, this is the first IPv4 address that is reachable through the default gateway configured on the machine, then the first reachable IPv6 address, and then the first general discovered address if neither exists. If VMware Tools is not running on the virtual machine, or if the virtual machine is powered off, this value will be blank. */ readonly defaultIpAddress: pulumi.Output; /** * A specification for a virtual disk device on this virtual machine. */ readonly disks: pulumi.Output; /** * When the boot type set in firmware is efi, this enables EFI secure boot. */ readonly efiSecureBootEnabled: pulumi.Output; /** * Expose the UUIDs of attached virtual disks to the virtual machine, allowing access to them in the guest. */ readonly enableDiskUuid: pulumi.Output; /** * Enable logging on this virtual machine. */ readonly enableLogging: pulumi.Output; /** * The EPT/RVI (hardware memory virtualization) setting for this virtual machine. Can be one of automatic, on, or off. */ readonly eptRviMode: pulumi.Output; /** * Extra configuration data for this virtual machine. Can be used to supply advanced parameters not normally in * configuration, such as instance metadata, or configuration data for OVF images. */ readonly extraConfig: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Allow the virtual machine to be rebooted when a change to `extraConfig` occurs. */ readonly extraConfigRebootRequired: pulumi.Output; /** * The firmware interface to use on the virtual machine. Can be one of bios or efi. */ readonly firmware: pulumi.Output; /** * The name of the folder to locate the virtual machine in. */ readonly folder: pulumi.Output; /** * Set to true to force power-off a virtual machine if a graceful guest shutdown failed for a necessary operation. */ readonly forcePowerOff: pulumi.Output; /** * The guest ID for the operating system. */ readonly guestId: pulumi.Output; /** * The current list of IP addresses on this machine, including the value of `defaultIpAddress`. If VMware Tools is not running on the virtual machine, or if the virtual machine is powered off, this list will be empty. */ readonly guestIpAddresses: pulumi.Output; /** * The hardware version for the virtual machine. Allows versions within ranges: 4, 7-11, 13-15, 17-22. */ readonly hardwareVersion: pulumi.Output; /** * The ID of an optional host system to pin the virtual machine to. */ readonly hostSystemId: pulumi.Output; /** * The (non-nested) hardware virtualization setting for this virtual machine. Can be one of hvAuto, hvOn, or hvOff. */ readonly hvMode: pulumi.Output; readonly ideControllerCount: pulumi.Output; /** * List of IP addresses and CIDR networks to ignore while waiting for an IP */ readonly ignoredGuestIps: pulumi.Output; /** * Indicates if the virtual machine resource has been imported, or if the state has been migrated from a previous version of the resource. It influences the behavior of the first post-import apply operation. See the section on importing below. */ readonly imported: pulumi.Output; /** * Controls the scheduling delay of the virtual machine. Use a higher sensitivity for applications that require lower * latency, such as VOIP, media player applications, or applications that require frequent access to mouse or keyboard * devices. Can be one of low, normal, medium, or high. */ readonly latencySensitivity: pulumi.Output; /** * The size of the virtual machine's memory, in MB. */ readonly memory: pulumi.Output; /** * Allow memory to be added to this virtual machine while it is running. */ readonly memoryHotAddEnabled: pulumi.Output; /** * The maximum amount of memory (in MB) or CPU (in MHz) that this virtual machine can consume, regardless of available * resources. */ readonly memoryLimit: pulumi.Output; /** * The amount of memory (in MB) or CPU (in MHz) that this virtual machine is guaranteed. */ readonly memoryReservation: pulumi.Output; /** * 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. */ readonly memoryReservationLockedToMax: pulumi.Output; /** * The amount of shares to allocate to memory for a custom share level. */ readonly memoryShareCount: pulumi.Output; /** * The allocation level for memory resources. Can be one of high, low, normal, or custom. */ readonly memoryShareLevel: pulumi.Output; /** * The amount of time, in minutes, to wait for a vMotion operation to complete before failing. */ readonly migrateWaitTimeout: pulumi.Output; /** * The managed object reference ID of the created virtual machine. */ readonly moid: pulumi.Output; /** * The name of this virtual machine. */ readonly name: pulumi.Output; /** * Enable nested hardware virtualization on this virtual machine, facilitating nested virtualization in the guest. */ readonly nestedHvEnabled: pulumi.Output; /** * A specification for a virtual NIC on this virtual machine. */ readonly networkInterfaces: pulumi.Output; /** * The number of cores to distribute amongst the CPUs in this virtual machine. If specified, the value supplied to numCpus * must be evenly divisible by this value. */ readonly numCoresPerSocket: pulumi.Output; /** * The number of virtual processors to assign to this virtual machine. */ readonly numCpus: pulumi.Output; readonly nvmeControllerCount: pulumi.Output; /** * A specification for deploying a virtual machine from ovf/ova template. */ readonly ovfDeploy: pulumi.Output; /** * A list of PCI passthrough devices */ readonly pciDeviceIds: pulumi.Output; /** * A computed value for the current power state of the virtual machine. One of `on`, `off`, or `suspended`. */ readonly powerState: pulumi.Output; /** * The amount of time, in seconds, that we will be trying to power on a VM */ readonly poweronTimeout: pulumi.Output; readonly rebootRequired: pulumi.Output; /** * Triggers replacement of resource whenever it changes. */ readonly replaceTrigger: pulumi.Output; /** * The ID of a resource pool to put the virtual machine in. */ readonly resourcePoolId: pulumi.Output; /** * Enable the run of scripts after virtual machine power-on when VMware Tools is installed. */ readonly runToolsScriptsAfterPowerOn: pulumi.Output; /** * Enable the run of scripts after virtual machine resume when when VMware Tools is installed. */ readonly runToolsScriptsAfterResume: pulumi.Output; /** * Enable the run of scripts before guest operating system reboot when VMware Tools is installed. */ readonly runToolsScriptsBeforeGuestReboot: pulumi.Output; /** * Enable the run of scripts before guest operating system shutdown when VMware Tools is installed. */ readonly runToolsScriptsBeforeGuestShutdown: pulumi.Output; /** * Enable the run of scripts before guest operating system standby when VMware Tools is installed. */ readonly runToolsScriptsBeforeGuestStandby: pulumi.Output; readonly sataControllerCount: pulumi.Output; /** * Mode for sharing the SCSI bus. The modes are physicalSharing, virtualSharing, and noSharing. */ readonly scsiBusSharing: pulumi.Output; readonly scsiControllerCount: pulumi.Output; /** * The type of SCSI bus this virtual machine will have. Can be one of lsilogic, lsilogic-sas or pvscsi. */ readonly scsiType: pulumi.Output; /** * The amount of time, in minutes, to wait for shutdown when making necessary updates to the virtual machine. */ readonly shutdownWaitTimeout: pulumi.Output; /** * The ID of the storage policy to assign to the virtual machine home directory. */ readonly storagePolicyId: pulumi.Output; /** * The swap file placement policy for this virtual machine. Can be one of inherit, hostLocal, or vmDirectory. */ readonly swapPlacementPolicy: pulumi.Output; /** * Enable guest clock synchronization with the host. On vSphere 7.0 U1 and above, with only this setting the clock is * synchronized on startup and resume. Requires VMware Tools to be installed. */ readonly syncTimeWithHost: pulumi.Output; /** * Enable periodic clock synchronization with the host. Supported only on vSphere 7.0 U1 and above. On prior versions * setting `syncTimeWithHost` is enough for periodic synchronization. Requires VMware Tools to be installed. */ readonly syncTimeWithHostPeriodically: pulumi.Output; /** * A list of tag IDs to apply to this object. */ readonly tags: pulumi.Output; /** * Set the upgrade policy for VMware Tools. Can be one of `manual` or `upgradeAtPowerCycle`. */ readonly toolsUpgradePolicy: pulumi.Output; /** * The UUID of the virtual machine. Also exposed as the `id` of the resource. */ readonly uuid: pulumi.Output; /** * vApp configuration data for this virtual machine. Can be used to provide configuration data for OVF images. */ readonly vapp: pulumi.Output; /** * Computed value which is only valid for cloned virtual machines. A list of vApp transport methods supported by the source virtual machine or template. */ readonly vappTransports: pulumi.Output; /** * Flag to specify if Virtualization-based security is enabled for this virtual machine. */ readonly vbsEnabled: pulumi.Output; /** * The state of VMware Tools in the guest. This will determine the proper course of action for some device operations. */ readonly vmwareToolsStatus: pulumi.Output; /** * The path of the virtual machine configuration file on the datastore in which the virtual machine is placed. */ readonly vmxPath: pulumi.Output; /** * A specification for a virtual Trusted Platform Module (TPM) device on the virtual machine. */ readonly vtpm: pulumi.Output; /** * Flag to specify if I/O MMU virtualization, also called Intel Virtualization Technology for Directed I/O (VT-d) and AMD * I/O Virtualization (AMD-Vi or IOMMU), is enabled. */ readonly vvtdEnabled: pulumi.Output; /** * The amount of time, in minutes, to wait for an available IP address on this virtual machine. A value less than 1 * disables the waiter. */ readonly waitForGuestIpTimeout: pulumi.Output; /** * Controls whether or not the guest network waiter waits for a routable address. When false, the waiter does not wait for * a default gateway, nor are IP addresses checked against any discovered default gateways as part of its success criteria. */ readonly waitForGuestNetRoutable: pulumi.Output; /** * The amount of time, in minutes, to wait for an available IP address on this virtual machine. A value less than 1 * disables the waiter. */ readonly waitForGuestNetTimeout: pulumi.Output; /** * Create a VirtualMachine resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: VirtualMachineArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering VirtualMachine resources. */ export interface VirtualMachineState { /** * The guest name for the operating system when guestId is otherGuest or otherGuest64. */ alternateGuestName?: pulumi.Input; /** * User-provided description of the virtual machine. */ annotation?: pulumi.Input; /** * The number of milliseconds to wait before starting the boot sequence. */ bootDelay?: pulumi.Input; /** * The number of milliseconds to wait before retrying the boot sequence. This only valid if bootRetryEnabled is true. */ bootRetryDelay?: pulumi.Input; /** * If set to true, a virtual machine that fails to boot will try again after the delay defined in boot_retry_delay. */ bootRetryEnabled?: pulumi.Input; /** * A specification for a CDROM device on this virtual machine. */ cdroms?: pulumi.Input[]>; /** * A unique identifier for a given version of the last configuration was applied. */ changeVersion?: pulumi.Input; /** * A specification for cloning a virtual machine from template. */ clone?: pulumi.Input; /** * Allow CPUs to be added to this virtual machine while it is running. */ cpuHotAddEnabled?: pulumi.Input; /** * Allow CPUs to be added to this virtual machine while it is running. */ cpuHotRemoveEnabled?: pulumi.Input; /** * The maximum amount of memory (in MB) or CPU (in MHz) that this virtual machine can consume, regardless of available * resources. */ cpuLimit?: pulumi.Input; /** * Enable CPU performance counters on this virtual machine. */ cpuPerformanceCountersEnabled?: pulumi.Input; /** * The amount of memory (in MB) or CPU (in MHz) that this virtual machine is guaranteed. */ cpuReservation?: pulumi.Input; /** * The amount of shares to allocate to cpu for a custom share level. */ cpuShareCount?: pulumi.Input; /** * The allocation level for cpu resources. Can be one of high, low, normal, or custom. */ cpuShareLevel?: pulumi.Input; /** * A list of custom attributes to set on this resource. */ customAttributes?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The ID of the datacenter where the VM is to be created. */ datacenterId?: pulumi.Input; /** * The ID of a datastore cluster to put the virtual machine in. */ datastoreClusterId?: pulumi.Input; /** * The ID of the virtual machine's datastore. The virtual machine configuration is placed here, along with any virtual * disks that are created without datastores. */ datastoreId?: pulumi.Input; /** * The IP address selected by the provider to be used with any provisioners configured on this resource. When possible, this is the first IPv4 address that is reachable through the default gateway configured on the machine, then the first reachable IPv6 address, and then the first general discovered address if neither exists. If VMware Tools is not running on the virtual machine, or if the virtual machine is powered off, this value will be blank. */ defaultIpAddress?: pulumi.Input; /** * A specification for a virtual disk device on this virtual machine. */ disks?: pulumi.Input[]>; /** * When the boot type set in firmware is efi, this enables EFI secure boot. */ efiSecureBootEnabled?: pulumi.Input; /** * Expose the UUIDs of attached virtual disks to the virtual machine, allowing access to them in the guest. */ enableDiskUuid?: pulumi.Input; /** * Enable logging on this virtual machine. */ enableLogging?: pulumi.Input; /** * The EPT/RVI (hardware memory virtualization) setting for this virtual machine. Can be one of automatic, on, or off. */ eptRviMode?: pulumi.Input; /** * Extra configuration data for this virtual machine. Can be used to supply advanced parameters not normally in * configuration, such as instance metadata, or configuration data for OVF images. */ extraConfig?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Allow the virtual machine to be rebooted when a change to `extraConfig` occurs. */ extraConfigRebootRequired?: pulumi.Input; /** * The firmware interface to use on the virtual machine. Can be one of bios or efi. */ firmware?: pulumi.Input; /** * The name of the folder to locate the virtual machine in. */ folder?: pulumi.Input; /** * Set to true to force power-off a virtual machine if a graceful guest shutdown failed for a necessary operation. */ forcePowerOff?: pulumi.Input; /** * The guest ID for the operating system. */ guestId?: pulumi.Input; /** * The current list of IP addresses on this machine, including the value of `defaultIpAddress`. If VMware Tools is not running on the virtual machine, or if the virtual machine is powered off, this list will be empty. */ guestIpAddresses?: pulumi.Input[]>; /** * The hardware version for the virtual machine. Allows versions within ranges: 4, 7-11, 13-15, 17-22. */ hardwareVersion?: pulumi.Input; /** * The ID of an optional host system to pin the virtual machine to. */ hostSystemId?: pulumi.Input; /** * The (non-nested) hardware virtualization setting for this virtual machine. Can be one of hvAuto, hvOn, or hvOff. */ hvMode?: pulumi.Input; ideControllerCount?: pulumi.Input; /** * List of IP addresses and CIDR networks to ignore while waiting for an IP */ ignoredGuestIps?: pulumi.Input[]>; /** * Indicates if the virtual machine resource has been imported, or if the state has been migrated from a previous version of the resource. It influences the behavior of the first post-import apply operation. See the section on importing below. */ imported?: pulumi.Input; /** * Controls the scheduling delay of the virtual machine. Use a higher sensitivity for applications that require lower * latency, such as VOIP, media player applications, or applications that require frequent access to mouse or keyboard * devices. Can be one of low, normal, medium, or high. */ latencySensitivity?: pulumi.Input; /** * The size of the virtual machine's memory, in MB. */ memory?: pulumi.Input; /** * Allow memory to be added to this virtual machine while it is running. */ memoryHotAddEnabled?: pulumi.Input; /** * The maximum amount of memory (in MB) or CPU (in MHz) that this virtual machine can consume, regardless of available * resources. */ memoryLimit?: pulumi.Input; /** * The amount of memory (in MB) or CPU (in MHz) that this virtual machine is guaranteed. */ memoryReservation?: pulumi.Input; /** * 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. */ memoryReservationLockedToMax?: pulumi.Input; /** * The amount of shares to allocate to memory for a custom share level. */ memoryShareCount?: pulumi.Input; /** * The allocation level for memory resources. Can be one of high, low, normal, or custom. */ memoryShareLevel?: pulumi.Input; /** * The amount of time, in minutes, to wait for a vMotion operation to complete before failing. */ migrateWaitTimeout?: pulumi.Input; /** * The managed object reference ID of the created virtual machine. */ moid?: pulumi.Input; /** * The name of this virtual machine. */ name?: pulumi.Input; /** * Enable nested hardware virtualization on this virtual machine, facilitating nested virtualization in the guest. */ nestedHvEnabled?: pulumi.Input; /** * A specification for a virtual NIC on this virtual machine. */ networkInterfaces?: pulumi.Input[]>; /** * The number of cores to distribute amongst the CPUs in this virtual machine. If specified, the value supplied to numCpus * must be evenly divisible by this value. */ numCoresPerSocket?: pulumi.Input; /** * The number of virtual processors to assign to this virtual machine. */ numCpus?: pulumi.Input; nvmeControllerCount?: pulumi.Input; /** * A specification for deploying a virtual machine from ovf/ova template. */ ovfDeploy?: pulumi.Input; /** * A list of PCI passthrough devices */ pciDeviceIds?: pulumi.Input[]>; /** * A computed value for the current power state of the virtual machine. One of `on`, `off`, or `suspended`. */ powerState?: pulumi.Input; /** * The amount of time, in seconds, that we will be trying to power on a VM */ poweronTimeout?: pulumi.Input; rebootRequired?: pulumi.Input; /** * Triggers replacement of resource whenever it changes. */ replaceTrigger?: pulumi.Input; /** * The ID of a resource pool to put the virtual machine in. */ resourcePoolId?: pulumi.Input; /** * Enable the run of scripts after virtual machine power-on when VMware Tools is installed. */ runToolsScriptsAfterPowerOn?: pulumi.Input; /** * Enable the run of scripts after virtual machine resume when when VMware Tools is installed. */ runToolsScriptsAfterResume?: pulumi.Input; /** * Enable the run of scripts before guest operating system reboot when VMware Tools is installed. */ runToolsScriptsBeforeGuestReboot?: pulumi.Input; /** * Enable the run of scripts before guest operating system shutdown when VMware Tools is installed. */ runToolsScriptsBeforeGuestShutdown?: pulumi.Input; /** * Enable the run of scripts before guest operating system standby when VMware Tools is installed. */ runToolsScriptsBeforeGuestStandby?: pulumi.Input; sataControllerCount?: pulumi.Input; /** * Mode for sharing the SCSI bus. The modes are physicalSharing, virtualSharing, and noSharing. */ scsiBusSharing?: pulumi.Input; scsiControllerCount?: pulumi.Input; /** * The type of SCSI bus this virtual machine will have. Can be one of lsilogic, lsilogic-sas or pvscsi. */ scsiType?: pulumi.Input; /** * The amount of time, in minutes, to wait for shutdown when making necessary updates to the virtual machine. */ shutdownWaitTimeout?: pulumi.Input; /** * The ID of the storage policy to assign to the virtual machine home directory. */ storagePolicyId?: pulumi.Input; /** * The swap file placement policy for this virtual machine. Can be one of inherit, hostLocal, or vmDirectory. */ swapPlacementPolicy?: pulumi.Input; /** * Enable guest clock synchronization with the host. On vSphere 7.0 U1 and above, with only this setting the clock is * synchronized on startup and resume. Requires VMware Tools to be installed. */ syncTimeWithHost?: pulumi.Input; /** * Enable periodic clock synchronization with the host. Supported only on vSphere 7.0 U1 and above. On prior versions * setting `syncTimeWithHost` is enough for periodic synchronization. Requires VMware Tools to be installed. */ syncTimeWithHostPeriodically?: pulumi.Input; /** * A list of tag IDs to apply to this object. */ tags?: pulumi.Input[]>; /** * Set the upgrade policy for VMware Tools. Can be one of `manual` or `upgradeAtPowerCycle`. */ toolsUpgradePolicy?: pulumi.Input; /** * The UUID of the virtual machine. Also exposed as the `id` of the resource. */ uuid?: pulumi.Input; /** * vApp configuration data for this virtual machine. Can be used to provide configuration data for OVF images. */ vapp?: pulumi.Input; /** * Computed value which is only valid for cloned virtual machines. A list of vApp transport methods supported by the source virtual machine or template. */ vappTransports?: pulumi.Input[]>; /** * Flag to specify if Virtualization-based security is enabled for this virtual machine. */ vbsEnabled?: pulumi.Input; /** * The state of VMware Tools in the guest. This will determine the proper course of action for some device operations. */ vmwareToolsStatus?: pulumi.Input; /** * The path of the virtual machine configuration file on the datastore in which the virtual machine is placed. */ vmxPath?: pulumi.Input; /** * A specification for a virtual Trusted Platform Module (TPM) device on the virtual machine. */ vtpm?: pulumi.Input; /** * Flag to specify if I/O MMU virtualization, also called Intel Virtualization Technology for Directed I/O (VT-d) and AMD * I/O Virtualization (AMD-Vi or IOMMU), is enabled. */ vvtdEnabled?: pulumi.Input; /** * The amount of time, in minutes, to wait for an available IP address on this virtual machine. A value less than 1 * disables the waiter. */ waitForGuestIpTimeout?: pulumi.Input; /** * Controls whether or not the guest network waiter waits for a routable address. When false, the waiter does not wait for * a default gateway, nor are IP addresses checked against any discovered default gateways as part of its success criteria. */ waitForGuestNetRoutable?: pulumi.Input; /** * The amount of time, in minutes, to wait for an available IP address on this virtual machine. A value less than 1 * disables the waiter. */ waitForGuestNetTimeout?: pulumi.Input; } /** * The set of arguments for constructing a VirtualMachine resource. */ export interface VirtualMachineArgs { /** * The guest name for the operating system when guestId is otherGuest or otherGuest64. */ alternateGuestName?: pulumi.Input; /** * User-provided description of the virtual machine. */ annotation?: pulumi.Input; /** * The number of milliseconds to wait before starting the boot sequence. */ bootDelay?: pulumi.Input; /** * The number of milliseconds to wait before retrying the boot sequence. This only valid if bootRetryEnabled is true. */ bootRetryDelay?: pulumi.Input; /** * If set to true, a virtual machine that fails to boot will try again after the delay defined in boot_retry_delay. */ bootRetryEnabled?: pulumi.Input; /** * A specification for a CDROM device on this virtual machine. */ cdroms?: pulumi.Input[]>; /** * A specification for cloning a virtual machine from template. */ clone?: pulumi.Input; /** * Allow CPUs to be added to this virtual machine while it is running. */ cpuHotAddEnabled?: pulumi.Input; /** * Allow CPUs to be added to this virtual machine while it is running. */ cpuHotRemoveEnabled?: pulumi.Input; /** * The maximum amount of memory (in MB) or CPU (in MHz) that this virtual machine can consume, regardless of available * resources. */ cpuLimit?: pulumi.Input; /** * Enable CPU performance counters on this virtual machine. */ cpuPerformanceCountersEnabled?: pulumi.Input; /** * The amount of memory (in MB) or CPU (in MHz) that this virtual machine is guaranteed. */ cpuReservation?: pulumi.Input; /** * The amount of shares to allocate to cpu for a custom share level. */ cpuShareCount?: pulumi.Input; /** * The allocation level for cpu resources. Can be one of high, low, normal, or custom. */ cpuShareLevel?: pulumi.Input; /** * A list of custom attributes to set on this resource. */ customAttributes?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The ID of the datacenter where the VM is to be created. */ datacenterId?: pulumi.Input; /** * The ID of a datastore cluster to put the virtual machine in. */ datastoreClusterId?: pulumi.Input; /** * The ID of the virtual machine's datastore. The virtual machine configuration is placed here, along with any virtual * disks that are created without datastores. */ datastoreId?: pulumi.Input; /** * A specification for a virtual disk device on this virtual machine. */ disks?: pulumi.Input[]>; /** * When the boot type set in firmware is efi, this enables EFI secure boot. */ efiSecureBootEnabled?: pulumi.Input; /** * Expose the UUIDs of attached virtual disks to the virtual machine, allowing access to them in the guest. */ enableDiskUuid?: pulumi.Input; /** * Enable logging on this virtual machine. */ enableLogging?: pulumi.Input; /** * The EPT/RVI (hardware memory virtualization) setting for this virtual machine. Can be one of automatic, on, or off. */ eptRviMode?: pulumi.Input; /** * Extra configuration data for this virtual machine. Can be used to supply advanced parameters not normally in * configuration, such as instance metadata, or configuration data for OVF images. */ extraConfig?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Allow the virtual machine to be rebooted when a change to `extraConfig` occurs. */ extraConfigRebootRequired?: pulumi.Input; /** * The firmware interface to use on the virtual machine. Can be one of bios or efi. */ firmware?: pulumi.Input; /** * The name of the folder to locate the virtual machine in. */ folder?: pulumi.Input; /** * Set to true to force power-off a virtual machine if a graceful guest shutdown failed for a necessary operation. */ forcePowerOff?: pulumi.Input; /** * The guest ID for the operating system. */ guestId?: pulumi.Input; /** * The hardware version for the virtual machine. Allows versions within ranges: 4, 7-11, 13-15, 17-22. */ hardwareVersion?: pulumi.Input; /** * The ID of an optional host system to pin the virtual machine to. */ hostSystemId?: pulumi.Input; /** * The (non-nested) hardware virtualization setting for this virtual machine. Can be one of hvAuto, hvOn, or hvOff. */ hvMode?: pulumi.Input; ideControllerCount?: pulumi.Input; /** * List of IP addresses and CIDR networks to ignore while waiting for an IP */ ignoredGuestIps?: pulumi.Input[]>; /** * Controls the scheduling delay of the virtual machine. Use a higher sensitivity for applications that require lower * latency, such as VOIP, media player applications, or applications that require frequent access to mouse or keyboard * devices. Can be one of low, normal, medium, or high. */ latencySensitivity?: pulumi.Input; /** * The size of the virtual machine's memory, in MB. */ memory?: pulumi.Input; /** * Allow memory to be added to this virtual machine while it is running. */ memoryHotAddEnabled?: pulumi.Input; /** * The maximum amount of memory (in MB) or CPU (in MHz) that this virtual machine can consume, regardless of available * resources. */ memoryLimit?: pulumi.Input; /** * The amount of memory (in MB) or CPU (in MHz) that this virtual machine is guaranteed. */ memoryReservation?: pulumi.Input; /** * 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. */ memoryReservationLockedToMax?: pulumi.Input; /** * The amount of shares to allocate to memory for a custom share level. */ memoryShareCount?: pulumi.Input; /** * The allocation level for memory resources. Can be one of high, low, normal, or custom. */ memoryShareLevel?: pulumi.Input; /** * The amount of time, in minutes, to wait for a vMotion operation to complete before failing. */ migrateWaitTimeout?: pulumi.Input; /** * The name of this virtual machine. */ name?: pulumi.Input; /** * Enable nested hardware virtualization on this virtual machine, facilitating nested virtualization in the guest. */ nestedHvEnabled?: pulumi.Input; /** * A specification for a virtual NIC on this virtual machine. */ networkInterfaces?: pulumi.Input[]>; /** * The number of cores to distribute amongst the CPUs in this virtual machine. If specified, the value supplied to numCpus * must be evenly divisible by this value. */ numCoresPerSocket?: pulumi.Input; /** * The number of virtual processors to assign to this virtual machine. */ numCpus?: pulumi.Input; nvmeControllerCount?: pulumi.Input; /** * A specification for deploying a virtual machine from ovf/ova template. */ ovfDeploy?: pulumi.Input; /** * A list of PCI passthrough devices */ pciDeviceIds?: pulumi.Input[]>; /** * The amount of time, in seconds, that we will be trying to power on a VM */ poweronTimeout?: pulumi.Input; /** * Triggers replacement of resource whenever it changes. */ replaceTrigger?: pulumi.Input; /** * The ID of a resource pool to put the virtual machine in. */ resourcePoolId: pulumi.Input; /** * Enable the run of scripts after virtual machine power-on when VMware Tools is installed. */ runToolsScriptsAfterPowerOn?: pulumi.Input; /** * Enable the run of scripts after virtual machine resume when when VMware Tools is installed. */ runToolsScriptsAfterResume?: pulumi.Input; /** * Enable the run of scripts before guest operating system reboot when VMware Tools is installed. */ runToolsScriptsBeforeGuestReboot?: pulumi.Input; /** * Enable the run of scripts before guest operating system shutdown when VMware Tools is installed. */ runToolsScriptsBeforeGuestShutdown?: pulumi.Input; /** * Enable the run of scripts before guest operating system standby when VMware Tools is installed. */ runToolsScriptsBeforeGuestStandby?: pulumi.Input; sataControllerCount?: pulumi.Input; /** * Mode for sharing the SCSI bus. The modes are physicalSharing, virtualSharing, and noSharing. */ scsiBusSharing?: pulumi.Input; scsiControllerCount?: pulumi.Input; /** * The type of SCSI bus this virtual machine will have. Can be one of lsilogic, lsilogic-sas or pvscsi. */ scsiType?: pulumi.Input; /** * The amount of time, in minutes, to wait for shutdown when making necessary updates to the virtual machine. */ shutdownWaitTimeout?: pulumi.Input; /** * The ID of the storage policy to assign to the virtual machine home directory. */ storagePolicyId?: pulumi.Input; /** * The swap file placement policy for this virtual machine. Can be one of inherit, hostLocal, or vmDirectory. */ swapPlacementPolicy?: pulumi.Input; /** * Enable guest clock synchronization with the host. On vSphere 7.0 U1 and above, with only this setting the clock is * synchronized on startup and resume. Requires VMware Tools to be installed. */ syncTimeWithHost?: pulumi.Input; /** * Enable periodic clock synchronization with the host. Supported only on vSphere 7.0 U1 and above. On prior versions * setting `syncTimeWithHost` is enough for periodic synchronization. Requires VMware Tools to be installed. */ syncTimeWithHostPeriodically?: pulumi.Input; /** * A list of tag IDs to apply to this object. */ tags?: pulumi.Input[]>; /** * Set the upgrade policy for VMware Tools. Can be one of `manual` or `upgradeAtPowerCycle`. */ toolsUpgradePolicy?: pulumi.Input; /** * vApp configuration data for this virtual machine. Can be used to provide configuration data for OVF images. */ vapp?: pulumi.Input; /** * Flag to specify if Virtualization-based security is enabled for this virtual machine. */ vbsEnabled?: pulumi.Input; /** * A specification for a virtual Trusted Platform Module (TPM) device on the virtual machine. */ vtpm?: pulumi.Input; /** * Flag to specify if I/O MMU virtualization, also called Intel Virtualization Technology for Directed I/O (VT-d) and AMD * I/O Virtualization (AMD-Vi or IOMMU), is enabled. */ vvtdEnabled?: pulumi.Input; /** * The amount of time, in minutes, to wait for an available IP address on this virtual machine. A value less than 1 * disables the waiter. */ waitForGuestIpTimeout?: pulumi.Input; /** * Controls whether or not the guest network waiter waits for a routable address. When false, the waiter does not wait for * a default gateway, nor are IP addresses checked against any discovered default gateways as part of its success criteria. */ waitForGuestNetRoutable?: pulumi.Input; /** * The amount of time, in minutes, to wait for an available IP address on this virtual machine. A value less than 1 * disables the waiter. */ waitForGuestNetTimeout?: pulumi.Input; }