UNPKG

@muhlba91/pulumi-proxmoxve

Version:

A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.

859 lines (858 loc) 29.7 kB
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>; }