@muhlba91/pulumi-proxmoxve
Version:
A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.
859 lines (858 loc) • 29.7 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Manages a virtual machine.
*
* ## High Availability
*
* When managing a virtual machine in a multi-node cluster, the VM's HA settings can
* be managed using the `proxmoxve.HA.HAResource` resource.
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
*
* const ubuntuVmVirtualMachine = new proxmoxve.vm.VirtualMachine("ubuntuVmVirtualMachine", {vmId: 4321});
* const ubuntuVmHAResource = new proxmoxve.ha.HAResource("ubuntuVmHAResource", {
* comment: "Managed by Pulumi",
* group: "node1",
* resourceId: pulumi.interpolate`vm:${ubuntuVmVirtualMachine.vmId}`,
* state: "started",
* });
* ```
*
* ## Important Notes
*
* ### `local-lvm` Datastore
*
* The `local-lvm` is the **default datastore** for many configuration blocks, including `initialization` and `tpmState`, which may not seem to be related to "storage".
* If you do not have `local-lvm` configured in your environment, you may need to explicitly set the `datastoreId` in such blocks to a different value.
*
* ### Cloning
*
* When cloning an existing virtual machine, whether it's a template or not, the
* resource will inherit the disks and other configuration from the source VM.
*
* *If* you modify any attributes of an existing disk in the clone, you also need to\
* explicitly provide values for any other attributes that differ from the schema defaults\
* in the source (e.g., `size`, `discard`, `cache`, `aio`).\
* Otherwise, the schema defaults will take effect and override the source values.
*
* Furthermore, when cloning from one node to a different one, the behavior changes
* depening on the datastores of the source VM. If at least one non-shared
* datastore is used, the VM is first cloned to the source node before being
* migrated to the target node. This circumvents a limitation in the Proxmox clone
* API.
*
* Because the migration step after the clone tries to preserve the used
* datastores by their name, it may fail if a datastore used in the source VM is
* not available on the target node (e.g. `local-lvm` is used on the source node in
* the VM but no `local-lvm` datastore is available on the target node). In this
* case, it is recommended to set the `datastoreId` argument in the `clone` block
* to force the migration step to migrate all disks to a specific datastore on the
* target node. If you need certain disks to be on specific datastores, set
* the `datastoreId` argument of the disks in the `disks` block to move the disks
* to the correct datastore after the cloning and migrating succeeded.
*
* ## Import
*
* Instances can be imported using the `node_name` and the `vm_id`, e.g.,
*
* bash
*
* ```sh
* $ pulumi import proxmoxve:VM/virtualMachine:VirtualMachine ubuntu_vm first-node/4321
* ```
*/
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<pulumi.ID>, 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;
/**
* Whether to enable ACPI (defaults to `true`).
*/
readonly acpi: pulumi.Output<boolean | undefined>;
/**
* The QEMU agent configuration.
*/
readonly agent: pulumi.Output<outputs.VM.VirtualMachineAgent | undefined>;
/**
* Secure Encrypted Virtualization (SEV) features by AMD CPUs.
*/
readonly amdSev: pulumi.Output<outputs.VM.VirtualMachineAmdSev | undefined>;
/**
* An audio device.
*/
readonly audioDevice: pulumi.Output<outputs.VM.VirtualMachineAudioDevice | undefined>;
/**
* The BIOS implementation (defaults to `seabios`).
*/
readonly bios: pulumi.Output<string | undefined>;
/**
* Specify a list of devices to boot from in the order
* they appear in the list (defaults to `[]`).
*/
readonly bootOrders: pulumi.Output<string[] | undefined>;
/**
* The CD-ROM configuration.
*/
readonly cdrom: pulumi.Output<outputs.VM.VirtualMachineCdrom | undefined>;
/**
* The cloning configuration.
*/
readonly clone: pulumi.Output<outputs.VM.VirtualMachineClone | undefined>;
/**
* The CPU configuration.
*/
readonly cpu: pulumi.Output<outputs.VM.VirtualMachineCpu | undefined>;
/**
* The description.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* A disk (multiple blocks supported).
*/
readonly disks: pulumi.Output<outputs.VM.VirtualMachineDisk[] | undefined>;
/**
* The efi disk device (required if `bios` is set
* to `ovmf`)
*/
readonly efiDisk: pulumi.Output<outputs.VM.VirtualMachineEfiDisk | undefined>;
/**
* The identifier for a file containing a hook script (needs to be executable, e.g. by using the `proxmox_virtual_environment_file.file_mode` attribute).
*/
readonly hookScriptFileId: pulumi.Output<string | undefined>;
/**
* A host PCI device mapping (multiple blocks supported).
*/
readonly hostpcis: pulumi.Output<outputs.VM.VirtualMachineHostpci[] | undefined>;
/**
* The cloud-init configuration.
*/
readonly initialization: pulumi.Output<outputs.VM.VirtualMachineInitialization | undefined>;
/**
* The IPv4 addresses per network interface published by the
* QEMU agent (empty list when `agent.enabled` is `false`)
*/
readonly ipv4Addresses: pulumi.Output<string[][]>;
/**
* The IPv6 addresses per network interface published by the
* QEMU agent (empty list when `agent.enabled` is `false`)
*/
readonly ipv6Addresses: pulumi.Output<string[][]>;
/**
* The keyboard layout (defaults to `en-us`).
*/
readonly keyboardLayout: pulumi.Output<string | undefined>;
/**
* Arbitrary arguments passed to kvm.
*/
readonly kvmArguments: pulumi.Output<string | undefined>;
/**
* The MAC addresses published by the QEMU agent with fallback
* to the network device configuration, if the agent is disabled
*/
readonly macAddresses: pulumi.Output<string[]>;
/**
* The VM machine type (defaults to `pc`).
*/
readonly machine: pulumi.Output<string | undefined>;
/**
* The memory configuration.
*/
readonly memory: pulumi.Output<outputs.VM.VirtualMachineMemory | undefined>;
/**
* Migrate the VM on node change instead of re-creating
* it (defaults to `false`).
*/
readonly migrate: pulumi.Output<boolean | undefined>;
/**
* The virtual machine name.
*/
readonly name: pulumi.Output<string>;
/**
* A network device (multiple blocks supported).
*/
readonly networkDevices: pulumi.Output<outputs.VM.VirtualMachineNetworkDevice[]>;
/**
* The network interface names published by the QEMU
* agent (empty list when `agent.enabled` is `false`)
*/
readonly networkInterfaceNames: pulumi.Output<string[]>;
/**
* The name of the node to assign the virtual machine
* to.
*/
readonly nodeName: pulumi.Output<string>;
/**
* The NUMA configuration.
*/
readonly numas: pulumi.Output<outputs.VM.VirtualMachineNuma[] | undefined>;
/**
* Specifies whether a VM will be started during system
* boot. (defaults to `true`)
*/
readonly onBoot: pulumi.Output<boolean | undefined>;
/**
* The Operating System configuration.
*/
readonly operatingSystem: pulumi.Output<outputs.VM.VirtualMachineOperatingSystem | undefined>;
/**
* The identifier for a pool to assign the virtual machine to.
*/
readonly poolId: pulumi.Output<string | undefined>;
/**
* Sets the protection flag of the VM. This will disable the remove VM and remove disk operations (defaults to `false`).
*/
readonly protection: pulumi.Output<boolean | undefined>;
/**
* Reboot the VM after initial creation (defaults to `false`).
*/
readonly reboot: pulumi.Output<boolean | undefined>;
/**
* Reboot the VM after update if needed (defaults to `true`).
*/
readonly rebootAfterUpdate: pulumi.Output<boolean | undefined>;
/**
* The random number generator configuration. Can only be set by `root@pam.`
*/
readonly rngs: pulumi.Output<outputs.VM.VirtualMachineRng[] | undefined>;
/**
* The SCSI hardware type (defaults to
* `virtio-scsi-pci`).
*/
readonly scsiHardware: pulumi.Output<string | undefined>;
/**
* A serial device (multiple blocks supported).
*/
readonly serialDevices: pulumi.Output<outputs.VM.VirtualMachineSerialDevice[] | undefined>;
/**
* The SMBIOS (type1) settings for the VM.
*/
readonly smbios: pulumi.Output<outputs.VM.VirtualMachineSmbios | undefined>;
/**
* Whether to start the virtual machine (defaults
* to `true`).
*/
readonly started: pulumi.Output<boolean | undefined>;
/**
* Defines startup and shutdown behavior of the VM.
*/
readonly startup: pulumi.Output<outputs.VM.VirtualMachineStartup | undefined>;
/**
* Whether to stop rather than shutdown on VM destroy (defaults to `false`)
*/
readonly stopOnDestroy: pulumi.Output<boolean | undefined>;
/**
* Whether to enable the USB tablet device (defaults
* to `true`).
*/
readonly tabletDevice: pulumi.Output<boolean | undefined>;
/**
* A list of tags of the VM. This is only meta information (
* defaults to `[]`). Note: Proxmox always sorts the VM tags. If the list in
* template is not sorted, then Proxmox will always report a difference on the
* resource. You may use the `ignoreChanges` lifecycle meta-argument to ignore
* changes to this attribute.
*/
readonly tags: pulumi.Output<string[] | undefined>;
/**
* Whether to create a template (defaults to `false`).
*/
readonly template: pulumi.Output<boolean | undefined>;
/**
* Timeout for cloning a VM in seconds (defaults to
* 1800).
*/
readonly timeoutClone: pulumi.Output<number | undefined>;
/**
* Timeout for creating a VM in seconds (defaults to
* 1800).
*/
readonly timeoutCreate: pulumi.Output<number | undefined>;
/**
* Timeout for migrating the VM (defaults to
* 1800).
*/
readonly timeoutMigrate: pulumi.Output<number | undefined>;
/**
* MoveDisk timeout
*
* @deprecated This field is deprecated and will be removed in a future release. An overall operation timeout (timeout_create / timeoutClone / timeout_migrate) is used instead.
*/
readonly timeoutMoveDisk: pulumi.Output<number | undefined>;
/**
* Timeout for rebooting a VM in seconds (defaults
* to 1800).
*/
readonly timeoutReboot: pulumi.Output<number | undefined>;
/**
* Timeout for shutting down a VM in seconds (
* defaults to 1800).
*/
readonly timeoutShutdownVm: pulumi.Output<number | undefined>;
/**
* Timeout for starting a VM in seconds (defaults
* to 1800).
*/
readonly timeoutStartVm: pulumi.Output<number | undefined>;
/**
* Timeout for stopping a VM in seconds (defaults
* to 300).
*/
readonly timeoutStopVm: pulumi.Output<number | undefined>;
/**
* The TPM state device.
*/
readonly tpmState: pulumi.Output<outputs.VM.VirtualMachineTpmState | undefined>;
/**
* A host USB device mapping (multiple blocks supported).
*/
readonly usbs: pulumi.Output<outputs.VM.VirtualMachineUsb[] | undefined>;
/**
* The VGA configuration.
*/
readonly vga: pulumi.Output<outputs.VM.VirtualMachineVga>;
/**
* Virtiofs share
*/
readonly virtiofs: pulumi.Output<outputs.VM.VirtualMachineVirtiof[] | undefined>;
/**
* The VM identifier.
*/
readonly vmId: pulumi.Output<number>;
/**
* The watchdog configuration. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified).
*/
readonly watchdog: pulumi.Output<outputs.VM.VirtualMachineWatchdog | undefined>;
/**
* 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 {
/**
* Whether to enable ACPI (defaults to `true`).
*/
acpi?: pulumi.Input<boolean>;
/**
* The QEMU agent configuration.
*/
agent?: pulumi.Input<inputs.VM.VirtualMachineAgent>;
/**
* Secure Encrypted Virtualization (SEV) features by AMD CPUs.
*/
amdSev?: pulumi.Input<inputs.VM.VirtualMachineAmdSev>;
/**
* An audio device.
*/
audioDevice?: pulumi.Input<inputs.VM.VirtualMachineAudioDevice>;
/**
* The BIOS implementation (defaults to `seabios`).
*/
bios?: pulumi.Input<string>;
/**
* Specify a list of devices to boot from in the order
* they appear in the list (defaults to `[]`).
*/
bootOrders?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The CD-ROM configuration.
*/
cdrom?: pulumi.Input<inputs.VM.VirtualMachineCdrom>;
/**
* The cloning configuration.
*/
clone?: pulumi.Input<inputs.VM.VirtualMachineClone>;
/**
* The CPU configuration.
*/
cpu?: pulumi.Input<inputs.VM.VirtualMachineCpu>;
/**
* The description.
*/
description?: pulumi.Input<string>;
/**
* A disk (multiple blocks supported).
*/
disks?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineDisk>[]>;
/**
* The efi disk device (required if `bios` is set
* to `ovmf`)
*/
efiDisk?: pulumi.Input<inputs.VM.VirtualMachineEfiDisk>;
/**
* The identifier for a file containing a hook script (needs to be executable, e.g. by using the `proxmox_virtual_environment_file.file_mode` attribute).
*/
hookScriptFileId?: pulumi.Input<string>;
/**
* A host PCI device mapping (multiple blocks supported).
*/
hostpcis?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineHostpci>[]>;
/**
* The cloud-init configuration.
*/
initialization?: pulumi.Input<inputs.VM.VirtualMachineInitialization>;
/**
* The IPv4 addresses per network interface published by the
* QEMU agent (empty list when `agent.enabled` is `false`)
*/
ipv4Addresses?: pulumi.Input<pulumi.Input<pulumi.Input<string>[]>[]>;
/**
* The IPv6 addresses per network interface published by the
* QEMU agent (empty list when `agent.enabled` is `false`)
*/
ipv6Addresses?: pulumi.Input<pulumi.Input<pulumi.Input<string>[]>[]>;
/**
* The keyboard layout (defaults to `en-us`).
*/
keyboardLayout?: pulumi.Input<string>;
/**
* Arbitrary arguments passed to kvm.
*/
kvmArguments?: pulumi.Input<string>;
/**
* The MAC addresses published by the QEMU agent with fallback
* to the network device configuration, if the agent is disabled
*/
macAddresses?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The VM machine type (defaults to `pc`).
*/
machine?: pulumi.Input<string>;
/**
* The memory configuration.
*/
memory?: pulumi.Input<inputs.VM.VirtualMachineMemory>;
/**
* Migrate the VM on node change instead of re-creating
* it (defaults to `false`).
*/
migrate?: pulumi.Input<boolean>;
/**
* The virtual machine name.
*/
name?: pulumi.Input<string>;
/**
* A network device (multiple blocks supported).
*/
networkDevices?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineNetworkDevice>[]>;
/**
* The network interface names published by the QEMU
* agent (empty list when `agent.enabled` is `false`)
*/
networkInterfaceNames?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The name of the node to assign the virtual machine
* to.
*/
nodeName?: pulumi.Input<string>;
/**
* The NUMA configuration.
*/
numas?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineNuma>[]>;
/**
* Specifies whether a VM will be started during system
* boot. (defaults to `true`)
*/
onBoot?: pulumi.Input<boolean>;
/**
* The Operating System configuration.
*/
operatingSystem?: pulumi.Input<inputs.VM.VirtualMachineOperatingSystem>;
/**
* The identifier for a pool to assign the virtual machine to.
*/
poolId?: pulumi.Input<string>;
/**
* Sets the protection flag of the VM. This will disable the remove VM and remove disk operations (defaults to `false`).
*/
protection?: pulumi.Input<boolean>;
/**
* Reboot the VM after initial creation (defaults to `false`).
*/
reboot?: pulumi.Input<boolean>;
/**
* Reboot the VM after update if needed (defaults to `true`).
*/
rebootAfterUpdate?: pulumi.Input<boolean>;
/**
* The random number generator configuration. Can only be set by `root@pam.`
*/
rngs?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineRng>[]>;
/**
* The SCSI hardware type (defaults to
* `virtio-scsi-pci`).
*/
scsiHardware?: pulumi.Input<string>;
/**
* A serial device (multiple blocks supported).
*/
serialDevices?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineSerialDevice>[]>;
/**
* The SMBIOS (type1) settings for the VM.
*/
smbios?: pulumi.Input<inputs.VM.VirtualMachineSmbios>;
/**
* Whether to start the virtual machine (defaults
* to `true`).
*/
started?: pulumi.Input<boolean>;
/**
* Defines startup and shutdown behavior of the VM.
*/
startup?: pulumi.Input<inputs.VM.VirtualMachineStartup>;
/**
* Whether to stop rather than shutdown on VM destroy (defaults to `false`)
*/
stopOnDestroy?: pulumi.Input<boolean>;
/**
* Whether to enable the USB tablet device (defaults
* to `true`).
*/
tabletDevice?: pulumi.Input<boolean>;
/**
* A list of tags of the VM. This is only meta information (
* defaults to `[]`). Note: Proxmox always sorts the VM tags. If the list in
* template is not sorted, then Proxmox will always report a difference on the
* resource. You may use the `ignoreChanges` lifecycle meta-argument to ignore
* changes to this attribute.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Whether to create a template (defaults to `false`).
*/
template?: pulumi.Input<boolean>;
/**
* Timeout for cloning a VM in seconds (defaults to
* 1800).
*/
timeoutClone?: pulumi.Input<number>;
/**
* Timeout for creating a VM in seconds (defaults to
* 1800).
*/
timeoutCreate?: pulumi.Input<number>;
/**
* Timeout for migrating the VM (defaults to
* 1800).
*/
timeoutMigrate?: pulumi.Input<number>;
/**
* MoveDisk timeout
*
* @deprecated This field is deprecated and will be removed in a future release. An overall operation timeout (timeout_create / timeoutClone / timeout_migrate) is used instead.
*/
timeoutMoveDisk?: pulumi.Input<number>;
/**
* Timeout for rebooting a VM in seconds (defaults
* to 1800).
*/
timeoutReboot?: pulumi.Input<number>;
/**
* Timeout for shutting down a VM in seconds (
* defaults to 1800).
*/
timeoutShutdownVm?: pulumi.Input<number>;
/**
* Timeout for starting a VM in seconds (defaults
* to 1800).
*/
timeoutStartVm?: pulumi.Input<number>;
/**
* Timeout for stopping a VM in seconds (defaults
* to 300).
*/
timeoutStopVm?: pulumi.Input<number>;
/**
* The TPM state device.
*/
tpmState?: pulumi.Input<inputs.VM.VirtualMachineTpmState>;
/**
* A host USB device mapping (multiple blocks supported).
*/
usbs?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineUsb>[]>;
/**
* The VGA configuration.
*/
vga?: pulumi.Input<inputs.VM.VirtualMachineVga>;
/**
* Virtiofs share
*/
virtiofs?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineVirtiof>[]>;
/**
* The VM identifier.
*/
vmId?: pulumi.Input<number>;
/**
* The watchdog configuration. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified).
*/
watchdog?: pulumi.Input<inputs.VM.VirtualMachineWatchdog>;
}
/**
* The set of arguments for constructing a VirtualMachine resource.
*/
export interface VirtualMachineArgs {
/**
* Whether to enable ACPI (defaults to `true`).
*/
acpi?: pulumi.Input<boolean>;
/**
* The QEMU agent configuration.
*/
agent?: pulumi.Input<inputs.VM.VirtualMachineAgent>;
/**
* Secure Encrypted Virtualization (SEV) features by AMD CPUs.
*/
amdSev?: pulumi.Input<inputs.VM.VirtualMachineAmdSev>;
/**
* An audio device.
*/
audioDevice?: pulumi.Input<inputs.VM.VirtualMachineAudioDevice>;
/**
* The BIOS implementation (defaults to `seabios`).
*/
bios?: pulumi.Input<string>;
/**
* Specify a list of devices to boot from in the order
* they appear in the list (defaults to `[]`).
*/
bootOrders?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The CD-ROM configuration.
*/
cdrom?: pulumi.Input<inputs.VM.VirtualMachineCdrom>;
/**
* The cloning configuration.
*/
clone?: pulumi.Input<inputs.VM.VirtualMachineClone>;
/**
* The CPU configuration.
*/
cpu?: pulumi.Input<inputs.VM.VirtualMachineCpu>;
/**
* The description.
*/
description?: pulumi.Input<string>;
/**
* A disk (multiple blocks supported).
*/
disks?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineDisk>[]>;
/**
* The efi disk device (required if `bios` is set
* to `ovmf`)
*/
efiDisk?: pulumi.Input<inputs.VM.VirtualMachineEfiDisk>;
/**
* The identifier for a file containing a hook script (needs to be executable, e.g. by using the `proxmox_virtual_environment_file.file_mode` attribute).
*/
hookScriptFileId?: pulumi.Input<string>;
/**
* A host PCI device mapping (multiple blocks supported).
*/
hostpcis?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineHostpci>[]>;
/**
* The cloud-init configuration.
*/
initialization?: pulumi.Input<inputs.VM.VirtualMachineInitialization>;
/**
* The keyboard layout (defaults to `en-us`).
*/
keyboardLayout?: pulumi.Input<string>;
/**
* Arbitrary arguments passed to kvm.
*/
kvmArguments?: pulumi.Input<string>;
/**
* The MAC addresses published by the QEMU agent with fallback
* to the network device configuration, if the agent is disabled
*/
macAddresses?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The VM machine type (defaults to `pc`).
*/
machine?: pulumi.Input<string>;
/**
* The memory configuration.
*/
memory?: pulumi.Input<inputs.VM.VirtualMachineMemory>;
/**
* Migrate the VM on node change instead of re-creating
* it (defaults to `false`).
*/
migrate?: pulumi.Input<boolean>;
/**
* The virtual machine name.
*/
name?: pulumi.Input<string>;
/**
* A network device (multiple blocks supported).
*/
networkDevices?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineNetworkDevice>[]>;
/**
* The name of the node to assign the virtual machine
* to.
*/
nodeName: pulumi.Input<string>;
/**
* The NUMA configuration.
*/
numas?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineNuma>[]>;
/**
* Specifies whether a VM will be started during system
* boot. (defaults to `true`)
*/
onBoot?: pulumi.Input<boolean>;
/**
* The Operating System configuration.
*/
operatingSystem?: pulumi.Input<inputs.VM.VirtualMachineOperatingSystem>;
/**
* The identifier for a pool to assign the virtual machine to.
*/
poolId?: pulumi.Input<string>;
/**
* Sets the protection flag of the VM. This will disable the remove VM and remove disk operations (defaults to `false`).
*/
protection?: pulumi.Input<boolean>;
/**
* Reboot the VM after initial creation (defaults to `false`).
*/
reboot?: pulumi.Input<boolean>;
/**
* Reboot the VM after update if needed (defaults to `true`).
*/
rebootAfterUpdate?: pulumi.Input<boolean>;
/**
* The random number generator configuration. Can only be set by `root@pam.`
*/
rngs?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineRng>[]>;
/**
* The SCSI hardware type (defaults to
* `virtio-scsi-pci`).
*/
scsiHardware?: pulumi.Input<string>;
/**
* A serial device (multiple blocks supported).
*/
serialDevices?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineSerialDevice>[]>;
/**
* The SMBIOS (type1) settings for the VM.
*/
smbios?: pulumi.Input<inputs.VM.VirtualMachineSmbios>;
/**
* Whether to start the virtual machine (defaults
* to `true`).
*/
started?: pulumi.Input<boolean>;
/**
* Defines startup and shutdown behavior of the VM.
*/
startup?: pulumi.Input<inputs.VM.VirtualMachineStartup>;
/**
* Whether to stop rather than shutdown on VM destroy (defaults to `false`)
*/
stopOnDestroy?: pulumi.Input<boolean>;
/**
* Whether to enable the USB tablet device (defaults
* to `true`).
*/
tabletDevice?: pulumi.Input<boolean>;
/**
* A list of tags of the VM. This is only meta information (
* defaults to `[]`). Note: Proxmox always sorts the VM tags. If the list in
* template is not sorted, then Proxmox will always report a difference on the
* resource. You may use the `ignoreChanges` lifecycle meta-argument to ignore
* changes to this attribute.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Whether to create a template (defaults to `false`).
*/
template?: pulumi.Input<boolean>;
/**
* Timeout for cloning a VM in seconds (defaults to
* 1800).
*/
timeoutClone?: pulumi.Input<number>;
/**
* Timeout for creating a VM in seconds (defaults to
* 1800).
*/
timeoutCreate?: pulumi.Input<number>;
/**
* Timeout for migrating the VM (defaults to
* 1800).
*/
timeoutMigrate?: pulumi.Input<number>;
/**
* MoveDisk timeout
*
* @deprecated This field is deprecated and will be removed in a future release. An overall operation timeout (timeout_create / timeoutClone / timeout_migrate) is used instead.
*/
timeoutMoveDisk?: pulumi.Input<number>;
/**
* Timeout for rebooting a VM in seconds (defaults
* to 1800).
*/
timeoutReboot?: pulumi.Input<number>;
/**
* Timeout for shutting down a VM in seconds (
* defaults to 1800).
*/
timeoutShutdownVm?: pulumi.Input<number>;
/**
* Timeout for starting a VM in seconds (defaults
* to 1800).
*/
timeoutStartVm?: pulumi.Input<number>;
/**
* Timeout for stopping a VM in seconds (defaults
* to 300).
*/
timeoutStopVm?: pulumi.Input<number>;
/**
* The TPM state device.
*/
tpmState?: pulumi.Input<inputs.VM.VirtualMachineTpmState>;
/**
* A host USB device mapping (multiple blocks supported).
*/
usbs?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineUsb>[]>;
/**
* The VGA configuration.
*/
vga?: pulumi.Input<inputs.VM.VirtualMachineVga>;
/**
* Virtiofs share
*/
virtiofs?: pulumi.Input<pulumi.Input<inputs.VM.VirtualMachineVirtiof>[]>;
/**
* The VM identifier.
*/
vmId?: pulumi.Input<number>;
/**
* The watchdog configuration. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified).
*/
watchdog?: pulumi.Input<inputs.VM.VirtualMachineWatchdog>;
}