@cdktf/provider-vsphere
Version:
Prebuilt vsphere Provider for Terraform CDK (cdktf)
906 lines • 107 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface VirtualMachineConfig extends cdktf.TerraformMetaArguments {
/**
* The guest name for the operating system when guest_id is otherGuest or otherGuest64.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#alternate_guest_name VirtualMachine#alternate_guest_name}
*/
readonly alternateGuestName?: string;
/**
* User-provided description of the virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#annotation VirtualMachine#annotation}
*/
readonly annotation?: string;
/**
* The number of milliseconds to wait before starting the boot sequence.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#boot_delay VirtualMachine#boot_delay}
*/
readonly bootDelay?: number;
/**
* The number of milliseconds to wait before retrying the boot sequence. This only valid if boot_retry_enabled is true.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#boot_retry_delay VirtualMachine#boot_retry_delay}
*/
readonly bootRetryDelay?: number;
/**
* If set to true, a virtual machine that fails to boot will try again after the delay defined in boot_retry_delay.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#boot_retry_enabled VirtualMachine#boot_retry_enabled}
*/
readonly bootRetryEnabled?: boolean | cdktf.IResolvable;
/**
* Allow CPUs to be added to this virtual machine while it is running.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#cpu_hot_add_enabled VirtualMachine#cpu_hot_add_enabled}
*/
readonly cpuHotAddEnabled?: boolean | cdktf.IResolvable;
/**
* Allow CPUs to be added to this virtual machine while it is running.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#cpu_hot_remove_enabled VirtualMachine#cpu_hot_remove_enabled}
*/
readonly cpuHotRemoveEnabled?: boolean | cdktf.IResolvable;
/**
* The maximum amount of memory (in MB) or CPU (in MHz) that this virtual machine can consume, regardless of available resources.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#cpu_limit VirtualMachine#cpu_limit}
*/
readonly cpuLimit?: number;
/**
* Enable CPU performance counters on this virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#cpu_performance_counters_enabled VirtualMachine#cpu_performance_counters_enabled}
*/
readonly cpuPerformanceCountersEnabled?: boolean | cdktf.IResolvable;
/**
* The amount of memory (in MB) or CPU (in MHz) that this virtual machine is guaranteed.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#cpu_reservation VirtualMachine#cpu_reservation}
*/
readonly cpuReservation?: number;
/**
* The amount of shares to allocate to cpu for a custom share level.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#cpu_share_count VirtualMachine#cpu_share_count}
*/
readonly cpuShareCount?: number;
/**
* The allocation level for cpu resources. Can be one of high, low, normal, or custom.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#cpu_share_level VirtualMachine#cpu_share_level}
*/
readonly cpuShareLevel?: string;
/**
* A list of custom attributes to set on this resource.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#custom_attributes VirtualMachine#custom_attributes}
*/
readonly customAttributes?: {
[key: string]: string;
};
/**
* The ID of the datacenter where the VM is to be created.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#datacenter_id VirtualMachine#datacenter_id}
*/
readonly datacenterId?: string;
/**
* The ID of a datastore cluster to put the virtual machine in.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#datastore_cluster_id VirtualMachine#datastore_cluster_id}
*/
readonly datastoreClusterId?: string;
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#datastore_id VirtualMachine#datastore_id}
*/
readonly datastoreId?: string;
/**
* When the boot type set in firmware is efi, this enables EFI secure boot.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#efi_secure_boot_enabled VirtualMachine#efi_secure_boot_enabled}
*/
readonly efiSecureBootEnabled?: boolean | cdktf.IResolvable;
/**
* Expose the UUIDs of attached virtual disks to the virtual machine, allowing access to them in the guest.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#enable_disk_uuid VirtualMachine#enable_disk_uuid}
*/
readonly enableDiskUuid?: boolean | cdktf.IResolvable;
/**
* Enable logging on this virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#enable_logging VirtualMachine#enable_logging}
*/
readonly enableLogging?: boolean | cdktf.IResolvable;
/**
* The EPT/RVI (hardware memory virtualization) setting for this virtual machine. Can be one of automatic, on, or off.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#ept_rvi_mode VirtualMachine#ept_rvi_mode}
*/
readonly eptRviMode?: string;
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#extra_config VirtualMachine#extra_config}
*/
readonly extraConfig?: {
[key: string]: string;
};
/**
* Allow the virtual machine to be rebooted when a change to `extra_config` occurs.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#extra_config_reboot_required VirtualMachine#extra_config_reboot_required}
*/
readonly extraConfigRebootRequired?: boolean | cdktf.IResolvable;
/**
* The firmware interface to use on the virtual machine. Can be one of bios or efi.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#firmware VirtualMachine#firmware}
*/
readonly firmware?: string;
/**
* The name of the folder to locate the virtual machine in.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#folder VirtualMachine#folder}
*/
readonly folder?: string;
/**
* Set to true to force power-off a virtual machine if a graceful guest shutdown failed for a necessary operation.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#force_power_off VirtualMachine#force_power_off}
*/
readonly forcePowerOff?: boolean | cdktf.IResolvable;
/**
* The guest ID for the operating system.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#guest_id VirtualMachine#guest_id}
*/
readonly guestId?: string;
/**
* The hardware version for the virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#hardware_version VirtualMachine#hardware_version}
*/
readonly hardwareVersion?: number;
/**
* The ID of an optional host system to pin the virtual machine to.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#host_system_id VirtualMachine#host_system_id}
*/
readonly hostSystemId?: string;
/**
* The (non-nested) hardware virtualization setting for this virtual machine. Can be one of hvAuto, hvOn, or hvOff.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#hv_mode VirtualMachine#hv_mode}
*/
readonly hvMode?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#id VirtualMachine#id}
*
* Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
* If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
*/
readonly id?: string;
/**
* The number of IDE controllers that Terraform manages on this virtual machine. This directly affects the amount of disks you can add to the virtual machine and the maximum disk unit number. Note that lowering this value does not remove controllers.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#ide_controller_count VirtualMachine#ide_controller_count}
*/
readonly ideControllerCount?: number;
/**
* List of IP addresses and CIDR networks to ignore while waiting for an IP
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#ignored_guest_ips VirtualMachine#ignored_guest_ips}
*/
readonly ignoredGuestIps?: string[];
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#latency_sensitivity VirtualMachine#latency_sensitivity}
*/
readonly latencySensitivity?: string;
/**
* The size of the virtual machine's memory, in MB.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#memory VirtualMachine#memory}
*/
readonly memory?: number;
/**
* Allow memory to be added to this virtual machine while it is running.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#memory_hot_add_enabled VirtualMachine#memory_hot_add_enabled}
*/
readonly memoryHotAddEnabled?: boolean | cdktf.IResolvable;
/**
* The maximum amount of memory (in MB) or CPU (in MHz) that this virtual machine can consume, regardless of available resources.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#memory_limit VirtualMachine#memory_limit}
*/
readonly memoryLimit?: number;
/**
* The amount of memory (in MB) or CPU (in MHz) that this virtual machine is guaranteed.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#memory_reservation VirtualMachine#memory_reservation}
*/
readonly memoryReservation?: number;
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#memory_reservation_locked_to_max VirtualMachine#memory_reservation_locked_to_max}
*/
readonly memoryReservationLockedToMax?: boolean | cdktf.IResolvable;
/**
* The amount of shares to allocate to memory for a custom share level.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#memory_share_count VirtualMachine#memory_share_count}
*/
readonly memoryShareCount?: number;
/**
* The allocation level for memory resources. Can be one of high, low, normal, or custom.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#memory_share_level VirtualMachine#memory_share_level}
*/
readonly memoryShareLevel?: string;
/**
* The amount of time, in minutes, to wait for a vMotion operation to complete before failing.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#migrate_wait_timeout VirtualMachine#migrate_wait_timeout}
*/
readonly migrateWaitTimeout?: number;
/**
* The name of this virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#name VirtualMachine#name}
*/
readonly name: string;
/**
* Enable nested hardware virtualization on this virtual machine, facilitating nested virtualization in the guest.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#nested_hv_enabled VirtualMachine#nested_hv_enabled}
*/
readonly nestedHvEnabled?: boolean | cdktf.IResolvable;
/**
* The number of cores to distribute amongst the CPUs in this virtual machine. If specified, the value supplied to num_cpus must be evenly divisible by this value.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#num_cores_per_socket VirtualMachine#num_cores_per_socket}
*/
readonly numCoresPerSocket?: number;
/**
* The number of virtual processors to assign to this virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#num_cpus VirtualMachine#num_cpus}
*/
readonly numCpus?: number;
/**
* The number of NVMe controllers that Terraform manages on this virtual machine. This directly affects the amount of disks you can add to the virtual machine and the maximum disk unit number. Note that lowering this value does not remove controllers.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#nvme_controller_count VirtualMachine#nvme_controller_count}
*/
readonly nvmeControllerCount?: number;
/**
* A list of PCI passthrough devices
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#pci_device_id VirtualMachine#pci_device_id}
*/
readonly pciDeviceId?: string[];
/**
* The amount of time, in seconds, that we will be trying to power on a VM
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#poweron_timeout VirtualMachine#poweron_timeout}
*/
readonly poweronTimeout?: number;
/**
* Triggers replacement of resource whenever it changes.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#replace_trigger VirtualMachine#replace_trigger}
*/
readonly replaceTrigger?: string;
/**
* The ID of a resource pool to put the virtual machine in.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#resource_pool_id VirtualMachine#resource_pool_id}
*/
readonly resourcePoolId: string;
/**
* Enable the run of scripts after virtual machine power-on when VMware Tools is installed.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#run_tools_scripts_after_power_on VirtualMachine#run_tools_scripts_after_power_on}
*/
readonly runToolsScriptsAfterPowerOn?: boolean | cdktf.IResolvable;
/**
* Enable the run of scripts after virtual machine resume when when VMware Tools is installed.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#run_tools_scripts_after_resume VirtualMachine#run_tools_scripts_after_resume}
*/
readonly runToolsScriptsAfterResume?: boolean | cdktf.IResolvable;
/**
* Enable the run of scripts before guest operating system reboot when VMware Tools is installed.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#run_tools_scripts_before_guest_reboot VirtualMachine#run_tools_scripts_before_guest_reboot}
*/
readonly runToolsScriptsBeforeGuestReboot?: boolean | cdktf.IResolvable;
/**
* Enable the run of scripts before guest operating system shutdown when VMware Tools is installed.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#run_tools_scripts_before_guest_shutdown VirtualMachine#run_tools_scripts_before_guest_shutdown}
*/
readonly runToolsScriptsBeforeGuestShutdown?: boolean | cdktf.IResolvable;
/**
* Enable the run of scripts before guest operating system standby when VMware Tools is installed.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#run_tools_scripts_before_guest_standby VirtualMachine#run_tools_scripts_before_guest_standby}
*/
readonly runToolsScriptsBeforeGuestStandby?: boolean | cdktf.IResolvable;
/**
* The number of SATA controllers that Terraform manages on this virtual machine. This directly affects the amount of disks you can add to the virtual machine and the maximum disk unit number. Note that lowering this value does not remove controllers.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#sata_controller_count VirtualMachine#sata_controller_count}
*/
readonly sataControllerCount?: number;
/**
* Mode for sharing the SCSI bus. The modes are physicalSharing, virtualSharing, and noSharing.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#scsi_bus_sharing VirtualMachine#scsi_bus_sharing}
*/
readonly scsiBusSharing?: string;
/**
* The number of SCSI controllers that Terraform manages on this virtual machine. This directly affects the amount of disks you can add to the virtual machine and the maximum disk unit number. Note that lowering this value does not remove controllers.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#scsi_controller_count VirtualMachine#scsi_controller_count}
*/
readonly scsiControllerCount?: number;
/**
* The type of SCSI bus this virtual machine will have. Can be one of lsilogic, lsilogic-sas or pvscsi.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#scsi_type VirtualMachine#scsi_type}
*/
readonly scsiType?: string;
/**
* The amount of time, in minutes, to wait for shutdown when making necessary updates to the virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#shutdown_wait_timeout VirtualMachine#shutdown_wait_timeout}
*/
readonly shutdownWaitTimeout?: number;
/**
* The ID of the storage policy to assign to the virtual machine home directory.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#storage_policy_id VirtualMachine#storage_policy_id}
*/
readonly storagePolicyId?: string;
/**
* The swap file placement policy for this virtual machine. Can be one of inherit, hostLocal, or vmDirectory.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#swap_placement_policy VirtualMachine#swap_placement_policy}
*/
readonly swapPlacementPolicy?: string;
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#sync_time_with_host VirtualMachine#sync_time_with_host}
*/
readonly syncTimeWithHost?: boolean | cdktf.IResolvable;
/**
* Enable periodic clock synchronization with the host. Supported only on vSphere 7.0 U1 and above. On prior versions setting `sync_time_with_host` is enough for periodic synchronization. Requires VMware Tools to be installed.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#sync_time_with_host_periodically VirtualMachine#sync_time_with_host_periodically}
*/
readonly syncTimeWithHostPeriodically?: boolean | cdktf.IResolvable;
/**
* A list of tag IDs to apply to this object.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#tags VirtualMachine#tags}
*/
readonly tags?: string[];
/**
* Set the upgrade policy for VMware Tools. Can be one of `manual` or `upgradeAtPowerCycle`.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#tools_upgrade_policy VirtualMachine#tools_upgrade_policy}
*/
readonly toolsUpgradePolicy?: string;
/**
* Flag to specify if Virtualization-based security is enabled for this virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#vbs_enabled VirtualMachine#vbs_enabled}
*/
readonly vbsEnabled?: boolean | cdktf.IResolvable;
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#vvtd_enabled VirtualMachine#vvtd_enabled}
*/
readonly vvtdEnabled?: boolean | cdktf.IResolvable;
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#wait_for_guest_ip_timeout VirtualMachine#wait_for_guest_ip_timeout}
*/
readonly waitForGuestIpTimeout?: number;
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#wait_for_guest_net_routable VirtualMachine#wait_for_guest_net_routable}
*/
readonly waitForGuestNetRoutable?: boolean | cdktf.IResolvable;
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#wait_for_guest_net_timeout VirtualMachine#wait_for_guest_net_timeout}
*/
readonly waitForGuestNetTimeout?: number;
/**
* cdrom block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#cdrom VirtualMachine#cdrom}
*/
readonly cdrom?: VirtualMachineCdrom[] | cdktf.IResolvable;
/**
* clone block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#clone VirtualMachine#clone}
*/
readonly clone?: VirtualMachineClone;
/**
* disk block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#disk VirtualMachine#disk}
*/
readonly disk?: VirtualMachineDisk[] | cdktf.IResolvable;
/**
* network_interface block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#network_interface VirtualMachine#network_interface}
*/
readonly networkInterface?: VirtualMachineNetworkInterface[] | cdktf.IResolvable;
/**
* ovf_deploy block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#ovf_deploy VirtualMachine#ovf_deploy}
*/
readonly ovfDeploy?: VirtualMachineOvfDeploy;
/**
* vapp block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#vapp VirtualMachine#vapp}
*/
readonly vapp?: VirtualMachineVapp;
/**
* vtpm block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#vtpm VirtualMachine#vtpm}
*/
readonly vtpm?: VirtualMachineVtpm;
}
export interface VirtualMachineCdrom {
/**
* Indicates whether the device should be mapped to a remote client device
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#client_device VirtualMachine#client_device}
*/
readonly clientDevice?: boolean | cdktf.IResolvable;
/**
* The datastore ID the ISO is located on.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#datastore_id VirtualMachine#datastore_id}
*/
readonly datastoreId?: string;
/**
* The path to the ISO file on the datastore.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#path VirtualMachine#path}
*/
readonly path?: string;
}
export declare function virtualMachineCdromToTerraform(struct?: VirtualMachineCdrom | cdktf.IResolvable): any;
export declare function virtualMachineCdromToHclTerraform(struct?: VirtualMachineCdrom | cdktf.IResolvable): any;
export declare class VirtualMachineCdromOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): VirtualMachineCdrom | cdktf.IResolvable | undefined;
set internalValue(value: VirtualMachineCdrom | cdktf.IResolvable | undefined);
private _clientDevice?;
get clientDevice(): boolean | cdktf.IResolvable;
set clientDevice(value: boolean | cdktf.IResolvable);
resetClientDevice(): void;
get clientDeviceInput(): boolean | cdktf.IResolvable | undefined;
private _datastoreId?;
get datastoreId(): string;
set datastoreId(value: string);
resetDatastoreId(): void;
get datastoreIdInput(): string | undefined;
get deviceAddress(): string;
get key(): number;
private _path?;
get path(): string;
set path(value: string);
resetPath(): void;
get pathInput(): string | undefined;
}
export declare class VirtualMachineCdromList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: VirtualMachineCdrom[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): VirtualMachineCdromOutputReference;
}
export interface VirtualMachineCloneCustomizationSpec {
/**
* The unique identifier of the customization specification is its name and is unique per vCenter Server instance.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#id VirtualMachine#id}
*
* Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
* If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
*/
readonly id: string;
/**
* The amount of time, in minutes, to wait for guest OS customization to complete before returning with an error. Setting this value to 0 or a negative value skips the waiter. Default: 10.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#timeout VirtualMachine#timeout}
*/
readonly timeout?: number;
}
export declare function virtualMachineCloneCustomizationSpecToTerraform(struct?: VirtualMachineCloneCustomizationSpecOutputReference | VirtualMachineCloneCustomizationSpec): any;
export declare function virtualMachineCloneCustomizationSpecToHclTerraform(struct?: VirtualMachineCloneCustomizationSpecOutputReference | VirtualMachineCloneCustomizationSpec): any;
export declare class VirtualMachineCloneCustomizationSpecOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
get internalValue(): VirtualMachineCloneCustomizationSpec | undefined;
set internalValue(value: VirtualMachineCloneCustomizationSpec | undefined);
private _id?;
get id(): string;
set id(value: string);
get idInput(): string | undefined;
private _timeout?;
get timeout(): number;
set timeout(value: number);
resetTimeout(): void;
get timeoutInput(): number | undefined;
}
export interface VirtualMachineCloneCustomizeLinuxOptions {
/**
* The domain name for this virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#domain VirtualMachine#domain}
*/
readonly domain: string;
/**
* The hostname for this virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#host_name VirtualMachine#host_name}
*/
readonly hostName: string;
/**
* Specifies whether or not the hardware clock should be in UTC or not.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#hw_clock_utc VirtualMachine#hw_clock_utc}
*/
readonly hwClockUtc?: boolean | cdktf.IResolvable;
/**
* The customization script to run before and or after guest customization
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#script_text VirtualMachine#script_text}
*/
readonly scriptText?: string;
/**
* Customize the time zone on the VM. This should be a time zone-style entry, like America/Los_Angeles.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#time_zone VirtualMachine#time_zone}
*/
readonly timeZone?: string;
}
export declare function virtualMachineCloneCustomizeLinuxOptionsToTerraform(struct?: VirtualMachineCloneCustomizeLinuxOptionsOutputReference | VirtualMachineCloneCustomizeLinuxOptions): any;
export declare function virtualMachineCloneCustomizeLinuxOptionsToHclTerraform(struct?: VirtualMachineCloneCustomizeLinuxOptionsOutputReference | VirtualMachineCloneCustomizeLinuxOptions): any;
export declare class VirtualMachineCloneCustomizeLinuxOptionsOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
get internalValue(): VirtualMachineCloneCustomizeLinuxOptions | undefined;
set internalValue(value: VirtualMachineCloneCustomizeLinuxOptions | undefined);
private _domain?;
get domain(): string;
set domain(value: string);
get domainInput(): string | undefined;
private _hostName?;
get hostName(): string;
set hostName(value: string);
get hostNameInput(): string | undefined;
private _hwClockUtc?;
get hwClockUtc(): boolean | cdktf.IResolvable;
set hwClockUtc(value: boolean | cdktf.IResolvable);
resetHwClockUtc(): void;
get hwClockUtcInput(): boolean | cdktf.IResolvable | undefined;
private _scriptText?;
get scriptText(): string;
set scriptText(value: string);
resetScriptText(): void;
get scriptTextInput(): string | undefined;
private _timeZone?;
get timeZone(): string;
set timeZone(value: string);
resetTimeZone(): void;
get timeZoneInput(): string | undefined;
}
export interface VirtualMachineCloneCustomizeNetworkInterface {
/**
* A DNS search domain to add to the DNS configuration on the virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#dns_domain VirtualMachine#dns_domain}
*/
readonly dnsDomain?: string;
/**
* Network-interface specific DNS settings for Windows operating systems. Ignored on Linux.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#dns_server_list VirtualMachine#dns_server_list}
*/
readonly dnsServerList?: string[];
/**
* The IPv4 address assigned to this network adapter. If left blank, DHCP is used.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#ipv4_address VirtualMachine#ipv4_address}
*/
readonly ipv4Address?: string;
/**
* The IPv4 CIDR netmask for the supplied IP address. Ignored if DHCP is selected.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#ipv4_netmask VirtualMachine#ipv4_netmask}
*/
readonly ipv4Netmask?: number;
/**
* The IPv6 address assigned to this network adapter. If left blank, default auto-configuration is used.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#ipv6_address VirtualMachine#ipv6_address}
*/
readonly ipv6Address?: string;
/**
* The IPv6 CIDR netmask for the supplied IP address. Ignored if auto-configuration is selected.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#ipv6_netmask VirtualMachine#ipv6_netmask}
*/
readonly ipv6Netmask?: number;
}
export declare function virtualMachineCloneCustomizeNetworkInterfaceToTerraform(struct?: VirtualMachineCloneCustomizeNetworkInterface | cdktf.IResolvable): any;
export declare function virtualMachineCloneCustomizeNetworkInterfaceToHclTerraform(struct?: VirtualMachineCloneCustomizeNetworkInterface | cdktf.IResolvable): any;
export declare class VirtualMachineCloneCustomizeNetworkInterfaceOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): VirtualMachineCloneCustomizeNetworkInterface | cdktf.IResolvable | undefined;
set internalValue(value: VirtualMachineCloneCustomizeNetworkInterface | cdktf.IResolvable | undefined);
private _dnsDomain?;
get dnsDomain(): string;
set dnsDomain(value: string);
resetDnsDomain(): void;
get dnsDomainInput(): string | undefined;
private _dnsServerList?;
get dnsServerList(): string[];
set dnsServerList(value: string[]);
resetDnsServerList(): void;
get dnsServerListInput(): string[] | undefined;
private _ipv4Address?;
get ipv4Address(): string;
set ipv4Address(value: string);
resetIpv4Address(): void;
get ipv4AddressInput(): string | undefined;
private _ipv4Netmask?;
get ipv4Netmask(): number;
set ipv4Netmask(value: number);
resetIpv4Netmask(): void;
get ipv4NetmaskInput(): number | undefined;
private _ipv6Address?;
get ipv6Address(): string;
set ipv6Address(value: string);
resetIpv6Address(): void;
get ipv6AddressInput(): string | undefined;
private _ipv6Netmask?;
get ipv6Netmask(): number;
set ipv6Netmask(value: number);
resetIpv6Netmask(): void;
get ipv6NetmaskInput(): number | undefined;
}
export declare class VirtualMachineCloneCustomizeNetworkInterfaceList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: VirtualMachineCloneCustomizeNetworkInterface[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): VirtualMachineCloneCustomizeNetworkInterfaceOutputReference;
}
export interface VirtualMachineCloneCustomizeWindowsOptions {
/**
* The new administrator password for this virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#admin_password VirtualMachine#admin_password}
*/
readonly adminPassword?: string;
/**
* Specifies whether or not the VM automatically logs on as Administrator.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#auto_logon VirtualMachine#auto_logon}
*/
readonly autoLogon?: boolean | cdktf.IResolvable;
/**
* Specifies how many times the VM should auto-logon the Administrator account when auto_logon is true.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#auto_logon_count VirtualMachine#auto_logon_count}
*/
readonly autoLogonCount?: number;
/**
* The host name for this virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#computer_name VirtualMachine#computer_name}
*/
readonly computerName: string;
/**
* The password of the domain administrator used to join this virtual machine to the domain.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#domain_admin_password VirtualMachine#domain_admin_password}
*/
readonly domainAdminPassword?: string;
/**
* The user account of the domain administrator used to join this virtual machine to the domain.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#domain_admin_user VirtualMachine#domain_admin_user}
*/
readonly domainAdminUser?: string;
/**
* The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#domain_ou VirtualMachine#domain_ou}
*/
readonly domainOu?: string;
/**
* The full name of the user of this virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#full_name VirtualMachine#full_name}
*/
readonly fullName?: string;
/**
* The domain that the virtual machine should join.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#join_domain VirtualMachine#join_domain}
*/
readonly joinDomain?: string;
/**
* The organization name this virtual machine is being installed for.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#organization_name VirtualMachine#organization_name}
*/
readonly organizationName?: string;
/**
* The product key for this virtual machine.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#product_key VirtualMachine#product_key}
*/
readonly productKey?: string;
/**
* A list of commands to run at first user logon, after guest customization.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#run_once_command_list VirtualMachine#run_once_command_list}
*/
readonly runOnceCommandList?: string[];
/**
* The new time zone for the virtual machine. This is a sysprep-dictated timezone code.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#time_zone VirtualMachine#time_zone}
*/
readonly timeZone?: number;
/**
* The workgroup for this virtual machine if not joining a domain.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vmware/vsphere/2.14.0/docs/resources/virtual_machine#workgroup VirtualMachine#workgroup}
*/
readonly workgroup?: string;
}
export declare function virtualMachineCloneCustomizeWindowsOptionsToTerraform(struct?: VirtualMachineCloneCustomizeWindowsOptionsOutputReference | VirtualMachineCloneCustomizeWindowsOptions): any;
export declare function virtualMachineCloneCustomizeWindowsOptionsToHclTerraform(struct?: VirtualMachineCloneCustomizeWindowsOptionsOutputReference | VirtualMachineCloneCustomizeWindowsOptions): any;
export declare class VirtualMachineCloneCustomizeWindowsOptionsOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
get internalValue(): VirtualMachineCloneCustomizeWindowsOptions | undefined;
set internalValue(value: VirtualMachineCloneCustomizeWindowsOptions | undefined);
private _adminPassword?;
get adminPassword(): string;
set adminPassword(value: string);
resetAdminPassword(): void;
get adminPasswordInput(): string | undefined;
private _autoLogon?;
get autoLogon(): boolean | cdktf.IResolvable;
set autoLogon(value: boolean | cdktf.IResolvable);
resetAutoLogon(): void;
get autoLogonInput(): boolean | cdktf.IResolvable | undefined;
private _autoLogonCount?;
get autoLogonCount(): number;
set autoLogonCount(value: number);
resetAutoLogonCount(): void;
get autoLogonCountInput(): number | undefined;
private _computerName?;
get computerName(): string;
set computerName(value: string);
get computerNameInput(): string | undefined;
private _domainAdminPassword?;
get domainAdminPassword(): string;
set domainAdminPassword(value: string);
resetDomainAdminPassword(): void;
get domainAdminPasswordInput(): string | undefined;
private _domainAdminUser?;
get domainAdminUser(): string;
set domainAdminUser(value: string);
resetDomainAdminUser(): void;
get domainAdminUserInput(): string | undefined;
private _domainOu?;
get domainOu(): string;
set domainOu(value: string);
resetDomainOu(): void;
get domainOuInput(): string | undefined;
private _fullName?;
get fullName(): string;
set fullName(value: string);
resetFullName(): void;
get fullNameInput(): string | undefined;
private _joinDomain?;
get joinDomain(): string;
set joinDomain(value: string);
resetJoinDomain(): void;
get joinDomainInput(): string | undefined;
private _organizationName?;
get organizationName(): string;
set organizationName(value: string);
resetOrganizationName(): void;
get organizationNameInput(): string | undefined;
private _productKey?;
get productKey(): string;
set productKey(value: string);
resetProductKey(): void;
get productKeyInput(): string | undefined;
private _runOnceCommandList?;
get runOn