import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; export interface ContainerLegacyClone { /** * The identifier for the target datastore. */ datastoreId?: pulumi.Input; /** * When cloning, create a full copy of all disks. Set * to `false` to create a linked clone. Linked clones require the source * container to be a template on storage that supports copy-on-write * (e.g. Ceph RBD) (defaults to `true`). */ full?: pulumi.Input; /** * The name of the source node (leave blank, if * equal to the `nodeName` argument). */ nodeName?: pulumi.Input; /** * The identifier for the source container. */ vmId: pulumi.Input; } export interface ContainerLegacyConsole { /** * Whether to enable the console device (defaults * to `true`). */ enabled?: pulumi.Input; /** * The number of available TTY (defaults to `2`). */ ttyCount?: pulumi.Input; /** * The console mode (defaults to `tty`). */ type?: pulumi.Input; } export interface ContainerLegacyCpu { /** * The CPU architecture (defaults to `amd64`). */ architecture?: pulumi.Input; /** * The number of CPU cores (defaults to `1`). */ cores?: pulumi.Input; /** * Limit of CPU usage. Value `0` indicates no limit (defaults to `0`). */ limit?: pulumi.Input; /** * The CPU units (defaults to `1024`). */ units?: pulumi.Input; } export interface ContainerLegacyDevicePassthrough { /** * Deny the container to write to the device (defaults to `false`). */ denyWrite?: pulumi.Input; /** * Group ID to be assigned to the device node. */ gid?: pulumi.Input; /** * Access mode to be set on the device node. Must be a * 4-digit octal number. */ mode?: pulumi.Input; /** * Device to pass through to the container (e.g. `/dev/sda`). */ path: pulumi.Input; /** * User ID to be assigned to the device node. */ uid?: pulumi.Input; } export interface ContainerLegacyDisk { /** * Explicitly enable or disable ACL support */ acl?: pulumi.Input; /** * The Proxmox storage ID where the rootfs * volume is created (defaults to `local`). */ datastoreId?: pulumi.Input; /** * List of extra mount options. */ mountOptions?: pulumi.Input[] | undefined>; /** * The in-datastore path to the disk image. * Use this attribute for cross-resource references. */ pathInDatastore?: pulumi.Input; /** * Enable user quotas for the container rootfs */ quota?: pulumi.Input; /** * Will include this volume to a storage replica job */ replicate?: pulumi.Input; /** * The size of the root filesystem in gigabytes (defaults * to `4`). When set to 0 a directory or zfs/btrfs subvolume will be created. * Requires `datastoreId` to be set. */ size?: pulumi.Input; } export interface ContainerLegacyFeatures { /** * Whether the container supports FUSE mounts (defaults to `false`) */ fuse?: pulumi.Input; /** * Whether the container supports `keyctl()` system call (defaults to `false`) */ keyctl?: pulumi.Input; /** * Whether the container supports `mknod()` system call (defaults to `false`) */ mknod?: pulumi.Input; /** * List of allowed mount types (`cifs` or `nfs`) */ mounts?: pulumi.Input[] | undefined>; /** * Whether the container is nested (defaults to `false`) */ nesting?: pulumi.Input; } export interface ContainerLegacyIdmap { /** * Starting ID in the container namespace. */ containerId: pulumi.Input; /** * Starting ID in the host namespace. */ hostId: pulumi.Input; /** * Number of IDs to map (must be at least `1`). */ size: pulumi.Input; /** * Mapping type (`uid` or `gid`). */ type: pulumi.Input; } export interface ContainerLegacyInitialization { /** * The DNS configuration. */ dns?: pulumi.Input; /** * Command to run as init, optionally with arguments. It may start with an absolute path, relative path, or a binary in `$PATH`. */ entrypoint?: pulumi.Input; /** * The hostname. Must be a valid DNS name. */ hostname?: pulumi.Input; /** * The IP configuration (one block per network * device). */ ipConfigs?: pulumi.Input[] | undefined>; /** * The user account configuration. */ userAccount?: pulumi.Input; } export interface ContainerLegacyInitializationDns { /** * The DNS search domain. */ domain?: pulumi.Input; /** * The DNS server. * The `server` attribute is deprecated and will be removed in a future release. Please use * the `servers` attribute instead. * * @deprecated The `server` attribute is deprecated and will be removed in a future release. Please use the `servers` attribute instead. */ server?: pulumi.Input; /** * The list of DNS servers. */ servers?: pulumi.Input[] | undefined>; } export interface ContainerLegacyInitializationIpConfig { /** * The IPv4 configuration. */ ipv4?: pulumi.Input; /** * The IPv6 configuration. */ ipv6?: pulumi.Input; } export interface ContainerLegacyInitializationIpConfigIpv4 { /** * The IPv4 address in CIDR notation * (e.g. 192.168.2.2/24). Alternatively, set this to `dhcp` for * autodiscovery. */ address?: pulumi.Input; /** * The IPv4 gateway (must be omitted * when `dhcp` is used as the address). */ gateway?: pulumi.Input; } export interface ContainerLegacyInitializationIpConfigIpv6 { /** * The IPv6 address in CIDR notation * (e.g. fd1c::7334/64). Alternatively, set this * to `dhcp` for DHCPv6, or `auto` for SLAAC. */ address?: pulumi.Input; /** * The IPv6 gateway (must be omitted * when `dhcp` or `auto` are used as the address). */ gateway?: pulumi.Input; } export interface ContainerLegacyInitializationUserAccount { /** * The SSH keys for the root account. */ keys?: pulumi.Input[] | undefined>; /** * The password for the root account. */ password?: pulumi.Input; } export interface ContainerLegacyMemory { /** * The dedicated memory in megabytes (defaults * to `512`). */ dedicated?: pulumi.Input; /** * The swap size in megabytes (defaults to `0`). */ swap?: pulumi.Input; } export interface ContainerLegacyMountPoint { /** * Explicitly enable or disable ACL support. */ acl?: pulumi.Input; /** * Whether to include the mount point in backups (only * used for volume mount points, defaults to `false`). */ backup?: pulumi.Input; /** * List of extra mount options. */ mountOptions?: pulumi.Input[] | undefined>; /** * Path to the mount point as seen from inside the * container. */ path: pulumi.Input; /** * The in-datastore path to the mount point volume. * Use this attribute for cross-resource references instead of `volume`. */ pathInDatastore?: pulumi.Input; /** * Enable user quotas inside the container (not supported * with ZFS subvolumes). */ quota?: pulumi.Input; /** * Read-only mount point. */ readOnly?: pulumi.Input; /** * Will include this volume to a storage replica job. */ replicate?: pulumi.Input; /** * Mark this non-volume mount point as available on all * nodes. */ shared?: pulumi.Input; /** * Volume size (only for volume mount points). * Can be specified with a unit suffix (e.g. `10G`). */ size?: pulumi.Input; /** * Volume reference. Accepts a Proxmox storage ID * (e.g. `local-lvm`) to allocate a new volume, a full PVE volume ID * (e.g. `local-lvm:subvol-108-disk-101`) to mount an existing volume, * or an absolute host path (e.g. `/mnt/bindmounts/shared`) to * bind-mount a host directory. */ volume: pulumi.Input; } export interface ContainerLegacyNetworkInterface { /** * The name of the network bridge (defaults * to `vmbr0`). */ bridge?: pulumi.Input; /** * Whether to enable the network device (defaults * to `true`). */ enabled?: pulumi.Input; /** * Whether this interface's firewall rules should be * used (defaults to `false`). */ firewall?: pulumi.Input; /** * Whether the host runs DHCP on this interface's * behalf (defaults to `false`). Requires Proxmox VE 9.1+. Required for * application containers that do not include a DHCP client. */ hostManaged?: pulumi.Input; /** * The MAC address. */ macAddress?: pulumi.Input; /** * Maximum transfer unit of the interface. Cannot be * larger than the bridge's MTU. */ mtu?: pulumi.Input; /** * The network interface name. */ name: pulumi.Input; /** * The rate limit in megabytes per second. */ rateLimit?: pulumi.Input; /** * The VLAN identifier. */ vlanId?: pulumi.Input; } export interface ContainerLegacyOperatingSystem { /** * The identifier for an OS template file. * The ID format is `:/`, for example `local:iso/jammy-server-cloudimg-amd64.tar.gz`. * Can be also taken from `proxmoxve.download.FileLegacy` resource, or from the output of `pvesm list `. */ templateFileId: pulumi.Input; /** * The type (defaults to `unmanaged`). */ type?: pulumi.Input; } export interface ContainerLegacyStartup { /** * A non-negative number defining the delay in * seconds before the next container is shut down. */ downDelay?: pulumi.Input; /** * A non-negative number defining the general startup * order. */ order?: pulumi.Input; /** * A non-negative number defining the delay in * seconds before the next container is started. */ upDelay?: pulumi.Input; } export interface ContainerLegacyWaitForIp { /** * Wait for at least one IPv4 address (non-loopback, non-link-local) (defaults to `false`). */ ipv4?: pulumi.Input; /** * Wait for at least one IPv6 address (non-loopback, non-link-local) (defaults to `false`). * * When `waitForIp` is not specified or both `ipv4` and `ipv6` are `false`, the provider waits for any valid global unicast address (IPv4 or IPv6). In dual-stack networks where DHCPv6 responds faster, this may result in only IPv6 addresses being available. Set `ipv4 = true` to ensure IPv4 address availability. */ ipv6?: pulumi.Input; } export interface FileLegacySourceFile { /** * Whether the source file has changed since the last run */ changed?: pulumi.Input; /** * The SHA256 checksum of the source file. */ checksum?: pulumi.Input; /** * The file name to use instead of the source file * name. Useful when the source file does not have a valid file extension, * for example when the source file is a URL referencing a `.qcow2` image. */ fileName?: pulumi.Input; /** * Whether to skip the TLS verification step for * HTTPS sources (defaults to `false`). */ insecure?: pulumi.Input; /** * The minimum required TLS version for HTTPS * sources. "Supported values: `1.0|1.1|1.2|1.3` (defaults to `1.3`). */ minTls?: pulumi.Input; /** * A path to a local file or a URL. */ path: pulumi.Input; } export interface FileLegacySourceRaw { /** * The raw data. */ data: pulumi.Input; /** * The file name. */ fileName: pulumi.Input; /** * The number of bytes to resize the file to. */ resize?: pulumi.Input; } export interface GetContainersLegacyFilter { /** * Name of the container attribute to filter on. One of [`name`, `template`, `status`, `nodeName`] */ name: string; /** * Treat values as regex patterns */ regex?: boolean; /** * List of values to pass the filter. Container's attribute should match at least one value in the list. */ values: string[]; } export interface GetContainersLegacyFilterArgs { /** * Name of the container attribute to filter on. One of [`name`, `template`, `status`, `nodeName`] */ name: pulumi.Input; /** * Treat values as regex patterns */ regex?: pulumi.Input; /** * List of values to pass the filter. Container's attribute should match at least one value in the list. */ values: pulumi.Input[]>; } export interface GetDatastoresDatastore { /** * Whether the store is active. */ active?: boolean; /** * Allowed store content types. */ contentTypes?: string[]; /** * Whether the store is enabled. */ enabled?: boolean; /** * The ID of the store. */ id: string; /** * The name of the node the store is on. */ nodeName: string; /** * Shared flag from store configuration. */ shared?: boolean; /** * Available store space in bytes. */ spaceAvailable?: number; /** * Total store space in bytes. */ spaceTotal?: number; /** * Used store space in bytes. */ spaceUsed?: number; /** * Used fraction (used/total). */ spaceUsedFraction?: number; /** * Store type. */ type: string; } export interface GetDatastoresDatastoreArgs { /** * Whether the store is active. */ active?: pulumi.Input; /** * Allowed store content types. */ contentTypes?: pulumi.Input[] | undefined>; /** * Whether the store is enabled. */ enabled?: pulumi.Input; /** * The ID of the store. */ id: pulumi.Input; /** * The name of the node the store is on. */ nodeName: pulumi.Input; /** * Shared flag from store configuration. */ shared?: pulumi.Input; /** * Available store space in bytes. */ spaceAvailable?: pulumi.Input; /** * Total store space in bytes. */ spaceTotal?: pulumi.Input; /** * Used store space in bytes. */ spaceUsed?: pulumi.Input; /** * Used fraction (used/total). */ spaceUsedFraction?: pulumi.Input; /** * Store type. */ type: pulumi.Input; } export interface GetDatastoresFilters { /** * Only list stores with the given content types. */ contentTypes?: string[]; /** * Only list stores with the given ID. */ id?: string; /** * If `target` is different to `nodeName`, then only lists shared stores which content is accessible on this node and the specified `target` node. */ target?: string; } export interface GetDatastoresFiltersArgs { /** * Only list stores with the given content types. */ contentTypes?: pulumi.Input[] | undefined>; /** * Only list stores with the given ID. */ id?: pulumi.Input; /** * If `target` is different to `nodeName`, then only lists shared stores which content is accessible on this node and the specified `target` node. */ target?: pulumi.Input; } export interface GetDatastoresLegacyDatastore { /** * Whether the store is active. */ active?: boolean; /** * Allowed store content types. */ contentTypes?: string[]; /** * Whether the store is enabled. */ enabled?: boolean; /** * The ID of the store. */ id: string; /** * The name of the node the store is on. */ nodeName: string; /** * Shared flag from store configuration. */ shared?: boolean; /** * Available store space in bytes. */ spaceAvailable?: number; /** * Total store space in bytes. */ spaceTotal?: number; /** * Used store space in bytes. */ spaceUsed?: number; /** * Used fraction (used/total). */ spaceUsedFraction?: number; /** * Store type. */ type: string; } export interface GetDatastoresLegacyDatastoreArgs { /** * Whether the store is active. */ active?: pulumi.Input; /** * Allowed store content types. */ contentTypes?: pulumi.Input[] | undefined>; /** * Whether the store is enabled. */ enabled?: pulumi.Input; /** * The ID of the store. */ id: pulumi.Input; /** * The name of the node the store is on. */ nodeName: pulumi.Input; /** * Shared flag from store configuration. */ shared?: pulumi.Input; /** * Available store space in bytes. */ spaceAvailable?: pulumi.Input; /** * Total store space in bytes. */ spaceTotal?: pulumi.Input; /** * Used store space in bytes. */ spaceUsed?: pulumi.Input; /** * Used fraction (used/total). */ spaceUsedFraction?: pulumi.Input; /** * Store type. */ type: pulumi.Input; } export interface GetDatastoresLegacyFilters { /** * Only list stores with the given content types. */ contentTypes?: string[]; /** * Only list stores with the given ID. */ id?: string; /** * If `target` is different to `nodeName`, then only lists shared stores which content is accessible on this node and the specified `target` node. */ target?: string; } export interface GetDatastoresLegacyFiltersArgs { /** * Only list stores with the given content types. */ contentTypes?: pulumi.Input[] | undefined>; /** * Only list stores with the given ID. */ id?: pulumi.Input; /** * If `target` is different to `nodeName`, then only lists shared stores which content is accessible on this node and the specified `target` node. */ target?: pulumi.Input; } export interface GetVm2LegacyTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. */ read?: string; } export interface GetVm2LegacyTimeoutsArgs { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. */ read?: pulumi.Input; } export interface GetVmTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. */ read?: string; } export interface GetVmTimeoutsArgs { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. */ read?: pulumi.Input; } export interface GetVmsLegacyFilter { /** * Name of the VM attribute to filter on. One of [`name`, `template`, `status`, `nodeName`] */ name: string; /** * Treat values as regex patterns */ regex?: boolean; /** * List of values to pass the filter. VM's attribute should match at least one value in the list. */ values: string[]; } export interface GetVmsLegacyFilterArgs { /** * Name of the VM attribute to filter on. One of [`name`, `template`, `status`, `nodeName`] */ name: pulumi.Input; /** * Treat values as regex patterns */ regex?: pulumi.Input; /** * List of values to pass the filter. VM's attribute should match at least one value in the list. */ values: pulumi.Input[]>; } export interface GroupLegacyAcl { /** * The path. */ path: pulumi.Input; /** * Whether to propagate to child paths. */ propagate?: pulumi.Input; /** * The role identifier. */ roleId: pulumi.Input; } export interface HostsLegacyEntry { /** * The IP address. */ address: pulumi.Input; /** * The hostnames. */ hostnames: pulumi.Input[]>; } export interface PoolLegacyMember { /** * The datastore identifier. */ datastoreId?: pulumi.Input; /** * The member identifier. */ id?: pulumi.Input; /** * The node name. */ nodeName?: pulumi.Input; /** * The member type. */ type?: pulumi.Input; /** * The virtual machine identifier. */ vmId?: pulumi.Input; } export interface ProviderSsh { /** * Whether to use the SSH agent for authentication. Takes precedence over the `privateKey` and `password` fields. Defaults to the value of the `PROXMOX_VE_SSH_AGENT` environment variable, or `false` if not set. */ agent?: pulumi.Input; /** * Whether to enable SSH agent forwarding. Defaults to the value of the `PROXMOX_VE_SSH_AGENT_FORWARDING` environment variable, or `false` if not set. */ agentForwarding?: pulumi.Input; /** * The path to the SSH agent socket. Defaults to the value of the `SSH_AUTH_SOCK` environment variable. */ agentSocket?: pulumi.Input; /** * The method used to resolve node IP addresses for SSH connections. Set to `dns` to skip the Proxmox API-based resolution and use local DNS instead. DNS resolution prefers IPv4 but falls back to IPv6 if no IPv4 addresses are available. Useful in multi-subnet environments where the API may return an inaccessible IP. Defaults to `api`. */ nodeAddressSource?: pulumi.Input; /** * Overrides for SSH connection configuration for a Proxmox VE node. */ nodes?: pulumi.Input[] | undefined>; /** * The password used for the SSH connection. Defaults to the value of the `password` field of the `provider` block when using username/password authentication. Default has no effect when using API token authentication, as there is no password to inherit. Can also be sourced from `PROXMOX_VE_SSH_PASSWORD`. */ password?: pulumi.Input; /** * The unencrypted private key (in PEM format) used for the SSH connection. Defaults to the value of the `PROXMOX_VE_SSH_PRIVATE_KEY` environment variable. */ privateKey?: pulumi.Input; /** * The password for the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_PASSWORD` environment variable. */ socks5Password?: pulumi.Input; /** * The address:port of the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_SERVER` environment variable. */ socks5Server?: pulumi.Input; /** * The username for the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_USERNAME` environment variable. */ socks5Username?: pulumi.Input; /** * The username used for the SSH connection. Defaults to the value of the `username` field of the `provider` block. */ username?: pulumi.Input; } export interface ProviderSshNode { /** * The address of the Proxmox VE node. */ address: pulumi.Input; /** * The name of the Proxmox VE node. */ name: pulumi.Input; /** * The port of the Proxmox VE node. */ port?: pulumi.Input; } export interface UserLegacyAcl { /** * The path. */ path: pulumi.Input; /** * Whether to propagate to child paths. */ propagate?: pulumi.Input; /** * The role identifier. */ roleId: pulumi.Input; } export interface Vm2LegacyCdrom { /** * The file ID of the CD-ROM, or `cdrom|none`. Defaults to `cdrom` (i.e. empty CD-ROM drive — `cdrom` is PVE's literal "no media inserted" storage path). Use `none` to leave the CD-ROM unplugged, or a storage path like `local:iso/debian.iso` to insert an image. */ fileId?: pulumi.Input; } export interface Vm2LegacyCpu { /** * The CPU cores that are used to run the VM’s vCPU. The value is a list of CPU IDs, separated by commas. The CPU IDs are zero-based. For example, `0,1,2,3` (which also can be shortened to `0-3`) means that the VM’s vCPUs are run on the first four CPU cores. Setting `affinity` is only allowed for `root@pam` authenticated user. */ affinity?: pulumi.Input; /** * The CPU architecture `` (defaults to the host). Setting `architecture` is only allowed for `root@pam` authenticated user. */ architecture?: pulumi.Input; /** * The number of CPU cores per socket (PVE defaults to `1` when unset). */ cores?: pulumi.Input; /** * Set of additional CPU flags. Use `+FLAG` to enable, `-FLAG` to disable a flag. Custom CPU models can specify any flag supported by QEMU/KVM, VM-specific flags must be from the following set for security reasons: `pcid`, `spec-ctrl`, `ibpb`, `ssbd`, `virt-ssbd`, `amd-ssbd`, `amd-no-ssb`, `pdpe1gb`, `md-clear`, `hv-tlbflush`, `hv-evmcs`, `aes`. */ flags?: pulumi.Input[] | undefined>; /** * Limit of CPU usage. `0` means no limit (PVE default). */ limit?: pulumi.Input; /** * Enable NUMA topology emulation. Matches the PVE Processors → **Enable NUMA** checkbox. */ numa?: pulumi.Input; /** * The number of CPU sockets (PVE defaults to `1` when unset). */ sockets?: pulumi.Input; /** * Emulated CPU type, it's recommended to use `x86-64-v2-AES` or higher. See [the PVE admin guide](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_virtual_machines_settings) for the full list of supported types. */ type?: pulumi.Input; /** * CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs. On cgroup v2 `0` is a valid value meaning disable CPU share weighting. */ units?: pulumi.Input; /** * Number of vCPUs started with the VM, bounded by `cores * sockets`. Matches the PVE Processors → **VCPUs** field. Leave unset to start with `cores * sockets` vCPUs. Requires PVE hotplug feature enabled to change at runtime. */ vcpus?: pulumi.Input; } export interface Vm2LegacyRng { /** * Maximum bytes of entropy allowed to get injected into the guest every period. */ maxBytes?: pulumi.Input; /** * Period in milliseconds to limit entropy injection to the guest. */ period?: pulumi.Input; /** * The file on the host to gather entropy from. In most cases, `/dev/urandom` should be preferred over `/dev/random` to avoid entropy-starvation issues on the host. */ source?: pulumi.Input; } export interface Vm2LegacyTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ create?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. */ delete?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. */ read?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ update?: pulumi.Input; } export interface Vm2LegacyVga { /** * Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Currently only `vnc` is available. Migration with VNC clipboard is not supported by Proxmox. */ clipboard?: pulumi.Input; /** * The VGA memory in megabytes (4-512 MB). Has no effect with serial display. */ memory?: pulumi.Input; /** * The VGA type (defaults to `std`). */ type?: pulumi.Input; } export interface VmCdrom { /** * The file ID of the CD-ROM, or `cdrom|none`. Defaults to `cdrom` (i.e. empty CD-ROM drive — `cdrom` is PVE's literal "no media inserted" storage path). Use `none` to leave the CD-ROM unplugged, or a storage path like `local:iso/debian.iso` to insert an image. */ fileId?: pulumi.Input; } export interface VmCpu { /** * The CPU cores that are used to run the VM’s vCPU. The value is a list of CPU IDs, separated by commas. The CPU IDs are zero-based. For example, `0,1,2,3` (which also can be shortened to `0-3`) means that the VM’s vCPUs are run on the first four CPU cores. Setting `affinity` is only allowed for `root@pam` authenticated user. */ affinity?: pulumi.Input; /** * The CPU architecture `` (defaults to the host). Setting `architecture` is only allowed for `root@pam` authenticated user. */ architecture?: pulumi.Input; /** * The number of CPU cores per socket (PVE defaults to `1` when unset). */ cores?: pulumi.Input; /** * Set of additional CPU flags. Use `+FLAG` to enable, `-FLAG` to disable a flag. Custom CPU models can specify any flag supported by QEMU/KVM, VM-specific flags must be from the following set for security reasons: `pcid`, `spec-ctrl`, `ibpb`, `ssbd`, `virt-ssbd`, `amd-ssbd`, `amd-no-ssb`, `pdpe1gb`, `md-clear`, `hv-tlbflush`, `hv-evmcs`, `aes`. */ flags?: pulumi.Input[] | undefined>; /** * Limit of CPU usage. `0` means no limit (PVE default). */ limit?: pulumi.Input; /** * Enable NUMA topology emulation. Matches the PVE Processors → **Enable NUMA** checkbox. */ numa?: pulumi.Input; /** * The number of CPU sockets (PVE defaults to `1` when unset). */ sockets?: pulumi.Input; /** * Emulated CPU type, it's recommended to use `x86-64-v2-AES` or higher. See [the PVE admin guide](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_virtual_machines_settings) for the full list of supported types. */ type?: pulumi.Input; /** * CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs. On cgroup v2 `0` is a valid value meaning disable CPU share weighting. */ units?: pulumi.Input; /** * Number of vCPUs started with the VM, bounded by `cores * sockets`. Matches the PVE Processors → **VCPUs** field. Leave unset to start with `cores * sockets` vCPUs. Requires PVE hotplug feature enabled to change at runtime. */ vcpus?: pulumi.Input; } export interface VmLegacyAgent { /** * Whether to enable the QEMU agent (defaults * to `false`). */ enabled?: pulumi.Input; /** * The maximum amount of time to wait for data from * the QEMU agent to become available ( defaults to `15m`). */ timeout?: pulumi.Input; /** * Whether to enable the FSTRIM feature in the QEMU agent * (defaults to `false`). */ trim?: pulumi.Input; /** * The QEMU agent interface type (defaults to `virtio`). */ type?: pulumi.Input; /** * Configuration for waiting for specific IP address types when the VM starts. */ waitForIp?: pulumi.Input; } export interface VmLegacyAgentWaitForIp { /** * Wait for at least one IPv4 address (non-loopback, non-link-local) (defaults to `false`). */ ipv4?: pulumi.Input; /** * Wait for at least one IPv6 address (non-loopback, non-link-local) (defaults to `false`). * * When `waitForIp` is not specified or both `ipv4` and `ipv6` are `false`, the provider waits for any valid global unicast address (IPv4 or IPv6). In dual-stack networks where DHCPv6 responds faster, this may result in only IPv6 addresses being available. Set `ipv4 = true` to ensure IPv4 address availability. */ ipv6?: pulumi.Input; } export interface VmLegacyAmdSev { /** * Sets policy bit to allow Simultaneous Multi Threading (SMT) * (Ignored unless for SEV-SNP) (defaults to `true`). */ allowSmt?: pulumi.Input; /** * Add kernel hashes to guest firmware for measured linux kernel launch (defaults to `false`). */ kernelHashes?: pulumi.Input; /** * Sets policy bit to disallow debugging of guest (defaults * to `false`). */ noDebug?: pulumi.Input; /** * Sets policy bit to disallow key sharing with other guests (Ignored for SEV-SNP) (defaults to `false`). * * The `amdSev` setting is only allowed for a `root@pam` authenticated user. */ noKeySharing?: pulumi.Input; /** * Enable standard SEV with `std` or enable experimental SEV-ES with the `es` option or enable experimental SEV-SNP with the `snp` option (defaults to `std`). */ type?: pulumi.Input; } export interface VmLegacyAudioDevice { /** * The device (defaults to `intel-hda`). * - `AC97` - Intel 82801AA AC97 Audio. * - `ich9-intel-hda` - Intel HD Audio Controller (ich9). * - `intel-hda` - Intel HD Audio. */ device?: pulumi.Input; /** * The driver (defaults to `spice`). */ driver?: pulumi.Input; /** * Whether to enable the audio device (defaults * to `true`). */ enabled?: pulumi.Input; } export interface VmLegacyCdrom { /** * Whether to enable the CD-ROM drive (defaults * to `false`). *Deprecated*. The attribute will be removed in the next version of the provider. * Set `fileId` to `none` to leave the CD-ROM drive empty. * * @deprecated Remove this attribute's configuration as it is no longer used and the attribute will be removed in the next version of the provider. Set `fileId` to `none` to leave the CDROM drive empty. */ enabled?: pulumi.Input; /** * A file ID for an ISO file (defaults to `cdrom` as * in the physical drive). Use `none` to leave the CD-ROM drive empty. */ fileId?: pulumi.Input; /** * A hardware interface to connect CD-ROM drive to (defaults to `ide3`). * "Must be one of `ideN`, `sataN`, `scsiN`, where N is the index of the interface. " + * "Note that `q35` machine type only supports `ide0` and `ide2` of IDE interfaces. */ interface?: pulumi.Input; } export interface VmLegacyClone { /** * The identifier for the target datastore. */ datastoreId?: pulumi.Input; /** * Full or linked clone (defaults to `true`). */ full?: pulumi.Input; /** * The name of the source node (leave blank, if * equal to the `nodeName` argument). */ nodeName?: pulumi.Input; /** * Number of retries in Proxmox for clone vm. * Sometimes Proxmox errors with timeout when creating multiple clones at * once. */ retries?: pulumi.Input; /** * The identifier for the source VM. */ vmId: pulumi.Input; } export interface VmLegacyCpu { /** * The CPU cores that are used to run the VM’s vCPU. The * value is a list of CPU IDs, separated by commas. The CPU IDs are zero-based. * For example, `0,1,2,3` (which also can be shortened to `0-3`) means that the VM’s vCPUs are run on the first four * CPU cores. Setting `affinity` is only allowed for `root@pam` authenticated user. */ affinity?: pulumi.Input; /** * The CPU architecture (defaults to `x8664`). */ architecture?: pulumi.Input; /** * The number of CPU cores (defaults to `1`). */ cores?: pulumi.Input; /** * The CPU flags. * - `+aes`/`-aes` - Activate AES instruction set for HW acceleration. * - `+amd-no-ssb`/`-amd-no-ssb` - Notifies guest OS that host is not * vulnerable for Spectre on AMD CPUs. * - `+amd-ssbd`/`-amd-ssbd` - Improves Spectre mitigation performance with * AMD CPUs, best used with "virt-ssbd". * - `+hv-evmcs`/`-hv-evmcs` - Improve performance for nested * virtualization (only supported on Intel CPUs). * - `+hv-tlbflush`/`-hv-tlbflush` - Improve performance in overcommitted * Windows guests (may lead to guest BSOD on old CPUs). * - `+ibpb`/`-ibpb` - Allows improved Spectre mitigation on AMD CPUs. * - `+md-clear`/`-md-clear` - Required to let the guest OS know if MDS is * mitigated correctly. * - `+pcid`/`-pcid` - Meltdown fix cost reduction on Westmere, Sandy- and * Ivy Bridge Intel CPUs. * - `+pdpe1gb`/`-pdpe1gb` - Allows guest OS to use 1 GB size pages, if * host HW supports it. * - `+spec-ctrl`/`-spec-ctrl` - Allows improved Spectre mitigation with * Intel CPUs. * - `+ssbd`/`-ssbd` - Protection for "Speculative Store Bypass" for Intel * models. * - `+virt-ssbd`/`-virt-ssbd` - Basis for "Speculative Store Bypass" * protection for AMD models. */ flags?: pulumi.Input[] | undefined>; /** * The number of hotplugged vCPUs (defaults * to `0`). */ hotplugged?: pulumi.Input; /** * Limit of CPU usage, `0...128` (supports * fractional values, e.g. `63.5`). (defaults to `0` -- no limit). */ limit?: pulumi.Input; /** * Enable/disable NUMA. (default to `false`) */ numa?: pulumi.Input; /** * The number of CPU sockets (defaults to `1`). */ sockets?: pulumi.Input; /** * The emulated CPU type, it's recommended to * use `x86-64-v2-AES` (defaults to `qemu64`). */ type?: pulumi.Input; /** * The CPU units. PVE default is `1024` for cgroups v1 and `100` for cgroups v2. */ units?: pulumi.Input; } export interface VmLegacyDisk { /** * The disk AIO mode (defaults to `ioUring`). */ aio?: pulumi.Input; /** * Whether the drive should be included when making backups (defaults to `true`). */ backup?: pulumi.Input; /** * The cache type (defaults to `none`). */ cache?: pulumi.Input; /** * The identifier for the datastore to create * the disk in (defaults to `local-lvm`). */ datastoreId?: pulumi.Input; /** * Whether to pass discard/trim requests to the * underlying storage. Supported values are `on`/`ignore` (defaults * to `ignore`). */ discard?: pulumi.Input; /** * The file format. */ fileFormat?: pulumi.Input; /** * The file ID for a disk image when importing a disk into VM. The ID format is * `:/`, for example `local:iso/centos8.img`. Can be also taken from * `proxmoxve.download.FileLegacy` resource. Prefer `importFrom` for uncompressed images. * Use `fileId` when working with compressed cloud images (e.g., `.qcow2.xz`) that were downloaded * with `contentType = "iso"` and `decompressionAlgorithm` set. See the * Create a VM from a Cloud Image guide for examples. */ fileId?: pulumi.Input; /** * The file ID for a disk image to import into VM. The image must be of `import` content type * (uncompressed images only). The ID format is `:import/`, for example `local:import/centos8.qcow2`. * Can be also taken from `proxmoxve.download.FileLegacy` resource. Note: compressed images downloaded with * `decompressionAlgorithm` cannot use `importFrom`; use `fileId` instead. */ importFrom?: pulumi.Input; /** * The disk interface for Proxmox, currently `scsi`, * `sata` and `virtio` interfaces are supported. Append the disk index at * the end, for example, `virtio0` for the first virtio disk, `virtio1` for * the second, etc. */ interface: pulumi.Input; /** * Whether to use iothreads for this disk (defaults * to `false`). */ iothread?: pulumi.Input; /** * The in-datastore path to the disk image. * ***Experimental.***Use to attach another VM's disks, * or (as root only) host's filesystem paths (`datastoreId` empty string). * See "*Example: Attached disks*". */ pathInDatastore?: pulumi.Input; /** * Whether the drive should be considered for replication jobs (defaults to `true`). */ replicate?: pulumi.Input; /** * The serial number of the disk, up to 20 bytes long. */ serial?: pulumi.Input; /** * The disk size in gigabytes (defaults to `8`). */ size?: pulumi.Input; /** * The speed limits. */ speed?: pulumi.Input; /** * Whether to use an SSD emulation option for this disk ( * defaults to `false`). Note that SSD emulation is not supported on VirtIO * Block drives. */ ssd?: pulumi.Input; } export interface VmLegacyDiskSpeed { /** * The maximum read I/O in operations per second. */ iopsRead?: pulumi.Input; /** * The maximum unthrottled read I/O pool in operations per second. */ iopsReadBurstable?: pulumi.Input; /** * The maximum write I/O in operations per second. */ iopsWrite?: pulumi.Input; /** * The maximum unthrottled write I/O pool in operations per second. */ iopsWriteBurstable?: pulumi.Input; /** * The maximum read speed in megabytes per second. */ read?: pulumi.Input; /** * The maximum burstable read speed in * megabytes per second. */ readBurstable?: pulumi.Input; /** * The maximum write speed in megabytes per second. */ write?: pulumi.Input; /** * The maximum burstable write speed in * megabytes per second. */ writeBurstable?: pulumi.Input; } export interface VmLegacyEfiDisk { /** * The identifier for the datastore to create * the disk in (defaults to `local-lvm`). */ datastoreId?: pulumi.Input; /** * The file format (defaults to `raw`). */ fileFormat?: pulumi.Input; /** * Use am EFI vars template with * distribution-specific and Microsoft Standard keys enrolled, if used with * EFI type=`4m`. Ignored for VMs with cpu.architecture=`aarch64` (defaults * to `false`). */ preEnrolledKeys?: pulumi.Input; /** * Size and type of the OVMF EFI disk. `4m` is newer and * recommended, and required for Secure Boot. For backwards compatibility * use `2m`. Ignored for VMs with cpu.architecture=`aarch64` (defaults * to `2m`). */ type?: pulumi.Input; } export interface VmLegacyHostpci { /** * The PCI device name for Proxmox, in form * of `hostpciX` where `X` is a sequential number from 0 to 15. */ device: pulumi.Input; /** * The PCI device ID. This parameter is not compatible * with `apiToken` and requires the root `username` and `password` * configured in the proxmox provider. Use either this or `mapping`. */ id?: pulumi.Input; /** * The resource mapping name of the device, for * example gpu. Use either this or `id`. */ mapping?: pulumi.Input; /** * The mediated device ID to use. */ mdev?: pulumi.Input; /** * Tells Proxmox to use a PCIe or PCI port. Some * guests/device combination require PCIe rather than PCI. PCIe is only * available for q35 machine types. */ pcie?: pulumi.Input; /** * A path to a ROM file for the device to use. This * is a relative path under `/usr/share/kvm/`. */ romFile?: pulumi.Input; /** * Makes the firmware ROM visible for the VM (defaults * to `true`). */ rombar?: pulumi.Input; /** * Marks the PCI(e) device as the primary GPU of the VM. * With this enabled the `vga` configuration argument will be ignored. */ xvga?: pulumi.Input; } export interface VmLegacyInitialization { /** * The identifier for the datastore to create the * cloud-init disk in (defaults to `local-lvm`). */ datastoreId?: pulumi.Input; /** * The DNS configuration. */ dns?: pulumi.Input; /** * The file format. */ fileFormat?: pulumi.Input; /** * The hardware interface to connect the cloud-init * image to. Must be one of `ide0..3`, `sata0..5`, `scsi0..30`. Will be * detected if the setting is missing but a cloud-init image is present, * otherwise defaults to `ide2`. */ interface?: pulumi.Input; /** * The IP configuration (one block per network * device). */ ipConfigs?: pulumi.Input[] | undefined>; /** * The identifier for a file containing * all meta data passed to the VM via cloud-init. */ metaDataFileId?: pulumi.Input; /** * The identifier for a file containing * network configuration data passed to the VM via cloud-init (conflicts * with `ipConfig`). */ networkDataFileId?: pulumi.Input; /** * The cloud-init configuration format */ type?: pulumi.Input; /** * Whether to do an automatic package upgrade after * the first boot (defaults to `true`). * Setting this is only allowed for `root@pam` authenticated user. */ upgrade?: pulumi.Input; /** * The user account configuration (conflicts * with `userDataFileId`). */ userAccount?: pulumi.Input; /** * The identifier for a file containing * custom user data (conflicts with `userAccount`). */ userDataFileId?: pulumi.Input; /** * The identifier for a file containing * all vendor data passed to the VM via cloud-init. */ vendorDataFileId?: pulumi.Input; } export interface VmLegacyInitializationDns { /** * The DNS search domain. */ domain?: pulumi.Input; /** * The list of DNS servers. */ servers?: pulumi.Input[] | undefined>; } export interface VmLegacyInitializationIpConfig { /** * The IPv4 configuration. */ ipv4?: pulumi.Input; /** * The IPv6 configuration. */ ipv6?: pulumi.Input; } export interface VmLegacyInitializationIpConfigIpv4 { /** * The IPv4 address in CIDR notation * (e.g. 192.168.2.2/24). Alternatively, set this to `dhcp` for * autodiscovery. */ address?: pulumi.Input; /** * The IPv4 gateway (must be omitted * when `dhcp` is used as the address). */ gateway?: pulumi.Input; } export interface VmLegacyInitializationIpConfigIpv6 { /** * The IPv6 address in CIDR notation * (e.g. fd1c::7334/64). Alternatively, set this * to `dhcp` for DHCPv6, or `auto` for SLAAC. */ address?: pulumi.Input; /** * The IPv6 gateway (must be omitted * when `dhcp` or `auto` are used as the address). */ gateway?: pulumi.Input; } export interface VmLegacyInitializationUserAccount { /** * The SSH keys. */ keys?: pulumi.Input[] | undefined>; /** * The SSH password. */ password?: pulumi.Input; /** * The SSH username. */ username?: pulumi.Input; } export interface VmLegacyMemory { /** * The dedicated memory in megabytes (defaults to `512`). */ dedicated?: pulumi.Input; /** * The floating memory in megabytes. The default is `0`, which disables "ballooning device" for the VM. * Please note that Proxmox has ballooning enabled by default. To enable it, set `floating` to the same value as `dedicated`. * See [Proxmox documentation](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_memory) section 10.2.6 for more information. */ floating?: pulumi.Input; /** * Enable/disable hugepages memory (defaults to disable). */ hugepages?: pulumi.Input; /** * Keep hugepages memory after the VM is stopped (defaults to `false`). * * Settings `hugepages` and `keepHugepages` are only allowed for `root@pam` authenticated user. * And required `cpu.numa` to be enabled. */ keepHugepages?: pulumi.Input; /** * The shared memory in megabytes (defaults to `0`). */ shared?: pulumi.Input; } export interface VmLegacyNetworkDevice { /** * The name of the network bridge (defaults to `vmbr0`). */ bridge?: pulumi.Input; /** * Whether to disconnect the network device from the network (defaults to `false`). */ disconnected?: pulumi.Input; /** * Whether to enable the network device (defaults to `true`). Remove the `networkDevice` block from your configuration instead of setting `enabled = false`. * * @deprecated The `enabled` attribute is deprecated and will be removed in a future release. Remove the `networkDevice` block from your configuration instead of setting `enabled = false`. */ enabled?: pulumi.Input; /** * Whether this interface's firewall rules should be used (defaults to `false`). */ firewall?: pulumi.Input; /** * The MAC address. */ macAddress?: pulumi.Input; /** * The network device model (defaults to `virtio`). */ model?: pulumi.Input; /** * Force MTU, for VirtIO only. Set to 1 to use the bridge MTU. Cannot be larger than the bridge MTU. */ mtu?: pulumi.Input; /** * The number of queues for VirtIO (1..64). */ queues?: pulumi.Input; /** * The rate limit in megabytes per second. */ rateLimit?: pulumi.Input; /** * String containing a `;` separated list of VLAN trunks * ("10;20;30"). Note that the VLAN-aware feature need to be enabled on the PVE * Linux Bridge to use trunks. */ trunks?: pulumi.Input; /** * The VLAN identifier. */ vlanId?: pulumi.Input; } export interface VmLegacyNuma { /** * The CPU cores to assign to the NUMA node (format is `0-7;16-31`). */ cpus: pulumi.Input; /** * The NUMA device name for Proxmox, in form * of `numaX` where `X` is a sequential number from 0 to 7. */ device: pulumi.Input; /** * The NUMA host nodes. */ hostnodes?: pulumi.Input; /** * The memory in megabytes to assign to the NUMA node. */ memory: pulumi.Input; /** * The NUMA policy (defaults to `preferred`). */ policy?: pulumi.Input; } export interface VmLegacyOperatingSystem { /** * The type (defaults to `other`). */ type?: pulumi.Input; } export interface VmLegacyRng { /** * Maximum bytes of entropy allowed to get injected into the guest every `period` milliseconds (defaults to `1024`). Prefer a lower value when using `/dev/random` as source. */ maxBytes?: pulumi.Input; /** * Every `period` milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another `maxBytes` of entropy (defaults to `1000`). */ period?: pulumi.Input; /** * The file on the host to gather entropy from. In most cases, `/dev/urandom` should be preferred over `/dev/random` to avoid entropy-starvation issues on the host. */ source: pulumi.Input; } export interface VmLegacySerialDevice { /** * The device (defaults to `socket`). * - `/dev/*` - A host serial device. */ device?: pulumi.Input; } export interface VmLegacySmbios { /** * The family string. */ family?: pulumi.Input; /** * The manufacturer. */ manufacturer?: pulumi.Input; /** * The product ID. */ product?: pulumi.Input; /** * The serial number. */ serial?: pulumi.Input; /** * The SKU number. */ sku?: pulumi.Input; /** * The UUID (defaults to randomly generated UUID). */ uuid?: pulumi.Input; /** * The version. */ version?: pulumi.Input; } export interface VmLegacyStartup { /** * A non-negative number defining the delay in * seconds before the next VM is shut down. */ downDelay?: pulumi.Input; /** * A non-negative number defining the general startup * order. */ order?: pulumi.Input; /** * A non-negative number defining the delay in * seconds before the next VM is started. */ upDelay?: pulumi.Input; } export interface VmLegacyTpmState { /** * The identifier for the datastore to create * the disk in (defaults to `local-lvm`). */ datastoreId?: pulumi.Input; /** * TPM state device version. Can be `v1.2` or `v2.0`. * (defaults to `v2.0`). */ version?: pulumi.Input; } export interface VmLegacyUsb { /** * The Host USB device or port or the value `spice`. Use either this or `mapping`. */ host?: pulumi.Input; /** * The cluster-wide resource mapping name of the device, for example "usbdevice". Use either this or `host`. */ mapping?: pulumi.Input; /** * Makes the USB device a USB3 device for the VM * (defaults to `false`). */ usb3?: pulumi.Input; } export interface VmLegacyVga { /** * Enable VNC clipboard by setting to `vnc`. See the [Proxmox documentation](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_virtual_machines_settings) section 10.2.8 for more information. */ clipboard?: pulumi.Input; /** * The VGA memory in megabytes (defaults to `16`). */ memory?: pulumi.Input; /** * The VGA type (defaults to `std`). */ type?: pulumi.Input; } export interface VmLegacyVirtiof { /** * The caching mode */ cache?: pulumi.Input; /** * Whether to allow direct io */ directIo?: pulumi.Input; /** * Enable POSIX ACLs, implies xattr support */ exposeAcl?: pulumi.Input; /** * Enable support for extended attributes */ exposeXattr?: pulumi.Input; /** * Identifier of the directory mapping */ mapping: pulumi.Input; } export interface VmLegacyWatchdog { /** * The action to perform if after activation the guest fails to poll the watchdog in time (defaults to `none`). */ action?: pulumi.Input; /** * Whether the watchdog is enabled (defaults to `false`). */ enabled?: pulumi.Input; /** * The watchdog type to emulate (defaults to `i6300esb`). */ model?: pulumi.Input; } export interface VmRng { /** * Maximum bytes of entropy allowed to get injected into the guest every period. */ maxBytes?: pulumi.Input; /** * Period in milliseconds to limit entropy injection to the guest. */ period?: pulumi.Input; /** * The file on the host to gather entropy from. In most cases, `/dev/urandom` should be preferred over `/dev/random` to avoid entropy-starvation issues on the host. */ source?: pulumi.Input; } export interface VmTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ create?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. */ delete?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. */ read?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ update?: pulumi.Input; } export interface VmVga { /** * Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Currently only `vnc` is available. Migration with VNC clipboard is not supported by Proxmox. */ clipboard?: pulumi.Input; /** * The VGA memory in megabytes (4-512 MB). Has no effect with serial display. */ memory?: pulumi.Input; /** * The VGA type (defaults to `std`). */ type?: pulumi.Input; } export declare namespace acme { interface CertificateDomain { /** * An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records. */ alias?: pulumi.Input; /** * The domain name to include in the certificate. */ domain: pulumi.Input; /** * The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used. */ plugin?: pulumi.Input; } interface CertificateLegacyDomain { /** * An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records. */ alias?: pulumi.Input; /** * The domain name to include in the certificate. */ domain: pulumi.Input; /** * The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used. */ plugin?: pulumi.Input; } } export declare namespace backup { interface JobFleecing { /** * Whether fleecing is enabled. */ enabled?: pulumi.Input; /** * The storage identifier for fleecing. */ storage?: pulumi.Input; } interface JobPerformance { /** * Maximum number of workers for parallel backup. */ maxWorkers?: pulumi.Input; /** * Maximum number of entries for PBS catalog. */ pbsEntriesMax?: pulumi.Input; } } export declare namespace cloned { interface VmCdrom { /** * The file ID of the CD-ROM, or `cdrom|none`. Defaults to `cdrom` (i.e. empty CD-ROM drive — `cdrom` is PVE's literal "no media inserted" storage path). Use `none` to leave the CD-ROM unplugged, or a storage path like `local:iso/debian.iso` to insert an image. */ fileId?: pulumi.Input; } interface VmClone { /** * Clone bandwidth limit in MB/s. */ bandwidthLimit?: pulumi.Input; /** * Perform a full clone (true) or linked clone (false). */ full?: pulumi.Input; /** * Pool to assign the cloned VM to. */ poolId?: pulumi.Input; /** * Number of retries for clone operations. */ retries?: pulumi.Input; /** * Snapshot name to clone from. */ snapshotName?: pulumi.Input; /** * Source node of the VM/template. Defaults to target node if unset. */ sourceNodeName?: pulumi.Input; /** * Source VM/template ID to clone from. */ sourceVmId: pulumi.Input; /** * Target datastore for cloned disks. */ targetDatastore?: pulumi.Input; /** * Target disk format for clone (e.g., raw, qcow2). */ targetFormat?: pulumi.Input; } interface VmCpu { /** * The CPU cores that are used to run the VM’s vCPU. The value is a list of CPU IDs, separated by commas. The CPU IDs are zero-based. For example, `0,1,2,3` (which also can be shortened to `0-3`) means that the VM’s vCPUs are run on the first four CPU cores. Setting `affinity` is only allowed for `root@pam` authenticated user. */ affinity?: pulumi.Input; /** * The CPU architecture `` (defaults to the host). Setting `architecture` is only allowed for `root@pam` authenticated user. */ architecture?: pulumi.Input; /** * The number of CPU cores per socket (PVE defaults to `1` when unset). */ cores?: pulumi.Input; /** * Set of additional CPU flags. Use `+FLAG` to enable, `-FLAG` to disable a flag. Custom CPU models can specify any flag supported by QEMU/KVM, VM-specific flags must be from the following set for security reasons: `pcid`, `spec-ctrl`, `ibpb`, `ssbd`, `virt-ssbd`, `amd-ssbd`, `amd-no-ssb`, `pdpe1gb`, `md-clear`, `hv-tlbflush`, `hv-evmcs`, `aes`. */ flags?: pulumi.Input[] | undefined>; /** * Limit of CPU usage. `0` means no limit (PVE default). */ limit?: pulumi.Input; /** * Enable NUMA topology emulation. Matches the PVE Processors → **Enable NUMA** checkbox. */ numa?: pulumi.Input; /** * The number of CPU sockets (PVE defaults to `1` when unset). */ sockets?: pulumi.Input; /** * Emulated CPU type, it's recommended to use `x86-64-v2-AES` or higher. See [the PVE admin guide](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_virtual_machines_settings) for the full list of supported types. */ type?: pulumi.Input; /** * CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs. On cgroup v2 `0` is a valid value meaning disable CPU share weighting. */ units?: pulumi.Input; /** * Number of vCPUs started with the VM, bounded by `cores * sockets`. Matches the PVE Processors → **VCPUs** field. Leave unset to start with `cores * sockets` vCPUs. Requires PVE hotplug feature enabled to change at runtime. */ vcpus?: pulumi.Input; } interface VmDelete { /** * Disk slots to delete (e.g., scsi2). */ disks?: pulumi.Input[] | undefined>; /** * Network slots to delete (e.g., net1). */ networks?: pulumi.Input[] | undefined>; } interface VmDisk { /** * AIO mode (io_uring, native, threads). */ aio?: pulumi.Input; /** * Include disk in backups. */ backup?: pulumi.Input; /** * Cache mode. */ cache?: pulumi.Input; /** * Target datastore for new disks when file is not provided. */ datastoreId?: pulumi.Input; /** * Discard/trim behavior. */ discard?: pulumi.Input; /** * Existing volume reference (e.g., local-lvm:vm-100-disk-0). */ file?: pulumi.Input; /** * Disk format (raw, qcow2, vmdk). */ format?: pulumi.Input; /** * Import source volume/file id. */ importFrom?: pulumi.Input; /** * Use IO thread. */ iothread?: pulumi.Input; /** * Disk media (e.g., disk, cdrom). */ media?: pulumi.Input; /** * Consider disk for replication. */ replicate?: pulumi.Input; /** * Disk serial number. */ serial?: pulumi.Input; /** * Disk size (GiB) when creating new disks. **Note:** Disk shrinking is not supported. Attempting to set `sizeGb` to a value smaller than the current disk size will result in an error. Only disk expansion is allowed. */ sizeGb?: pulumi.Input; /** * Mark disk as SSD. */ ssd?: pulumi.Input; } interface VmLegacyCdrom { /** * The file ID of the CD-ROM, or `cdrom|none`. Defaults to `cdrom` (i.e. empty CD-ROM drive — `cdrom` is PVE's literal "no media inserted" storage path). Use `none` to leave the CD-ROM unplugged, or a storage path like `local:iso/debian.iso` to insert an image. */ fileId?: pulumi.Input; } interface VmLegacyClone { /** * Clone bandwidth limit in MB/s. */ bandwidthLimit?: pulumi.Input; /** * Perform a full clone (true) or linked clone (false). */ full?: pulumi.Input; /** * Pool to assign the cloned VM to. */ poolId?: pulumi.Input; /** * Number of retries for clone operations. */ retries?: pulumi.Input; /** * Snapshot name to clone from. */ snapshotName?: pulumi.Input; /** * Source node of the VM/template. Defaults to target node if unset. */ sourceNodeName?: pulumi.Input; /** * Source VM/template ID to clone from. */ sourceVmId: pulumi.Input; /** * Target datastore for cloned disks. */ targetDatastore?: pulumi.Input; /** * Target disk format for clone (e.g., raw, qcow2). */ targetFormat?: pulumi.Input; } interface VmLegacyCpu { /** * The CPU cores that are used to run the VM’s vCPU. The value is a list of CPU IDs, separated by commas. The CPU IDs are zero-based. For example, `0,1,2,3` (which also can be shortened to `0-3`) means that the VM’s vCPUs are run on the first four CPU cores. Setting `affinity` is only allowed for `root@pam` authenticated user. */ affinity?: pulumi.Input; /** * The CPU architecture `` (defaults to the host). Setting `architecture` is only allowed for `root@pam` authenticated user. */ architecture?: pulumi.Input; /** * The number of CPU cores per socket (PVE defaults to `1` when unset). */ cores?: pulumi.Input; /** * Set of additional CPU flags. Use `+FLAG` to enable, `-FLAG` to disable a flag. Custom CPU models can specify any flag supported by QEMU/KVM, VM-specific flags must be from the following set for security reasons: `pcid`, `spec-ctrl`, `ibpb`, `ssbd`, `virt-ssbd`, `amd-ssbd`, `amd-no-ssb`, `pdpe1gb`, `md-clear`, `hv-tlbflush`, `hv-evmcs`, `aes`. */ flags?: pulumi.Input[] | undefined>; /** * Limit of CPU usage. `0` means no limit (PVE default). */ limit?: pulumi.Input; /** * Enable NUMA topology emulation. Matches the PVE Processors → **Enable NUMA** checkbox. */ numa?: pulumi.Input; /** * The number of CPU sockets (PVE defaults to `1` when unset). */ sockets?: pulumi.Input; /** * Emulated CPU type, it's recommended to use `x86-64-v2-AES` or higher. See [the PVE admin guide](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_virtual_machines_settings) for the full list of supported types. */ type?: pulumi.Input; /** * CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs. On cgroup v2 `0` is a valid value meaning disable CPU share weighting. */ units?: pulumi.Input; /** * Number of vCPUs started with the VM, bounded by `cores * sockets`. Matches the PVE Processors → **VCPUs** field. Leave unset to start with `cores * sockets` vCPUs. Requires PVE hotplug feature enabled to change at runtime. */ vcpus?: pulumi.Input; } interface VmLegacyDelete { /** * Disk slots to delete (e.g., scsi2). */ disks?: pulumi.Input[] | undefined>; /** * Network slots to delete (e.g., net1). */ networks?: pulumi.Input[] | undefined>; } interface VmLegacyDisk { /** * AIO mode (io_uring, native, threads). */ aio?: pulumi.Input; /** * Include disk in backups. */ backup?: pulumi.Input; /** * Cache mode. */ cache?: pulumi.Input; /** * Target datastore for new disks when file is not provided. */ datastoreId?: pulumi.Input; /** * Discard/trim behavior. */ discard?: pulumi.Input; /** * Existing volume reference (e.g., local-lvm:vm-100-disk-0). */ file?: pulumi.Input; /** * Disk format (raw, qcow2, vmdk). */ format?: pulumi.Input; /** * Import source volume/file id. */ importFrom?: pulumi.Input; /** * Use IO thread. */ iothread?: pulumi.Input; /** * Disk media (e.g., disk, cdrom). */ media?: pulumi.Input; /** * Consider disk for replication. */ replicate?: pulumi.Input; /** * Disk serial number. */ serial?: pulumi.Input; /** * Disk size (GiB) when creating new disks. **Note:** Disk shrinking is not supported. Attempting to set `sizeGb` to a value smaller than the current disk size will result in an error. Only disk expansion is allowed. */ sizeGb?: pulumi.Input; /** * Mark disk as SSD. */ ssd?: pulumi.Input; } interface VmLegacyMemory { /** * Minimum guaranteed memory in MiB via balloon device. This is the floor amount of RAM that is always guaranteed to the VM. Setting to `0` disables the balloon driver entirely. */ balloon?: pulumi.Input; /** * Enable hugepages for VM memory allocation. Hugepages can improve performance for memory-intensive workloads by reducing TLB misses. * * **Options:** * - `2` - Use 2 MiB hugepages * - `1024` - Use 1 GiB hugepages * - `any` - Use any available hugepage size */ hugepages?: pulumi.Input; /** * Don't release hugepages when the VM shuts down. By default, hugepages are released back to the host when the VM stops. Setting this to `true` keeps them allocated for faster VM startup. */ keepHugepages?: pulumi.Input; /** * CPU scheduler priority for memory ballooning. This is used by the kernel fair scheduler. Higher values mean this VM gets more CPU time during memory ballooning operations. The value is relative to other running VMs. */ shares?: pulumi.Input; /** * Total memory available to the VM in MiB. This is the total RAM the VM can use. When ballooning is enabled (balloon > 0), memory between `balloon` and `size` can be reclaimed by the host. When ballooning is disabled (balloon = 0), this is the fixed amount of RAM allocated to the VM. Defaults to PVE's implicit `512` MiB when unset. */ size?: pulumi.Input; } interface VmLegacyNetwork { /** * Bridge name. */ bridge?: pulumi.Input; /** * Enable firewall on this interface. */ firewall?: pulumi.Input; /** * Keep link down. */ linkDown?: pulumi.Input; /** * MAC address (computed if omitted). */ macAddress?: pulumi.Input; /** * NIC model (e.g., virtio, e1000). */ model?: pulumi.Input; /** * Interface MTU. */ mtu?: pulumi.Input; /** * Number of multiqueue NIC queues. */ queues?: pulumi.Input; /** * Rate limit (MB/s). */ rateLimit?: pulumi.Input; /** * VLAN tag. */ tag?: pulumi.Input; /** * Trunk VLAN IDs. */ trunks?: pulumi.Input[] | undefined>; } interface VmLegacyRng { /** * Maximum bytes of entropy allowed to get injected into the guest every period. */ maxBytes?: pulumi.Input; /** * Period in milliseconds to limit entropy injection to the guest. */ period?: pulumi.Input; /** * The file on the host to gather entropy from. In most cases, `/dev/urandom` should be preferred over `/dev/random` to avoid entropy-starvation issues on the host. */ source?: pulumi.Input; } interface VmLegacyTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ create?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. */ delete?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. */ read?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ update?: pulumi.Input; } interface VmLegacyVga { /** * Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Currently only `vnc` is available. Migration with VNC clipboard is not supported by Proxmox. */ clipboard?: pulumi.Input; /** * The VGA memory in megabytes (4-512 MB). Has no effect with serial display. */ memory?: pulumi.Input; /** * The VGA type (defaults to `std`). */ type?: pulumi.Input; } interface VmMemory { /** * Minimum guaranteed memory in MiB via balloon device. This is the floor amount of RAM that is always guaranteed to the VM. Setting to `0` disables the balloon driver entirely. */ balloon?: pulumi.Input; /** * Enable hugepages for VM memory allocation. Hugepages can improve performance for memory-intensive workloads by reducing TLB misses. * * **Options:** * - `2` - Use 2 MiB hugepages * - `1024` - Use 1 GiB hugepages * - `any` - Use any available hugepage size */ hugepages?: pulumi.Input; /** * Don't release hugepages when the VM shuts down. By default, hugepages are released back to the host when the VM stops. Setting this to `true` keeps them allocated for faster VM startup. */ keepHugepages?: pulumi.Input; /** * CPU scheduler priority for memory ballooning. This is used by the kernel fair scheduler. Higher values mean this VM gets more CPU time during memory ballooning operations. The value is relative to other running VMs. */ shares?: pulumi.Input; /** * Total memory available to the VM in MiB. This is the total RAM the VM can use. When ballooning is enabled (balloon > 0), memory between `balloon` and `size` can be reclaimed by the host. When ballooning is disabled (balloon = 0), this is the fixed amount of RAM allocated to the VM. Defaults to PVE's implicit `512` MiB when unset. */ size?: pulumi.Input; } interface VmNetwork { /** * Bridge name. */ bridge?: pulumi.Input; /** * Enable firewall on this interface. */ firewall?: pulumi.Input; /** * Keep link down. */ linkDown?: pulumi.Input; /** * MAC address (computed if omitted). */ macAddress?: pulumi.Input; /** * NIC model (e.g., virtio, e1000). */ model?: pulumi.Input; /** * Interface MTU. */ mtu?: pulumi.Input; /** * Number of multiqueue NIC queues. */ queues?: pulumi.Input; /** * Rate limit (MB/s). */ rateLimit?: pulumi.Input; /** * VLAN tag. */ tag?: pulumi.Input; /** * Trunk VLAN IDs. */ trunks?: pulumi.Input[] | undefined>; } interface VmRng { /** * Maximum bytes of entropy allowed to get injected into the guest every period. */ maxBytes?: pulumi.Input; /** * Period in milliseconds to limit entropy injection to the guest. */ period?: pulumi.Input; /** * The file on the host to gather entropy from. In most cases, `/dev/urandom` should be preferred over `/dev/random` to avoid entropy-starvation issues on the host. */ source?: pulumi.Input; } interface VmTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ create?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. */ delete?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. */ read?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ update?: pulumi.Input; } interface VmVga { /** * Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Currently only `vnc` is available. Migration with VNC clipboard is not supported by Proxmox. */ clipboard?: pulumi.Input; /** * The VGA memory in megabytes (4-512 MB). Has no effect with serial display. */ memory?: pulumi.Input; /** * The VGA type (defaults to `std`). */ type?: pulumi.Input; } } export declare namespace cluster { interface FirewallLegacyLogRatelimit { /** * Initial burst of packages which will always get * logged before the rate is applied (defaults to `5`). */ burst?: pulumi.Input; /** * Enable or disable the log rate limit. */ enabled?: pulumi.Input; /** * Frequency with which the burst bucket gets refilled * (defaults to `1/second`). */ rate?: pulumi.Input; } interface OptionsLegacyNextId { /** * The minimum number for the next free VM ID. Must be higher or equal to 100 */ lower?: pulumi.Input; /** * The maximum number for the next free VM ID. Must be less or equal to 999999999 */ upper?: pulumi.Input; } interface OptionsLegacyNotify { /** * Cluster-wide notification settings for the HA fencing mode. Must be `always` | `never`. */ haFencingMode?: pulumi.Input; /** * Cluster-wide notification settings for the HA fencing target. */ haFencingTarget?: pulumi.Input; /** * Cluster-wide notification settings for package updates. Must be `auto` | `always` | `never`. */ packageUpdates?: pulumi.Input; /** * Cluster-wide notification settings for the package updates target. */ packageUpdatesTarget?: pulumi.Input; /** * Cluster-wide notification settings for replication. Must be `always` | `never`. */ replication?: pulumi.Input; /** * Cluster-wide notification settings for the replication target. */ replicationTarget?: pulumi.Input; } interface OptionsNextId { /** * The minimum number for the next free VM ID. Must be higher or equal to 100 */ lower?: pulumi.Input; /** * The maximum number for the next free VM ID. Must be less or equal to 999999999 */ upper?: pulumi.Input; } interface OptionsNotify { /** * Cluster-wide notification settings for the HA fencing mode. Must be `always` | `never`. */ haFencingMode?: pulumi.Input; /** * Cluster-wide notification settings for the HA fencing target. */ haFencingTarget?: pulumi.Input; /** * Cluster-wide notification settings for package updates. Must be `auto` | `always` | `never`. */ packageUpdates?: pulumi.Input; /** * Cluster-wide notification settings for the package updates target. */ packageUpdatesTarget?: pulumi.Input; /** * Cluster-wide notification settings for replication. Must be `always` | `never`. */ replication?: pulumi.Input; /** * Cluster-wide notification settings for the replication target. */ replicationTarget?: pulumi.Input; } namespace firewall { namespace security { interface GroupLegacyRule { /** * Rule action (`ACCEPT`, `DROP`, `REJECT`). */ action?: pulumi.Input; /** * Rule comment. */ comment?: pulumi.Input; /** * Restrict packet destination address. This can refer to * a single IP address, an IP set ('+ipsetname') or an IP alias * definition. You can also specify an address range like * `20.34.101.207-201.3.9.99`, or a list of IP addresses and networks * (entries are separated by comma). Please do not mix IPv4 and IPv6 * addresses inside such lists. */ dest?: pulumi.Input; /** * Restrict TCP/UDP destination port. You can use * service names or simple numbers (0-65535), as defined in '/etc/ * services'. Port ranges can be specified with '\d+:\d+', for example * `80:85`, and you can use comma separated list to match several ports or * ranges. */ dport?: pulumi.Input; /** * Enable this rule. Defaults to `true`. */ enabled?: pulumi.Input; /** * Network interface name. You have to use network * configuration key names for VMs and containers ('net\d+'). Host related * rules can use arbitrary strings. */ iface?: pulumi.Input; /** * Log level for this rule (`emerg`, `alert`, `crit`, * `err`, `warning`, `notice`, `info`, `debug`, `nolog`). */ log?: pulumi.Input; /** * Macro name. Use predefined standard macro * from */ macro?: pulumi.Input; /** * Position of the rule in the list. */ pos?: pulumi.Input; /** * Restrict packet protocol. You can use protocol names * as defined in '/etc/protocols'. */ proto?: pulumi.Input; /** * Security group name */ securityGroup?: pulumi.Input; /** * Restrict packet source address. This can refer * to a single IP address, an IP set ('+ipsetname') or an IP alias * definition. You can also specify an address range like * `20.34.101.207-201.3.9.99`, or a list of IP addresses and networks ( * entries are separated by comma). Please do not mix IPv4 and IPv6 * addresses inside such lists. */ source?: pulumi.Input; /** * Restrict TCP/UDP source port. You can use * service names or simple numbers (0-65535), as defined in '/etc/ * services'. Port ranges can be specified with '\d+:\d+', for example * `80:85`, and you can use comma separated list to match several ports or * ranges. */ sport?: pulumi.Input; /** * Rule type (`in`, `out`, `forward`). */ type?: pulumi.Input; } } } } export declare namespace config { } export declare namespace firewall { interface IpsetLegacyCidr { /** * Arbitrary string annotation. */ comment?: pulumi.Input; /** * Network/IP specification in CIDR format. */ name: pulumi.Input; /** * Entries marked as `nomatch` are skipped as if those * were not added to the set. */ nomatch?: pulumi.Input; } interface RulesLegacyRule { /** * Rule action (`ACCEPT`, `DROP`, `REJECT`). */ action?: pulumi.Input; /** * Rule comment. */ comment?: pulumi.Input; /** * Restrict packet destination address. This can * refer to a single IP address, an IP set ('+ipsetname') or an IP * alias definition. You can also specify an address range * like `20.34.101.207-201.3.9.99`, or a list of IP addresses and * networks (entries are separated by comma). Please do not mix IPv4 * and IPv6 addresses inside such lists. */ dest?: pulumi.Input; /** * Restrict TCP/UDP destination port. You can use * service names or simple numbers (0-65535), as defined * in `/etc/services`. Port ranges can be specified with '\d+:\d+', for * example `80:85`, and you can use comma separated list to match * several ports or ranges. */ dport?: pulumi.Input; /** * Enable this rule. Defaults to `true`. */ enabled?: pulumi.Input; /** * Network interface name. You have to use network * configuration key names for VMs and containers ('net\d+'). Host * related rules can use arbitrary strings. */ iface?: pulumi.Input; /** * Log level for this rule (`emerg`, `alert`, `crit`, * `err`, `warning`, `notice`, `info`, `debug`, `nolog`). */ log?: pulumi.Input; /** * Macro name. Use predefined standard macro * from */ macro?: pulumi.Input; /** * Position of the rule in the list. */ pos?: pulumi.Input; /** * Restrict packet protocol. You can use protocol * names as defined in '/etc/protocols'. */ proto?: pulumi.Input; /** * Security group name. */ securityGroup?: pulumi.Input; /** * Restrict packet source address. This can refer * to a single IP address, an IP set ('+ipsetname') or an IP alias * definition. You can also specify an address range * like `20.34.101.207-201.3.9.99`, or a list of IP addresses and * networks (entries are separated by comma). Please do not mix IPv4 * and IPv6 addresses inside such lists. */ source?: pulumi.Input; /** * Restrict TCP/UDP source port. You can use * service names or simple numbers (0-65535), as defined * in `/etc/services`. Port ranges can be specified with '\d+:\d+', for * example `80:85`, and you can use comma separated list to match * several ports or ranges. * - a security group insertion block, which includes the following arguments: */ sport?: pulumi.Input; /** * Rule type (`in`, `out`, `forward`). */ type?: pulumi.Input; } } export declare namespace hardware { interface GetPciFilters { /** * Filter by PCI class code prefix (e.g. `03` to match all display controllers). The `0x` prefix in class codes is stripped before matching. */ class?: string; /** * Filter by device ID prefix. The `0x` prefix in device IDs is stripped before matching. */ deviceId?: string; /** * Filter by PCI address prefix (e.g. `0000:01` to match all devices on bus 01). */ id?: string; /** * Filter by vendor ID prefix (e.g. `8086` for Intel devices). The `0x` prefix in vendor IDs is stripped before matching. */ vendorId?: string; } interface GetPciFiltersArgs { /** * Filter by PCI class code prefix (e.g. `03` to match all display controllers). The `0x` prefix in class codes is stripped before matching. */ class?: pulumi.Input; /** * Filter by device ID prefix. The `0x` prefix in device IDs is stripped before matching. */ deviceId?: pulumi.Input; /** * Filter by PCI address prefix (e.g. `0000:01` to match all devices on bus 01). */ id?: pulumi.Input; /** * Filter by vendor ID prefix (e.g. `8086` for Intel devices). The `0x` prefix in vendor IDs is stripped before matching. */ vendorId?: pulumi.Input; } namespace mapping { interface DirLegacyMap { /** * The node this mapping applies to. */ node: pulumi.Input; /** * The path of the map. For directory mappings the path is required and refers to the POSIX path of the directory as visible from the node. */ path: pulumi.Input; } interface DirMap { /** * The node this mapping applies to. */ node: pulumi.Input; /** * The path of the map. For directory mappings the path is required and refers to the POSIX path of the directory as visible from the node. */ path: pulumi.Input; } interface PciLegacyMap { /** * The comment of the mapped PCI device. */ comment?: pulumi.Input; /** * The ID of the map. */ id: pulumi.Input; /** * The IOMMU group of the map. While not mandatory for the Proxmox VE API call, omitting this attribute will result in an incomplete PCI hardware mapping. */ iommuGroup?: pulumi.Input; /** * The node name of the map. */ node: pulumi.Input; /** * The path of the map. */ path: pulumi.Input; /** * The subsystem ID group of the map. While not mandatory for the Proxmox VE API call, omitting this attribute will result in an incomplete PCI hardware mapping. */ subsystemId?: pulumi.Input; } interface PciMap { /** * The comment of the mapped PCI device. */ comment?: pulumi.Input; /** * The ID of the map. */ id: pulumi.Input; /** * The IOMMU group of the map. While not mandatory for the Proxmox VE API call, omitting this attribute will result in an incomplete PCI hardware mapping. */ iommuGroup?: pulumi.Input; /** * The node name of the map. */ node: pulumi.Input; /** * The path of the map. */ path: pulumi.Input; /** * The subsystem ID group of the map. While not mandatory for the Proxmox VE API call, omitting this attribute will result in an incomplete PCI hardware mapping. */ subsystemId?: pulumi.Input; } interface UsbLegacyMap { /** * The comment of the mapped USB device. */ comment?: pulumi.Input; /** * The ID of the map. */ id: pulumi.Input; /** * The node name of the map. */ node: pulumi.Input; /** * The path of the map. For USB hardware mappings, this is optional and indicates that the device is mapped via its device ID rather than ports. */ path?: pulumi.Input; } interface UsbMap { /** * The comment of the mapped USB device. */ comment?: pulumi.Input; /** * The ID of the map. */ id: pulumi.Input; /** * The node name of the map. */ node: pulumi.Input; /** * The path of the map. For USB hardware mappings, this is optional and indicates that the device is mapped via its device ID rather than ports. */ path?: pulumi.Input; } } } export declare namespace sdn { interface GetSubnetDhcpRange { /** * End of the DHCP range. */ endAddress?: string; /** * Start of the DHCP range. */ startAddress?: string; } interface GetSubnetDhcpRangeArgs { /** * End of the DHCP range. */ endAddress?: pulumi.Input; /** * Start of the DHCP range. */ startAddress?: pulumi.Input; } interface GetSubnetLegacyDhcpRange { /** * End of the DHCP range. */ endAddress?: string; /** * Start of the DHCP range. */ startAddress?: string; } interface GetSubnetLegacyDhcpRangeArgs { /** * End of the DHCP range. */ endAddress?: pulumi.Input; /** * Start of the DHCP range. */ startAddress?: pulumi.Input; } interface SubnetDhcpRange { /** * End of the DHCP range. */ endAddress: pulumi.Input; /** * Start of the DHCP range. */ startAddress: pulumi.Input; } interface SubnetLegacyDhcpRange { /** * End of the DHCP range. */ endAddress: pulumi.Input; /** * Start of the DHCP range. */ startAddress: pulumi.Input; } } export declare namespace storage { interface CifsBackups { /** * Specifies if all backups should be kept, regardless of their age. When set to true, other keep_* attributes must not be set. */ keepAll?: pulumi.Input; /** * The number of daily backups to keep. Older backups will be removed. */ keepDaily?: pulumi.Input; /** * The number of hourly backups to keep. Older backups will be removed. */ keepHourly?: pulumi.Input; /** * Specifies the number of the most recent backups to keep, regardless of their age. */ keepLast?: pulumi.Input; /** * The number of monthly backups to keep. Older backups will be removed. */ keepMonthly?: pulumi.Input; /** * The number of weekly backups to keep. Older backups will be removed. */ keepWeekly?: pulumi.Input; /** * The number of yearly backups to keep. Older backups will be removed. */ keepYearly?: pulumi.Input; /** * The maximum number of protected backups per guest. Use '-1' for unlimited. */ maxProtectedBackups?: pulumi.Input; } interface CifsLegacyBackups { /** * Specifies if all backups should be kept, regardless of their age. When set to true, other keep_* attributes must not be set. */ keepAll?: pulumi.Input; /** * The number of daily backups to keep. Older backups will be removed. */ keepDaily?: pulumi.Input; /** * The number of hourly backups to keep. Older backups will be removed. */ keepHourly?: pulumi.Input; /** * Specifies the number of the most recent backups to keep, regardless of their age. */ keepLast?: pulumi.Input; /** * The number of monthly backups to keep. Older backups will be removed. */ keepMonthly?: pulumi.Input; /** * The number of weekly backups to keep. Older backups will be removed. */ keepWeekly?: pulumi.Input; /** * The number of yearly backups to keep. Older backups will be removed. */ keepYearly?: pulumi.Input; /** * The maximum number of protected backups per guest. Use '-1' for unlimited. */ maxProtectedBackups?: pulumi.Input; } interface DirectoryBackups { /** * Specifies if all backups should be kept, regardless of their age. When set to true, other keep_* attributes must not be set. */ keepAll?: pulumi.Input; /** * The number of daily backups to keep. Older backups will be removed. */ keepDaily?: pulumi.Input; /** * The number of hourly backups to keep. Older backups will be removed. */ keepHourly?: pulumi.Input; /** * Specifies the number of the most recent backups to keep, regardless of their age. */ keepLast?: pulumi.Input; /** * The number of monthly backups to keep. Older backups will be removed. */ keepMonthly?: pulumi.Input; /** * The number of weekly backups to keep. Older backups will be removed. */ keepWeekly?: pulumi.Input; /** * The number of yearly backups to keep. Older backups will be removed. */ keepYearly?: pulumi.Input; /** * The maximum number of protected backups per guest. Use '-1' for unlimited. */ maxProtectedBackups?: pulumi.Input; } interface DirectoryLegacyBackups { /** * Specifies if all backups should be kept, regardless of their age. When set to true, other keep_* attributes must not be set. */ keepAll?: pulumi.Input; /** * The number of daily backups to keep. Older backups will be removed. */ keepDaily?: pulumi.Input; /** * The number of hourly backups to keep. Older backups will be removed. */ keepHourly?: pulumi.Input; /** * Specifies the number of the most recent backups to keep, regardless of their age. */ keepLast?: pulumi.Input; /** * The number of monthly backups to keep. Older backups will be removed. */ keepMonthly?: pulumi.Input; /** * The number of weekly backups to keep. Older backups will be removed. */ keepWeekly?: pulumi.Input; /** * The number of yearly backups to keep. Older backups will be removed. */ keepYearly?: pulumi.Input; /** * The maximum number of protected backups per guest. Use '-1' for unlimited. */ maxProtectedBackups?: pulumi.Input; } interface NfsBackups { /** * Specifies if all backups should be kept, regardless of their age. When set to true, other keep_* attributes must not be set. */ keepAll?: pulumi.Input; /** * The number of daily backups to keep. Older backups will be removed. */ keepDaily?: pulumi.Input; /** * The number of hourly backups to keep. Older backups will be removed. */ keepHourly?: pulumi.Input; /** * Specifies the number of the most recent backups to keep, regardless of their age. */ keepLast?: pulumi.Input; /** * The number of monthly backups to keep. Older backups will be removed. */ keepMonthly?: pulumi.Input; /** * The number of weekly backups to keep. Older backups will be removed. */ keepWeekly?: pulumi.Input; /** * The number of yearly backups to keep. Older backups will be removed. */ keepYearly?: pulumi.Input; /** * The maximum number of protected backups per guest. Use '-1' for unlimited. */ maxProtectedBackups?: pulumi.Input; } interface NfsLegacyBackups { /** * Specifies if all backups should be kept, regardless of their age. When set to true, other keep_* attributes must not be set. */ keepAll?: pulumi.Input; /** * The number of daily backups to keep. Older backups will be removed. */ keepDaily?: pulumi.Input; /** * The number of hourly backups to keep. Older backups will be removed. */ keepHourly?: pulumi.Input; /** * Specifies the number of the most recent backups to keep, regardless of their age. */ keepLast?: pulumi.Input; /** * The number of monthly backups to keep. Older backups will be removed. */ keepMonthly?: pulumi.Input; /** * The number of weekly backups to keep. Older backups will be removed. */ keepWeekly?: pulumi.Input; /** * The number of yearly backups to keep. Older backups will be removed. */ keepYearly?: pulumi.Input; /** * The maximum number of protected backups per guest. Use '-1' for unlimited. */ maxProtectedBackups?: pulumi.Input; } interface PbsBackups { /** * Specifies if all backups should be kept, regardless of their age. When set to true, other keep_* attributes must not be set. */ keepAll?: pulumi.Input; /** * The number of daily backups to keep. Older backups will be removed. */ keepDaily?: pulumi.Input; /** * The number of hourly backups to keep. Older backups will be removed. */ keepHourly?: pulumi.Input; /** * Specifies the number of the most recent backups to keep, regardless of their age. */ keepLast?: pulumi.Input; /** * The number of monthly backups to keep. Older backups will be removed. */ keepMonthly?: pulumi.Input; /** * The number of weekly backups to keep. Older backups will be removed. */ keepWeekly?: pulumi.Input; /** * The number of yearly backups to keep. Older backups will be removed. */ keepYearly?: pulumi.Input; /** * The maximum number of protected backups per guest. Use '-1' for unlimited. */ maxProtectedBackups?: pulumi.Input; } interface PbsLegacyBackups { /** * Specifies if all backups should be kept, regardless of their age. When set to true, other keep_* attributes must not be set. */ keepAll?: pulumi.Input; /** * The number of daily backups to keep. Older backups will be removed. */ keepDaily?: pulumi.Input; /** * The number of hourly backups to keep. Older backups will be removed. */ keepHourly?: pulumi.Input; /** * Specifies the number of the most recent backups to keep, regardless of their age. */ keepLast?: pulumi.Input; /** * The number of monthly backups to keep. Older backups will be removed. */ keepMonthly?: pulumi.Input; /** * The number of weekly backups to keep. Older backups will be removed. */ keepWeekly?: pulumi.Input; /** * The number of yearly backups to keep. Older backups will be removed. */ keepYearly?: pulumi.Input; /** * The maximum number of protected backups per guest. Use '-1' for unlimited. */ maxProtectedBackups?: pulumi.Input; } } //# sourceMappingURL=input.d.ts.map