From 4f57bdd24a3d69a373d62604fe8b1414b777487d Mon Sep 17 00:00:00 2001 From: Daniel Muehlbachler-Pietrzykowski Date: Wed, 18 Dec 2024 08:45:21 +0100 Subject: [PATCH] feat: prepare for upstream release v0.69.0 --- Makefile | 2 +- .../schema-embed.json | 2 +- .../cmd/pulumi-resource-proxmoxve/schema.json | 72 ++-- provider/go.sum | 26 -- sdk/dotnet/Acme/GetAccount.cs | 33 ++ sdk/dotnet/Acme/GetAccounts.cs | 25 ++ sdk/dotnet/Acme/GetPlugin.cs | 28 ++ sdk/dotnet/Acme/GetPlugins.cs | 25 ++ sdk/dotnet/Apt/GetRepository.cs | 30 ++ sdk/dotnet/Apt/Standard/GetRepository.cs | 29 ++ sdk/dotnet/Cluster/GetNodes.cs | 21 ++ sdk/dotnet/GetNode.cs | 21 ++ sdk/dotnet/GetVm2.cs | 7 + sdk/dotnet/HA/GetHagroup.cs | 33 ++ sdk/dotnet/HA/GetHagroups.cs | 25 ++ sdk/dotnet/HA/GetHaresource.cs | 33 ++ sdk/dotnet/HA/GetHaresources.cs | 34 ++ sdk/dotnet/Hardware/GetMappings.cs | 36 ++ sdk/dotnet/Hardware/Mapping/GetPci.cs | 28 ++ sdk/dotnet/Hardware/Mapping/GetUsb.cs | 28 ++ sdk/dotnet/Network/GetDNS.cs | 24 ++ sdk/dotnet/Network/GetHosts.cs | 24 ++ sdk/dotnet/Network/GetTime.cs | 24 ++ sdk/dotnet/Network/GetVersion.cs | 30 ++ sdk/dotnet/Permission/GetGroup.cs | 24 ++ sdk/dotnet/Permission/GetGroups.cs | 21 ++ sdk/dotnet/Permission/GetPool.cs | 24 ++ sdk/dotnet/Permission/GetPools.cs | 21 ++ sdk/dotnet/Permission/GetRole.cs | 24 ++ sdk/dotnet/Permission/GetRoles.cs | 21 ++ sdk/dotnet/Permission/GetUser.cs | 24 ++ sdk/dotnet/Permission/GetUsers.cs | 21 ++ sdk/dotnet/Storage/GetDatastores.cs | 24 ++ sdk/dotnet/Utilities.cs | 8 + sdk/dotnet/Vm/GetVirtualMachine.cs | 25 ++ sdk/dotnet/Vm/GetVirtualMachines.cs | 74 ++++ sdk/go/proxmoxve/acme/getAccount.go | 16 +- sdk/go/proxmoxve/acme/getAccounts.go | 14 +- sdk/go/proxmoxve/acme/getPlugin.go | 16 +- sdk/go/proxmoxve/acme/getPlugins.go | 14 +- sdk/go/proxmoxve/apt/getRepository.go | 16 +- .../proxmoxve/apt/standard/getRepository.go | 16 +- sdk/go/proxmoxve/cluster/getNodes.go | 14 +- sdk/go/proxmoxve/getNode.go | 16 +- sdk/go/proxmoxve/getVm2.go | 16 +- sdk/go/proxmoxve/ha/getHagroup.go | 16 +- sdk/go/proxmoxve/ha/getHagroups.go | 14 +- sdk/go/proxmoxve/ha/getHaresource.go | 16 +- sdk/go/proxmoxve/ha/getHaresources.go | 16 +- sdk/go/proxmoxve/hardware/getMappings.go | 16 +- sdk/go/proxmoxve/hardware/mapping/getPci.go | 16 +- sdk/go/proxmoxve/hardware/mapping/getUsb.go | 16 +- sdk/go/proxmoxve/network/getDNS.go | 16 +- sdk/go/proxmoxve/network/getHosts.go | 16 +- sdk/go/proxmoxve/network/getTime.go | 16 +- sdk/go/proxmoxve/network/getVersion.go | 14 +- sdk/go/proxmoxve/permission/getGroup.go | 16 +- sdk/go/proxmoxve/permission/getGroups.go | 14 +- sdk/go/proxmoxve/permission/getPool.go | 16 +- sdk/go/proxmoxve/permission/getPools.go | 14 +- sdk/go/proxmoxve/permission/getRole.go | 16 +- sdk/go/proxmoxve/permission/getRoles.go | 14 +- sdk/go/proxmoxve/permission/getUser.go | 16 +- sdk/go/proxmoxve/permission/getUsers.go | 14 +- sdk/go/proxmoxve/storage/getDatastores.go | 16 +- sdk/go/proxmoxve/vm/getVirtualMachine.go | 16 +- sdk/go/proxmoxve/vm/getVirtualMachines.go | 16 +- sdk/java/build.gradle | 2 +- .../pulumi/proxmoxve/Acme/AcmeFunctions.java | 166 +++++++++ .../pulumi/proxmoxve/Apt/AptFunctions.java | 46 +++ .../Apt_standard/Apt_standardFunctions.java | 45 +++ .../pulumi/proxmoxve/HA/HAFunctions.java | 171 +++++++++ .../proxmoxve/Hardware/HardwareFunctions.java | 51 +++ .../Hardware_mappingFunctions.java | 87 +++++ .../pulumi/proxmoxve/ProxmoxveFunctions.java | 49 +++ .../pulumi/proxmoxve/Utilities.java | 31 +- .../proxmoxve/cluster/ClusterFunctions.java | 40 +++ .../proxmoxve/network/NetworkFunctions.java | 167 +++++++++ .../permission/PermissionFunctions.java | 325 ++++++++++++++++++ .../proxmoxve/storage/StorageFunctions.java | 43 +++ .../pulumi/proxmoxve/vm/VmFunctions.java | 113 ++++++ sdk/nodejs/.pnp.cjs | 229 ++++++------ sdk/nodejs/.yarn/install-state.gz | Bin 223463 -> 214606 bytes sdk/nodejs/acme/getAccount.ts | 6 +- sdk/nodejs/acme/getAccounts.ts | 2 +- sdk/nodejs/acme/getPlugin.ts | 2 +- sdk/nodejs/acme/getPlugins.ts | 2 +- sdk/nodejs/apt/getRepository.ts | 2 +- sdk/nodejs/apt/standard/getRepository.ts | 2 +- sdk/nodejs/cluster/getNodes.ts | 2 +- sdk/nodejs/getNode.ts | 2 +- sdk/nodejs/getVm2.ts | 2 +- sdk/nodejs/ha/getHagroup.ts | 6 +- sdk/nodejs/ha/getHagroups.ts | 2 +- sdk/nodejs/ha/getHaresource.ts | 6 +- sdk/nodejs/ha/getHaresources.ts | 2 +- sdk/nodejs/hardware/getMappings.ts | 2 +- sdk/nodejs/hardware/mapping/getPci.ts | 2 +- sdk/nodejs/hardware/mapping/getUsb.ts | 2 +- sdk/nodejs/network/getDNS.ts | 2 +- sdk/nodejs/network/getHosts.ts | 2 +- sdk/nodejs/network/getTime.ts | 2 +- sdk/nodejs/network/getVersion.ts | 2 +- sdk/nodejs/permission/getGroup.ts | 2 +- sdk/nodejs/permission/getGroups.ts | 2 +- sdk/nodejs/permission/getPool.ts | 2 +- sdk/nodejs/permission/getPools.ts | 2 +- sdk/nodejs/permission/getRole.ts | 2 +- sdk/nodejs/permission/getRoles.ts | 2 +- sdk/nodejs/permission/getUser.ts | 2 +- sdk/nodejs/permission/getUsers.ts | 2 +- sdk/nodejs/storage/getDatastores.ts | 2 +- sdk/nodejs/vm/getVirtualMachine.ts | 2 +- sdk/nodejs/vm/getVirtualMachines.ts | 2 +- .../pulumi_proxmoxve/acme/get_account.py | 4 +- .../pulumi_proxmoxve/acme/get_accounts.py | 4 +- .../pulumi_proxmoxve/acme/get_plugin.py | 4 +- .../pulumi_proxmoxve/acme/get_plugins.py | 4 +- .../pulumi_proxmoxve/apt/get_repository.py | 4 +- .../apt/standard/get_repository.py | 4 +- .../pulumi_proxmoxve/cluster/get_nodes.py | 4 +- sdk/python/pulumi_proxmoxve/get_node.py | 4 +- sdk/python/pulumi_proxmoxve/get_vm2.py | 4 +- .../pulumi_proxmoxve/ha/get_ha_group.py | 4 +- .../pulumi_proxmoxve/ha/get_ha_groups.py | 4 +- .../pulumi_proxmoxve/ha/get_ha_resource.py | 4 +- .../pulumi_proxmoxve/ha/get_ha_resources.py | 4 +- .../pulumi_proxmoxve/hardware/get_mappings.py | 4 +- .../hardware/mapping/get_pci.py | 4 +- .../hardware/mapping/get_usb.py | 4 +- .../pulumi_proxmoxve/network/get_dns.py | 4 +- .../pulumi_proxmoxve/network/get_hosts.py | 4 +- .../pulumi_proxmoxve/network/get_time.py | 4 +- .../pulumi_proxmoxve/network/get_version.py | 4 +- .../pulumi_proxmoxve/permission/get_group.py | 4 +- .../pulumi_proxmoxve/permission/get_groups.py | 4 +- .../pulumi_proxmoxve/permission/get_pool.py | 4 +- .../pulumi_proxmoxve/permission/get_pools.py | 4 +- .../pulumi_proxmoxve/permission/get_role.py | 4 +- .../pulumi_proxmoxve/permission/get_roles.py | 4 +- .../pulumi_proxmoxve/permission/get_user.py | 4 +- .../pulumi_proxmoxve/permission/get_users.py | 4 +- .../storage/get_datastores.py | 4 +- .../vm/get_virtual_machine.py | 4 +- .../vm/get_virtual_machines.py | 4 +- sdk/python/setup.py | 2 +- 146 files changed, 2511 insertions(+), 683 deletions(-) diff --git a/Makefile b/Makefile index 38a2e331..24b309e1 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ PROVIDER := pulumi-resource-${PACK} VERSION := $(shell pulumictl get version) JAVA_GEN := pulumi-java-gen -JAVA_GEN_VERSION := v0.18.0 +JAVA_GEN_VERSION := v0.20.0 TESTPARALLELISM := 4 diff --git a/provider/cmd/pulumi-resource-proxmoxve/schema-embed.json b/provider/cmd/pulumi-resource-proxmoxve/schema-embed.json index f4c02f50..de0ed05d 100644 --- a/provider/cmd/pulumi-resource-proxmoxve/schema-embed.json +++ b/provider/cmd/pulumi-resource-proxmoxve/schema-embed.json @@ -1 +1 @@ -{"name":"proxmoxve","displayName":"Proxmox Virtual Environment (Proxmox VE)","version":"6.18.0-alpha.1733541003+083761d6.dirty","description":"A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.","keywords":["pulumi","proxmox","proxmoxve"],"homepage":"https://github.com/muhlba91/pulumi-proxmoxve","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`proxmox` Terraform Provider](https://github.com/bpg/terraform-provider-proxmox).","repository":"https://github.com/muhlba91/pulumi-proxmoxve","logoUrl":"https://raw.githubusercontent.com/muhlba91/pulumi-proxmoxve/main/assets/proxmox-logo.png","pluginDownloadURL":"github://api.github.com/muhlba91/pulumi-proxmoxve","publisher":"Daniel Muehlbachler-Pietrzykowski","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"namespaces":{"proxmoxve":"ProxmoxVE"},"compatibility":"tfbridge20"},"go":{"importBasePath":"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve","generateResourceContainerTypes":true,"generateExtraInputTypes":true},"java":{"basePackage":"io.muehlbachler.pulumi","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"packageName":"@muhlba91/pulumi-proxmoxve","packageDescription":"A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/bpg/terraform-provider-proxmox)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-proxmoxve` repo](https://github.com/muhlba91/pulumi-proxmoxve/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-proxmox` repo](https://github.com/bpg/terraform-provider-proxmox/issues).","dependencies":{"@pulumi/pulumi":"^3.0.0"},"devDependencies":{"@types/mime":"^2.0.0","@types/node":"^10.0.0"},"compatibility":"tfbridge20","disableUnionOutputTypes":true},"python":{"packageName":"pulumi_proxmoxve","requires":{"pulumi":"\u003e=3.0.0,\u003c4.0.0"},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/bpg/terraform-provider-proxmox)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-proxmoxve` repo](https://github.com/muhlba91/pulumi-proxmoxve/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-proxmox` repo](https://github.com/bpg/terraform-provider-proxmox/issues).","compatibility":"tfbridge20","pyproject":{}}},"config":{"variables":{"apiToken":{"type":"string","description":"The API token for the Proxmox VE API.\n","secret":true},"authTicket":{"type":"string","description":"The pre-authenticated Ticket for the Proxmox VE API.\n","secret":true},"csrfPreventionToken":{"type":"string","description":"The pre-authenticated CSRF Prevention Token for the Proxmox VE API.\n","secret":true},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\n"},"minTls":{"type":"string","description":"The minimum required TLS version for API calls.Supported values: `1.0|1.1|1.2|1.3`. Defaults to `1.3`.\n"},"otp":{"type":"string","description":"The one-time password for the Proxmox VE API.\n","deprecationMessage":"The `otp` attribute is deprecated and will be removed in a future release. Please use the `api_token` attribute instead."},"password":{"type":"string","description":"The password for the Proxmox VE API.\n","secret":true},"randomVmIdEnd":{"type":"integer","description":"The ending number for random VM / Container IDs.\n"},"randomVmIdStart":{"type":"integer","description":"The starting number for random VM / Container IDs.\n"},"randomVmIds":{"type":"boolean","description":"Whether to generate random VM / Container IDs.\n"},"ssh":{"$ref":"#/types/proxmoxve:config/ssh:ssh","description":"The SSH configuration for the Proxmox nodes.\n"},"tmpDir":{"type":"string","description":"The alternative temporary directory.\n"},"username":{"type":"string","description":"The username for the Proxmox VE API.\n"}}},"types":{"proxmoxve:Acme/getAccountAccount:getAccountAccount":{"properties":{"contacts":{"type":"array","items":{"type":"string"},"description":"An array of contact email addresses.\n"},"createdAt":{"type":"string","description":"The timestamp of the account creation.\n"},"status":{"type":"string","description":"The status of the account. Can be one of `valid`, `deactivated` or `revoked`.\n"}},"type":"object","required":["contacts","createdAt","status"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Acme/getPluginsPlugin:getPluginsPlugin":{"properties":{"api":{"type":"string","description":"API plugin name.\n"},"data":{"type":"object","additionalProperties":{"type":"string"},"description":"DNS plugin data.\n"},"digest":{"type":"string","description":"Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.\n"},"plugin":{"type":"string","description":"ACME Plugin ID name.\n"},"type":{"type":"string","description":"ACME challenge type (dns, standalone).\n"},"validationDelay":{"type":"integer","description":"Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records (0 - 172800).\n"}},"type":"object","required":["api","data","digest","plugin","type","validationDelay"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:CT/ContainerClone:ContainerClone":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the target datastore.\n","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The name of the source node (leave blank, if\nequal to the `node_name` argument).\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The identifier for the source container.\n","willReplaceOnChanges":true}},"type":"object","required":["vmId"]},"proxmoxve:CT/ContainerConsole:ContainerConsole":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the console device (defaults\nto `true`).\n"},"ttyCount":{"type":"integer","description":"The number of available TTY (defaults to `2`).\n"},"type":{"type":"string","description":"The console mode (defaults to `tty`).\n"}},"type":"object"},"proxmoxve:CT/ContainerCpu:ContainerCpu":{"properties":{"architecture":{"type":"string","description":"The CPU architecture (defaults to `amd64`).\n"},"cores":{"type":"integer","description":"The number of CPU cores (defaults to `1`).\n"},"units":{"type":"integer","description":"The CPU units (defaults to `1024`).\n"}},"type":"object"},"proxmoxve:CT/ContainerDisk:ContainerDisk":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create the\ndisk in (defaults to `local`).\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The size of the root filesystem in gigabytes (defaults\nto `4`). Requires `datastore_id` to be set.\n","willReplaceOnChanges":true}},"type":"object"},"proxmoxve:CT/ContainerFeatures:ContainerFeatures":{"properties":{"fuse":{"type":"boolean","description":"Whether the container supports FUSE mounts (defaults\nto `false`)\n"},"keyctl":{"type":"boolean","description":"Whether the container supports `keyctl()` system\ncall (defaults to `false`)\n"},"mounts":{"type":"array","items":{"type":"string"},"description":"List of allowed mount types (`cifs` or `nfs`)\n"},"nesting":{"type":"boolean","description":"Whether the container is nested (defaults\nto `false`)\n"}},"type":"object"},"proxmoxve:CT/ContainerInitialization:ContainerInitialization":{"properties":{"dns":{"$ref":"#/types/proxmoxve:CT/ContainerInitializationDns:ContainerInitializationDns","description":"The DNS configuration.\n"},"hostname":{"type":"string","description":"The hostname.\n"},"ipConfigs":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerInitializationIpConfig:ContainerInitializationIpConfig"},"description":"The IP configuration (one block per network\ndevice).\n"},"userAccount":{"$ref":"#/types/proxmoxve:CT/ContainerInitializationUserAccount:ContainerInitializationUserAccount","description":"The user account configuration.\n","willReplaceOnChanges":true}},"type":"object"},"proxmoxve:CT/ContainerInitializationDns:ContainerInitializationDns":{"properties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"server":{"type":"string","description":"The DNS server. The `server` attribute is\ndeprecated and will be removed in a future release. Please use\nthe `servers` attribute instead.\n","deprecationMessage":"The `server` attribute is deprecated and will be removed in a future release. Please use the `servers` attribute instead."},"servers":{"type":"array","items":{"type":"string"},"description":"The list of DNS servers.\n"}},"type":"object"},"proxmoxve:CT/ContainerInitializationIpConfig:ContainerInitializationIpConfig":{"properties":{"ipv4":{"$ref":"#/types/proxmoxve:CT/ContainerInitializationIpConfigIpv4:ContainerInitializationIpConfigIpv4","description":"The IPv4 configuration.\n"},"ipv6":{"$ref":"#/types/proxmoxve:CT/ContainerInitializationIpConfigIpv6:ContainerInitializationIpConfigIpv6","description":"The IPv4 configuration.\n"}},"type":"object"},"proxmoxve:CT/ContainerInitializationIpConfigIpv4:ContainerInitializationIpConfigIpv4":{"properties":{"address":{"type":"string","description":"The IPv4 address (use `dhcp` for auto-discovery).\n"},"gateway":{"type":"string","description":"The IPv4 gateway (must be omitted\nwhen `dhcp` is used as the address).\n"}},"type":"object"},"proxmoxve:CT/ContainerInitializationIpConfigIpv6:ContainerInitializationIpConfigIpv6":{"properties":{"address":{"type":"string","description":"The IPv6 address (use `dhcp` for auto-discovery).\n"},"gateway":{"type":"string","description":"The IPv6 gateway (must be omitted\nwhen `dhcp` is used as the address).\n"}},"type":"object"},"proxmoxve:CT/ContainerInitializationUserAccount:ContainerInitializationUserAccount":{"properties":{"keys":{"type":"array","items":{"type":"string"},"description":"The SSH keys for the root account.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password for the root account.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"proxmoxve:CT/ContainerMemory:ContainerMemory":{"properties":{"dedicated":{"type":"integer","description":"The dedicated memory in megabytes (defaults\nto `512`).\n"},"swap":{"type":"integer","description":"The swap size in megabytes (defaults to `0`).\n"}},"type":"object"},"proxmoxve:CT/ContainerMountPoint:ContainerMountPoint":{"properties":{"acl":{"type":"boolean","description":"Explicitly enable or disable ACL support.\n"},"backup":{"type":"boolean","description":"Whether to include the mount point in backups (only\nused for volume mount points, defaults to `false`).\n"},"mountOptions":{"type":"array","items":{"type":"string"},"description":"List of extra mount options.\n"},"path":{"type":"string","description":"Path to the mount point as seen from inside the\ncontainer.\n"},"quota":{"type":"boolean","description":"Enable user quotas inside the container (not supported\nwith ZFS subvolumes).\n"},"readOnly":{"type":"boolean","description":"Read-only mount point.\n"},"replicate":{"type":"boolean","description":"Will include this volume to a storage replica job.\n"},"shared":{"type":"boolean","description":"Mark this non-volume mount point as available on all\nnodes.\n"},"size":{"type":"string","description":"Volume size (only for volume mount points).\nCan be specified with a unit suffix (e.g. `10G`).\n"},"volume":{"type":"string","description":"Volume, device or directory to mount into the\ncontainer.\n"}},"type":"object","required":["path","volume"]},"proxmoxve:CT/ContainerNetworkInterface:ContainerNetworkInterface":{"properties":{"bridge":{"type":"string","description":"The name of the network bridge (defaults\nto `vmbr0`).\n"},"enabled":{"type":"boolean","description":"Whether to enable the network device (defaults\nto `true`).\n"},"firewall":{"type":"boolean","description":"Whether this interface's firewall rules should be\nused (defaults to `false`).\n"},"macAddress":{"type":"string","description":"The MAC address.\n"},"mtu":{"type":"integer","description":"Maximum transfer unit of the interface. Cannot be\nlarger than the bridge's MTU.\n"},"name":{"type":"string","description":"The network interface name.\n"},"rateLimit":{"type":"number","description":"The rate limit in megabytes per second.\n"},"vlanId":{"type":"integer","description":"The VLAN identifier.\n"}},"type":"object","required":["name"]},"proxmoxve:CT/ContainerOperatingSystem:ContainerOperatingSystem":{"properties":{"templateFileId":{"type":"string","description":"The identifier for an OS template file.\nThe ID format is `\u003cdatastore_id\u003e:\u003ccontent_type\u003e/\u003cfile_name\u003e`, for example `local:iso/jammy-server-cloudimg-amd64.tar.gz`.\nCan be also taken from `proxmoxve.Download.File` resource, or from the output of `pvesm list \u003cstorage\u003e`.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type (defaults to `unmanaged`).\n"}},"type":"object","required":["templateFileId"]},"proxmoxve:CT/ContainerStartup:ContainerStartup":{"properties":{"downDelay":{"type":"integer","description":"A non-negative number defining the delay in\nseconds before the next container is shut down.\n"},"order":{"type":"integer","description":"A non-negative number defining the general startup\norder.\n"},"upDelay":{"type":"integer","description":"A non-negative number defining the delay in\nseconds before the next container is started.\n"}},"type":"object"},"proxmoxve:Cluster/OptionsNextId:OptionsNextId":{"properties":{"lower":{"type":"integer","description":"The minimum number for the next free VM ID. Must be higher or equal to 100\n"},"upper":{"type":"integer","description":"The maximum number for the next free VM ID. Must be less or equal to 999999999\n"}},"type":"object"},"proxmoxve:Cluster/OptionsNotify:OptionsNotify":{"properties":{"haFencingMode":{"type":"string","description":"Cluster-wide notification settings for the HA fencing mode. Must be `always` | `never`.\n"},"haFencingTarget":{"type":"string","description":"Cluster-wide notification settings for the HA fencing target.\n"},"packageUpdates":{"type":"string","description":"Cluster-wide notification settings for package updates. Must be `auto` | `always` | `never`.\n"},"packageUpdatesTarget":{"type":"string","description":"Cluster-wide notification settings for the package updates target.\n"},"replication":{"type":"string","description":"Cluster-wide notification settings for replication. Must be `always` | `never`.\n"},"replicationTarget":{"type":"string","description":"Cluster-wide notification settings for the replication target.\n"}},"type":"object"},"proxmoxve:Hardware/getMappingsCheck:getMappingsCheck":{"properties":{"mappingId":{"type":"string","description":"The corresponding hardware mapping ID of the node check diagnostic entry.\n"},"message":{"type":"string","description":"The message of the node check diagnostic entry.\n"},"severity":{"type":"string","description":"The severity of the node check diagnostic entry.\n"}},"type":"object","required":["mappingId","message","severity"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Hardware/mapping/PciMap:PciMap":{"properties":{"comment":{"type":"string","description":"The comment of the mapped PCI device.\n"},"id":{"type":"string","description":"The ID of the map.\n"},"iommuGroup":{"type":"integer","description":"The IOMMU group of the map. Not mandatory for the Proxmox VE API call, but causes a PCI hardware mapping to be incomplete when not set\n"},"node":{"type":"string","description":"The node name of the map.\n"},"path":{"type":"string","description":"The path of the map.\n"},"subsystemId":{"type":"string","description":"The subsystem ID group of the map. Not mandatory for the Proxmox VE API call, but causes a PCI hardware mapping to be incomplete when not set\n"}},"type":"object","required":["id","node","path"]},"proxmoxve:Hardware/mapping/UsbMap:UsbMap":{"properties":{"comment":{"type":"string","description":"The comment of the mapped USB device.\n"},"id":{"type":"string","description":"The ID of the map.\n"},"node":{"type":"string","description":"The node name of the map.\n"},"path":{"type":"string","description":"The path of the map. For hardware mappings of type USB the path is optional and indicates that the device is mapped through the device ID instead of ports.\n"}},"type":"object","required":["id","node"]},"proxmoxve:Hardware/mapping/getPciMap:getPciMap":{"properties":{"comment":{"type":"string","description":"The comment of the mapped PCI device.\n"},"id":{"type":"string","description":"The ID attribute of the map.\n"},"iommuGroup":{"type":"integer","description":"The IOMMU group attribute of the map.\n"},"node":{"type":"string","description":"The node name attribute of the map.\n"},"path":{"type":"string","description":"The path attribute of the map.\n"},"subsystemId":{"type":"string","description":"The subsystem ID attribute of the map.Not mandatory for the Proxmox VE API call, but causes a PCI hardware mapping to be incomplete when not set.\n"}},"type":"object","required":["comment","id","iommuGroup","node","path","subsystemId"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Hardware/mapping/getUsbMap:getUsbMap":{"properties":{"comment":{"type":"string","description":"The comment of the mapped USB device.\n"},"id":{"type":"string","description":"The ID attribute of the map.\n"},"node":{"type":"string","description":"The node name attribute of the map.\n"},"path":{"type":"string","description":"The path attribute of the map.\n"}},"type":"object","required":["comment","id","node","path"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Network/FirewallIPSetCidr:FirewallIPSetCidr":{"properties":{"comment":{"type":"string","description":"Arbitrary string annotation.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Network/IP specification in CIDR format.\n","willReplaceOnChanges":true},"nomatch":{"type":"boolean","description":"Entries marked as `nomatch` are skipped as if those\nwere not added to the set.\n","willReplaceOnChanges":true}},"type":"object","required":["name"]},"proxmoxve:Network/FirewallLogRatelimit:FirewallLogRatelimit":{"properties":{"burst":{"type":"integer","description":"Initial burst of packages which will always get\nlogged before the rate is applied (defaults to `5`).\n"},"enabled":{"type":"boolean","description":"Enable or disable the log rate limit.\n"},"rate":{"type":"string","description":"Frequency with which the burst bucket gets refilled\n(defaults to `1/second`).\n"}},"type":"object"},"proxmoxve:Network/FirewallRulesRule:FirewallRulesRule":{"properties":{"action":{"type":"string","description":"Rule action (`ACCEPT`, `DROP`, `REJECT`).\n"},"comment":{"type":"string","description":"Rule comment.\n"},"dest":{"type":"string","description":"Restrict packet destination address. This can\nrefer to a single IP address, an IP set ('+ipsetname') or an IP\nalias definition. You can also specify an address range\nlike `20.34.101.207-201.3.9.99`, or a list of IP addresses and\nnetworks (entries are separated by comma). Please do not mix IPv4\nand IPv6 addresses inside such lists.\n"},"dport":{"type":"string","description":"Restrict TCP/UDP destination port. You can use\nservice names or simple numbers (0-65535), as defined\nin `/etc/services`. Port ranges can be specified with '\\d+:\\d+', for\nexample `80:85`, and you can use comma separated list to match\nseveral ports or ranges.\n"},"enabled":{"type":"boolean","description":"Enable this rule. Defaults to `true`.\n"},"iface":{"type":"string","description":"Network interface name. You have to use network\nconfiguration key names for VMs and containers ('net\\d+'). Host\nrelated rules can use arbitrary strings.\n"},"log":{"type":"string","description":"Log level for this rule (`emerg`, `alert`, `crit`,\n`err`, `warning`, `notice`, `info`, `debug`, `nolog`).\n"},"macro":{"type":"string","description":"Macro name. Use predefined standard macro\nfrom \u003chttps://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions\u003e\n"},"pos":{"type":"integer","description":"Position of the rule in the list.\n"},"proto":{"type":"string","description":"Restrict packet protocol. You can use protocol\nnames as defined in '/etc/protocols'.\n"},"securityGroup":{"type":"string","description":"Security group name.\n","willReplaceOnChanges":true},"source":{"type":"string","description":"Restrict packet source address. This can refer\nto a single IP address, an IP set ('+ipsetname') or an IP alias\ndefinition. You can also specify an address range\nlike `20.34.101.207-201.3.9.99`, or a list of IP addresses and\nnetworks (entries are separated by comma). Please do not mix IPv4\nand IPv6 addresses inside such lists.\n"},"sport":{"type":"string","description":"Restrict TCP/UDP source port. You can use\nservice names or simple numbers (0-65535), as defined\nin `/etc/services`. Port ranges can be specified with '\\d+:\\d+', for\nexample `80:85`, and you can use comma separated list to match\nseveral ports or ranges.\n- a security group insertion block, which includes the following arguments:\n"},"type":{"type":"string","description":"Rule type (`in`, `out`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["pos"]}}},"proxmoxve:Network/FirewallSecurityGroupRule:FirewallSecurityGroupRule":{"properties":{"action":{"type":"string","description":"Rule action (`ACCEPT`, `DROP`, `REJECT`).\n"},"comment":{"type":"string","description":"Rule comment.\n"},"dest":{"type":"string","description":"Restrict packet destination address. This can refer to\na single IP address, an IP set ('+ipsetname') or an IP alias\ndefinition. You can also specify an address range like\n`20.34.101.207-201.3.9.99`, or a list of IP addresses and networks\n(entries are separated by comma). Please do not mix IPv4 and IPv6\naddresses inside such lists.\n"},"dport":{"type":"string","description":"Restrict TCP/UDP destination port. You can use\nservice names or simple numbers (0-65535), as defined in '/etc/\nservices'. Port ranges can be specified with '\\d+:\\d+', for example\n`80:85`, and you can use comma separated list to match several ports or\nranges.\n"},"enabled":{"type":"boolean","description":"Enable rule\n"},"iface":{"type":"string","description":"Network interface name. You have to use network\nconfiguration key names for VMs and containers ('net\\d+'). Host related\nrules can use arbitrary strings.\n"},"log":{"type":"string","description":"Log level for this rule (`emerg`, `alert`, `crit`,\n`err`, `warning`, `notice`, `info`, `debug`, `nolog`).\n"},"macro":{"type":"string","description":"Macro name. Use predefined standard macro\nfrom \u003chttps://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions\u003e\n"},"pos":{"type":"integer","description":"Position of the rule in the list.\n"},"proto":{"type":"string","description":"Restrict packet protocol. You can use protocol names\nas defined in '/etc/protocols'.\n"},"securityGroup":{"type":"string","description":"Security group name\n","willReplaceOnChanges":true},"source":{"type":"string","description":"Restrict packet source address. This can refer\nto a single IP address, an IP set ('+ipsetname') or an IP alias\ndefinition. You can also specify an address range like\n`20.34.101.207-201.3.9.99`, or a list of IP addresses and networks (\nentries are separated by comma). Please do not mix IPv4 and IPv6\naddresses inside such lists.\n"},"sport":{"type":"string","description":"Restrict TCP/UDP source port. You can use\nservice names or simple numbers (0-65535), as defined in '/etc/\nservices'. Port ranges can be specified with '\\d+:\\d+', for example\n`80:85`, and you can use comma separated list to match several ports or\nranges.\n"},"type":{"type":"string","description":"Rule type (`in`, `out`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["pos"]}}},"proxmoxve:Network/getHostsEntry:getHostsEntry":{"properties":{"address":{"type":"string","description":"The address\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"The hostnames associated with each of the IP addresses.\n"}},"type":"object","required":["address","hostnames"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Permission/GroupAcl:GroupAcl":{"properties":{"path":{"type":"string","description":"The path.\n"},"propagate":{"type":"boolean","description":"Whether to propagate to child paths.\n"},"roleId":{"type":"string","description":"The role identifier.\n"}},"type":"object","required":["path","roleId"]},"proxmoxve:Permission/PoolMember:PoolMember":{"properties":{"datastoreId":{"type":"string","description":"The datastore identifier.\n"},"id":{"type":"string","description":"The member identifier.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"type":{"type":"string","description":"The member type.\n"},"vmId":{"type":"integer","description":"The virtual machine identifier.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["datastoreId","id","nodeName","type","vmId"]}}},"proxmoxve:Permission/UserAcl:UserAcl":{"properties":{"path":{"type":"string","description":"The path.\n"},"propagate":{"type":"boolean","description":"Whether to propagate to child paths.\n"},"roleId":{"type":"string","description":"The role identifier.\n"}},"type":"object","required":["path","roleId"]},"proxmoxve:Permission/getGroupAcl:getGroupAcl":{"properties":{"path":{"type":"string","description":"The path.\n"},"propagate":{"type":"boolean","description":"Whether to propagate to child paths.\n"},"roleId":{"type":"string","description":"The role identifier.\n"}},"type":"object","required":["path","propagate","roleId"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Permission/getPoolMember:getPoolMember":{"properties":{"datastoreId":{"type":"string","description":"The datastore identifier.\n"},"id":{"type":"string","description":"The member identifier.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"type":{"type":"string","description":"The member type.\n"},"vmId":{"type":"integer","description":"The virtual machine identifier.\n"}},"type":"object","required":["datastoreId","id","nodeName","type","vmId"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Permission/getUserAcl:getUserAcl":{"properties":{"path":{"type":"string","description":"The path.\n"},"propagate":{"type":"boolean","description":"Whether to propagate to child paths.\n"},"roleId":{"type":"string","description":"The role identifier.\n"}},"type":"object","required":["path","propagate","roleId"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Storage/FileSourceFile:FileSourceFile":{"properties":{"changed":{"type":"boolean","description":"Whether the source file has changed since the last run\n","willReplaceOnChanges":true},"checksum":{"type":"string","description":"The SHA256 checksum of the source file.\n","willReplaceOnChanges":true},"fileName":{"type":"string","description":"The file name to use instead of the source file\nname. Useful when the source file does not have a valid file extension,\nfor example when the source file is a URL referencing a `.qcow2` image.\n","willReplaceOnChanges":true},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step for\nHTTPS sources (defaults to `false`).\n","willReplaceOnChanges":true},"minTls":{"type":"string","description":"The minimum required TLS version for HTTPS\nsources. \"Supported values: `1.0|1.1|1.2|1.3` (defaults to `1.3`).\n","willReplaceOnChanges":true},"path":{"type":"string","description":"A path to a local file or a URL.\n","willReplaceOnChanges":true}},"type":"object","required":["path"]},"proxmoxve:Storage/FileSourceRaw:FileSourceRaw":{"properties":{"data":{"type":"string","description":"The raw data.\n","willReplaceOnChanges":true},"fileName":{"type":"string","description":"The file name.\n","willReplaceOnChanges":true},"resize":{"type":"integer","description":"The number of bytes to resize the file to.\n","willReplaceOnChanges":true}},"type":"object","required":["data","fileName"]},"proxmoxve:VM/VirtualMachine2Cdrom:VirtualMachine2Cdrom":{"properties":{"fileId":{"type":"string","description":"The file ID of the CD-ROM, or `cdrom|none`. Defaults to `none` to leave the CD-ROM empty. Use `cdrom` to connect to the physical drive.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["fileId"]}}},"proxmoxve:VM/VirtualMachine2Clone:VirtualMachine2Clone":{"properties":{"id":{"type":"integer","description":"The ID of the VM to clone.\n"},"retries":{"type":"integer","description":"The number of retries to perform when cloning the VM (default: 3).\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["id","retries"]}}},"proxmoxve:VM/VirtualMachine2Cpu:VirtualMachine2Cpu":{"properties":{"affinity":{"type":"string","description":"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.\n"},"architecture":{"type":"string","description":"The CPU architecture `\u003caarch64 | x86_64\u003e` (defaults to the host). Setting `affinity` is only allowed for `root@pam` authenticated user.\n"},"cores":{"type":"integer","description":"The number of CPU cores per socket (defaults to `1`).\n"},"flags":{"type":"array","items":{"type":"string"},"description":"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`.\n"},"hotplugged":{"type":"integer","description":"The number of hotplugged vCPUs (defaults to `0`).\n"},"limit":{"type":"integer","description":"Limit of CPU usage (defaults to `0` which means no limit).\n"},"numa":{"type":"boolean","description":"Enable NUMA (defaults to `false`).\n"},"sockets":{"type":"integer","description":"The number of CPU sockets (defaults to `1`).\n"},"type":{"type":"string","description":"Emulated CPU type, it's recommended to use `x86-64-v2-AES` or higher (defaults to `kvm64`). See https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm*virtual*machines_settings for more information.\n"},"units":{"type":"integer","description":"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.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["affinity","architecture","cores","flags","hotplugged","limit","numa","sockets","type","units"]}}},"proxmoxve:VM/VirtualMachine2Timeouts:VirtualMachine2Timeouts":{"properties":{"create":{"type":"string","description":"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).\n"},"delete":{"type":"string","description":"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.\n"},"read":{"type":"string","description":"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.\n"},"update":{"type":"string","description":"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).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachine2Vga:VirtualMachine2Vga":{"properties":{"clipboard":{"type":"string","description":"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.\n"},"memory":{"type":"integer","description":"The VGA memory in megabytes (4-512 MB). Has no effect with serial display.\n"},"type":{"type":"string","description":"The VGA type (defaults to `std`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clipboard","memory","type"]}}},"proxmoxve:VM/VirtualMachineAgent:VirtualMachineAgent":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the QEMU agent (defaults\nto `false`).\n"},"timeout":{"type":"string","description":"The maximum amount of time to wait for data from\nthe QEMU agent to become available ( defaults to `15m`).\n"},"trim":{"type":"boolean","description":"Whether to enable the FSTRIM feature in the QEMU agent\n(defaults to `false`).\n"},"type":{"type":"string","description":"The QEMU agent interface type (defaults to `virtio`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineAudioDevice:VirtualMachineAudioDevice":{"properties":{"device":{"type":"string","description":"The device (defaults to `intel-hda`).\n- `AC97` - Intel 82801AA AC97 Audio.\n- `ich9-intel-hda` - Intel HD Audio Controller (ich9).\n- `intel-hda` - Intel HD Audio.\n"},"driver":{"type":"string","description":"The driver (defaults to `spice`).\n"},"enabled":{"type":"boolean","description":"Whether to enable the audio device (defaults\nto `true`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineCdrom:VirtualMachineCdrom":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the CDROM drive (defaults\nto `false`).\n"},"fileId":{"type":"string","description":"A file ID for an ISO file (defaults to `cdrom` as\nin the physical drive). Use `none` to leave the CDROM drive empty.\n"},"interface":{"type":"string","description":"A hardware interface to connect CDROM drive to,\nmust be `ideN` (defaults to `ide3`). Note that `q35` machine type only\nsupports `ide0` and `ide2`.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineClone:VirtualMachineClone":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the target datastore.\n","willReplaceOnChanges":true},"full":{"type":"boolean","description":"Full or linked clone (defaults to `true`).\n","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The name of the source node (leave blank, if\nequal to the `node_name` argument).\n","willReplaceOnChanges":true},"retries":{"type":"integer","description":"Number of retries in Proxmox for clone vm.\nSometimes Proxmox errors with timeout when creating multiple clones at\nonce.\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The identifier for the source VM.\n","willReplaceOnChanges":true}},"type":"object","required":["vmId"]},"proxmoxve:VM/VirtualMachineCpu:VirtualMachineCpu":{"properties":{"affinity":{"type":"string","description":"The CPU cores that are used to run the VM’s vCPU. The\nvalue is a list of CPU IDs, separated by commas. The CPU IDs are zero-based.\nFor 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\nCPU cores. Setting `affinity` is only allowed for `root@pam` authenticated user.\n"},"architecture":{"type":"string","description":"The CPU architecture (defaults to `x86_64`).\n"},"cores":{"type":"integer","description":"The number of CPU cores (defaults to `1`).\n"},"flags":{"type":"array","items":{"type":"string"},"description":"The CPU flags.\n- `+aes`/`-aes` - Activate AES instruction set for HW acceleration.\n- `+amd-no-ssb`/`-amd-no-ssb` - Notifies guest OS that host is not\nvulnerable for Spectre on AMD CPUs.\n- `+amd-ssbd`/`-amd-ssbd` - Improves Spectre mitigation performance with\nAMD CPUs, best used with \"virt-ssbd\".\n- `+hv-evmcs`/`-hv-evmcs` - Improve performance for nested\nvirtualization (only supported on Intel CPUs).\n- `+hv-tlbflush`/`-hv-tlbflush` - Improve performance in overcommitted\nWindows guests (may lead to guest BSOD on old CPUs).\n- `+ibpb`/`-ibpb` - Allows improved Spectre mitigation on AMD CPUs.\n- `+md-clear`/`-md-clear` - Required to let the guest OS know if MDS is\nmitigated correctly.\n- `+pcid`/`-pcid` - Meltdown fix cost reduction on Westmere, Sandy- and\nIvy Bridge Intel CPUs.\n- `+pdpe1gb`/`-pdpe1gb` - Allows guest OS to use 1 GB size pages, if\nhost HW supports it.\n- `+spec-ctrl`/`-spec-ctrl` - Allows improved Spectre mitigation with\nIntel CPUs.\n- `+ssbd`/`-ssbd` - Protection for \"Speculative Store Bypass\" for Intel\nmodels.\n- `+virt-ssbd`/`-virt-ssbd` - Basis for \"Speculative Store Bypass\"\nprotection for AMD models.\n"},"hotplugged":{"type":"integer","description":"The number of hotplugged vCPUs (defaults\nto `0`).\n"},"limit":{"type":"integer","description":"Limit of CPU usage, `0...128`. (defaults to `0` -- no limit).\n"},"numa":{"type":"boolean","description":"Enable/disable NUMA. (default to `false`)\n"},"sockets":{"type":"integer","description":"The number of CPU sockets (defaults to `1`).\n"},"type":{"type":"string","description":"The emulated CPU type, it's recommended to\nuse `x86-64-v2-AES` (defaults to `qemu64`).\n"},"units":{"type":"integer","description":"The CPU units (defaults to `1024`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineDisk:VirtualMachineDisk":{"properties":{"aio":{"type":"string","description":"The disk AIO mode (defaults to `io_uring`).\n"},"backup":{"type":"boolean","description":"Whether the drive should be included when making backups (defaults to `true`).\n"},"cache":{"type":"string","description":"The cache type (defaults to `none`).\n"},"datastoreId":{"type":"string","description":"The identifier for the datastore to create\nthe disk in (defaults to `local-lvm`).\n"},"discard":{"type":"string","description":"Whether to pass discard/trim requests to the\nunderlying storage. Supported values are `on`/`ignore` (defaults\nto `ignore`).\n"},"fileFormat":{"type":"string","description":"The file format (defaults to `qcow2`).\n"},"fileId":{"type":"string","description":"The file ID for a disk image. The ID format is\n`\u003cdatastore_id\u003e:\u003ccontent_type\u003e/\u003cfile_name\u003e`, for example `local:iso/centos8.img`. Can be also taken from\n`proxmoxve.Download.File` resource.\n","willReplaceOnChanges":true},"interface":{"type":"string","description":"The disk interface for Proxmox, currently `scsi`,\n`sata` and `virtio` interfaces are supported. Append the disk index at\nthe end, for example, `virtio0` for the first virtio disk, `virtio1` for\nthe second, etc.\n"},"iothread":{"type":"boolean","description":"Whether to use iothreads for this disk (defaults\nto `false`).\n"},"pathInDatastore":{"type":"string","description":"The in-datastore path to the disk image.\n***Experimental.***Use to attach another VM's disks,\nor (as root only) host's filesystem paths (`datastore_id` empty string).\nSee \"*Example: Attached disks*\".\n"},"replicate":{"type":"boolean","description":"Whether the drive should be considered for replication jobs (defaults to `true`).\n"},"serial":{"type":"string","description":"The serial number of the disk, up to 20 bytes long.\n"},"size":{"type":"integer","description":"The disk size in gigabytes (defaults to `8`).\n"},"speed":{"$ref":"#/types/proxmoxve:VM/VirtualMachineDiskSpeed:VirtualMachineDiskSpeed","description":"The speed limits.\n"},"ssd":{"type":"boolean","description":"Whether to use an SSD emulation option for this disk (\ndefaults to `false`). Note that SSD emulation is not supported on VirtIO\nBlock drives.\n"}},"type":"object","required":["interface"],"language":{"nodejs":{"requiredOutputs":["fileFormat","interface","pathInDatastore"]}}},"proxmoxve:VM/VirtualMachineDiskSpeed:VirtualMachineDiskSpeed":{"properties":{"iopsRead":{"type":"integer","description":"The maximum read I/O in operations per second.\n"},"iopsReadBurstable":{"type":"integer","description":"The maximum unthrottled read I/O pool in operations per second.\n"},"iopsWrite":{"type":"integer","description":"The maximum write I/O in operations per second.\n"},"iopsWriteBurstable":{"type":"integer","description":"The maximum unthrottled write I/O pool in operations per second.\n"},"read":{"type":"integer","description":"The maximum read speed in megabytes per second.\n"},"readBurstable":{"type":"integer","description":"The maximum burstable read speed in\nmegabytes per second.\n"},"write":{"type":"integer","description":"The maximum write speed in megabytes per second.\n"},"writeBurstable":{"type":"integer","description":"The maximum burstable write speed in\nmegabytes per second.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create\nthe disk in (defaults to `local-lvm`).\n"},"fileFormat":{"type":"string","description":"The file format (defaults to `raw`).\n","willReplaceOnChanges":true},"preEnrolledKeys":{"type":"boolean","description":"Use am EFI vars template with\ndistribution-specific and Microsoft Standard keys enrolled, if used with\nEFI type=`4m`. Ignored for VMs with cpu.architecture=`aarch64` (defaults\nto `false`).\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Size and type of the OVMF EFI disk. `4m` is newer and\nrecommended, and required for Secure Boot. For backwards compatibility\nuse `2m`. Ignored for VMs with cpu.architecture=`aarch64` (defaults\nto `2m`).\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["fileFormat"]}}},"proxmoxve:VM/VirtualMachineHostpci:VirtualMachineHostpci":{"properties":{"device":{"type":"string","description":"The PCI device name for Proxmox, in form\nof `hostpciX` where `X` is a sequential number from 0 to 15.\n"},"id":{"type":"string","description":"The PCI device ID. This parameter is not compatible\nwith `api_token` and requires the root `username` and `password`\nconfigured in the proxmox provider. Use either this or `mapping`.\n"},"mapping":{"type":"string","description":"The resource mapping name of the device, for\nexample gpu. Use either this or `id`.\n"},"mdev":{"type":"string","description":"The mediated device ID to use.\n"},"pcie":{"type":"boolean","description":"Tells Proxmox to use a PCIe or PCI port. Some\nguests/device combination require PCIe rather than PCI. PCIe is only\navailable for q35 machine types.\n"},"romFile":{"type":"string","description":"A path to a ROM file for the device to use. This\nis a relative path under `/usr/share/kvm/`.\n"},"rombar":{"type":"boolean","description":"Makes the firmware ROM visible for the VM (defaults\nto `true`).\n"},"xvga":{"type":"boolean","description":"Marks the PCI(e) device as the primary GPU of the VM.\nWith this enabled the `vga` configuration argument will be ignored.\n"}},"type":"object","required":["device"]},"proxmoxve:VM/VirtualMachineInitialization:VirtualMachineInitialization":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create the\ncloud-init disk in (defaults to `local-lvm`).\n"},"dns":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitializationDns:VirtualMachineInitializationDns","description":"The DNS configuration.\n"},"interface":{"type":"string","description":"The hardware interface to connect the cloud-init\nimage to. Must be one of `ide0..3`, `sata0..5`, `scsi0..30`. Will be\ndetected if the setting is missing but a cloud-init image is present,\notherwise defaults to `ide2`.\n"},"ipConfigs":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitializationIpConfig:VirtualMachineInitializationIpConfig"},"description":"The IP configuration (one block per network\ndevice).\n"},"metaDataFileId":{"type":"string","description":"The identifier for a file containing\nall meta data passed to the VM via cloud-init.\n","willReplaceOnChanges":true},"networkDataFileId":{"type":"string","description":"The identifier for a file containing\nnetwork configuration data passed to the VM via cloud-init (conflicts\nwith `ip_config`).\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The cloud-init configuration format\n","willReplaceOnChanges":true},"upgrade":{"type":"boolean","description":"Whether to do an automatic package upgrade after the first boot\n","deprecationMessage":"The `upgrade` attribute is deprecated and will be removed in a future release."},"userAccount":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitializationUserAccount:VirtualMachineInitializationUserAccount","description":"The user account configuration (conflicts\nwith `user_data_file_id`).\n","willReplaceOnChanges":true},"userDataFileId":{"type":"string","description":"The identifier for a file containing\ncustom user data (conflicts with `user_account`).\n","willReplaceOnChanges":true},"vendorDataFileId":{"type":"string","description":"The identifier for a file containing\nall vendor data passed to the VM via cloud-init.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["upgrade"]}}},"proxmoxve:VM/VirtualMachineInitializationDns:VirtualMachineInitializationDns":{"properties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"server":{"type":"string","description":"The DNS server. The `server` attribute is\ndeprecated and will be removed in a future release. Please use the\n`servers` attribute instead.\n","deprecationMessage":"The `server` attribute is deprecated and will be removed in a future release. Please use the `servers` attribute instead."},"servers":{"type":"array","items":{"type":"string"},"description":"The list of DNS servers.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineInitializationIpConfig:VirtualMachineInitializationIpConfig":{"properties":{"ipv4":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitializationIpConfigIpv4:VirtualMachineInitializationIpConfigIpv4","description":"The IPv4 configuration.\n"},"ipv6":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitializationIpConfigIpv6:VirtualMachineInitializationIpConfigIpv6","description":"The IPv6 configuration.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineInitializationIpConfigIpv4:VirtualMachineInitializationIpConfigIpv4":{"properties":{"address":{"type":"string","description":"The IPv4 address in CIDR notation\n(e.g. 192.168.2.2/24). Alternatively, set this to `dhcp` for\nautodiscovery.\n"},"gateway":{"type":"string","description":"The IPv4 gateway (must be omitted\nwhen `dhcp` is used as the address).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineInitializationIpConfigIpv6:VirtualMachineInitializationIpConfigIpv6":{"properties":{"address":{"type":"string","description":"The IPv6 address in CIDR notation\n(e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this\nto `dhcp` for autodiscovery.\n"},"gateway":{"type":"string","description":"The IPv6 gateway (must be omitted\nwhen `dhcp` is used as the address).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineInitializationUserAccount:VirtualMachineInitializationUserAccount":{"properties":{"keys":{"type":"array","items":{"type":"string"},"description":"The SSH keys.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The SSH password.\n","secret":true,"willReplaceOnChanges":true},"username":{"type":"string","description":"The SSH username.\n","willReplaceOnChanges":true}},"type":"object"},"proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory":{"properties":{"dedicated":{"type":"integer","description":"The dedicated memory in megabytes (defaults to `512`).\n"},"floating":{"type":"integer","description":"The floating memory in megabytes. The default is `0`, which disables \"ballooning device\" for the VM.\nPlease note that Proxmox has ballooning enabled by default. To enable it, set `floating` to the same value as `dedicated`.\nSee [Proxmox documentation](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_memory) section 10.2.6 for more information.\n"},"hugepages":{"type":"string","description":"Enable/disable hugepages memory (defaults to disable).\n"},"keepHugepages":{"type":"boolean","description":"Keep hugepages memory after the VM is stopped (defaults to `false`).\n\nSettings `hugepages` and `keep_hugepages` are only allowed for `root@pam` authenticated user.\nAnd required `cpu.numa` to be enabled.\n"},"shared":{"type":"integer","description":"The shared memory in megabytes (defaults to `0`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineNetworkDevice:VirtualMachineNetworkDevice":{"properties":{"bridge":{"type":"string","description":"The name of the network bridge (defaults to `vmbr0`).\n"},"disconnected":{"type":"boolean","description":"Whether to disconnect the network device from the network (defaults to `false`).\n"},"enabled":{"type":"boolean","description":"Whether to enable the network device (defaults to `true`).\n"},"firewall":{"type":"boolean","description":"Whether this interface's firewall rules should be used (defaults to `false`).\n"},"macAddress":{"type":"string","description":"The MAC address.\n"},"model":{"type":"string","description":"The network device model (defaults to `virtio`).\n"},"mtu":{"type":"integer","description":"Force MTU, for VirtIO only. Set to 1 to use the bridge MTU. Cannot be larger than the bridge MTU.\n"},"queues":{"type":"integer","description":"The number of queues for VirtIO (1..64).\n"},"rateLimit":{"type":"number","description":"The rate limit in megabytes per second.\n"},"trunks":{"type":"string","description":"String containing a `;` separated list of VLAN trunks\n(\"10;20;30\"). Note that the VLAN-aware feature need to be enabled on the PVE\nLinux Bridge to use trunks.\n"},"vlanId":{"type":"integer","description":"The VLAN identifier.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["macAddress"]}}},"proxmoxve:VM/VirtualMachineNuma:VirtualMachineNuma":{"properties":{"cpus":{"type":"string","description":"The CPU cores to assign to the NUMA node (format is `0-7;16-31`).\n"},"device":{"type":"string","description":"The NUMA device name for Proxmox, in form\nof `numaX` where `X` is a sequential number from 0 to 7.\n"},"hostnodes":{"type":"string","description":"The NUMA host nodes.\n"},"memory":{"type":"integer","description":"The memory in megabytes to assign to the NUMA node.\n"},"policy":{"type":"string","description":"The NUMA policy (defaults to `preferred`).\n"}},"type":"object","required":["cpus","device","memory"]},"proxmoxve:VM/VirtualMachineOperatingSystem:VirtualMachineOperatingSystem":{"properties":{"type":{"type":"string","description":"The type (defaults to `other`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineSerialDevice:VirtualMachineSerialDevice":{"properties":{"device":{"type":"string","description":"The device (defaults to `socket`).\n- `/dev/*` - A host serial device.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineSmbios:VirtualMachineSmbios":{"properties":{"family":{"type":"string","description":"The family string.\n"},"manufacturer":{"type":"string","description":"The manufacturer.\n"},"product":{"type":"string","description":"The product ID.\n"},"serial":{"type":"string","description":"The serial number.\n"},"sku":{"type":"string","description":"The SKU number.\n"},"uuid":{"type":"string","description":"The UUID (defaults to randomly generated UUID).\n"},"version":{"type":"string","description":"The version.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["uuid"]}}},"proxmoxve:VM/VirtualMachineStartup:VirtualMachineStartup":{"properties":{"downDelay":{"type":"integer","description":"A non-negative number defining the delay in\nseconds before the next VM is shut down.\n"},"order":{"type":"integer","description":"A non-negative number defining the general startup\norder.\n"},"upDelay":{"type":"integer","description":"A non-negative number defining the delay in\nseconds before the next VM is started.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineTpmState:VirtualMachineTpmState":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create\nthe disk in (defaults to `local-lvm`).\n"},"version":{"type":"string","description":"TPM state device version. Can be `v1.2` or `v2.0`.\n(defaults to `v2.0`).\n","willReplaceOnChanges":true}},"type":"object"},"proxmoxve:VM/VirtualMachineUsb:VirtualMachineUsb":{"properties":{"host":{"type":"string","description":"The Host USB device or port or the value `spice`. Use either this or `mapping`.\n"},"mapping":{"type":"string","description":"The cluster-wide resource mapping name of the device, for example \"usbdevice\". Use either this or `host`.\n"},"usb3":{"type":"boolean","description":"Makes the USB device a USB3 device for the VM\n(defaults to `false`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineVga:VirtualMachineVga":{"properties":{"clipboard":{"type":"string","description":"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.\n"},"memory":{"type":"integer","description":"The VGA memory in megabytes (defaults to `16`).\n"},"type":{"type":"string","description":"The VGA type (defaults to `std`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineWatchdog:VirtualMachineWatchdog":{"properties":{"action":{"type":"string","description":"The action to perform if after activation the guest fails to poll the watchdog in time (defaults to `none`).\n"},"enabled":{"type":"boolean","description":"Whether the watchdog is enabled (defaults to `false`).\n"},"model":{"type":"string","description":"The watchdog type to emulate (defaults to `i6300esb`).\n"}},"type":"object"},"proxmoxve:VM/getVirtualMachinesFilter:getVirtualMachinesFilter":{"properties":{"name":{"type":"string","description":"Name of the VM attribute to filter on. One of [`name`, `template`, `status`, `node_name`]\n"},"regex":{"type":"boolean","description":"Treat values as regex patterns\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of values to pass the filter. VM's attribute should match at least one value in the list.\n"}},"type":"object","required":["name","values"]},"proxmoxve:VM/getVirtualMachinesVm:getVirtualMachinesVm":{"properties":{"name":{"type":"string","description":"The virtual machine name.\n"},"nodeName":{"type":"string","description":"The node name. All cluster nodes will be queried in case this is omitted\n"},"status":{"type":"string","description":"Status of the VM\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to filter the VMs. The VM must have all\nthe tags to be included in the result.\n"},"template":{"type":"boolean","description":"Is VM a template (true) or a regular VM (false)\n"},"vmId":{"type":"integer","description":"The VM identifier.\n"}},"type":"object","required":["name","nodeName","tags","vmId"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:config/ssh:ssh":{"properties":{"agent":{"type":"boolean","description":"Whether to use the SSH agent for authentication. Takes precedence over the `private_key` and `password` fields. Defaults to the value of the `PROXMOX_VE_SSH_AGENT` environment variable, or `false` if not set.\n"},"agentSocket":{"type":"string","description":"The path to the SSH agent socket. Defaults to the value of the `SSH_AUTH_SOCK` environment variable.\n"},"nodes":{"type":"array","items":{"$ref":"#/types/proxmoxve:config/sshNode:sshNode"},"description":"Overrides for SSH connection configuration for a Proxmox VE node.\n"},"password":{"type":"string","description":"The password used for the SSH connection. Defaults to the value of the `password` field of the `provider` block.\n","secret":true},"privateKey":{"type":"string","description":"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.\n","secret":true},"socks5Password":{"type":"string","description":"The password for the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_PASSWORD` environment variable.\n","secret":true},"socks5Server":{"type":"string","description":"The address:port of the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_SERVER` environment variable.\n"},"socks5Username":{"type":"string","description":"The username for the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_USERNAME` environment variable.\n"},"username":{"type":"string","description":"The username used for the SSH connection. Defaults to the value of the `username` field of the `provider` block.\n"}},"type":"object"},"proxmoxve:config/sshNode:sshNode":{"properties":{"address":{"type":"string","description":"The address of the Proxmox VE node.\n"},"name":{"type":"string","description":"The name of the Proxmox VE node.\n"},"port":{"type":"integer","description":"The port of the Proxmox VE node.\n"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:index/HostsEntry:HostsEntry":{"properties":{"address":{"type":"string","description":"The IP address.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"The hostnames.\n"}},"type":"object","required":["address","hostnames"]},"proxmoxve:index/ProviderSsh:ProviderSsh":{"properties":{"agent":{"type":"boolean","description":"Whether to use the SSH agent for authentication. Takes precedence over the `private_key` and `password` fields. Defaults to the value of the `PROXMOX_VE_SSH_AGENT` environment variable, or `false` if not set.\n"},"agentSocket":{"type":"string","description":"The path to the SSH agent socket. Defaults to the value of the `SSH_AUTH_SOCK` environment variable.\n"},"nodes":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/ProviderSshNode:ProviderSshNode"},"description":"Overrides for SSH connection configuration for a Proxmox VE node.\n"},"password":{"type":"string","description":"The password used for the SSH connection. Defaults to the value of the `password` field of the `provider` block.\n","secret":true},"privateKey":{"type":"string","description":"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.\n","secret":true},"socks5Password":{"type":"string","description":"The password for the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_PASSWORD` environment variable.\n","secret":true},"socks5Server":{"type":"string","description":"The address:port of the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_SERVER` environment variable.\n"},"socks5Username":{"type":"string","description":"The username for the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_USERNAME` environment variable.\n"},"username":{"type":"string","description":"The username used for the SSH connection. Defaults to the value of the `username` field of the `provider` block.\n"}},"type":"object"},"proxmoxve:index/ProviderSshNode:ProviderSshNode":{"properties":{"address":{"type":"string","description":"The address of the Proxmox VE node.\n"},"name":{"type":"string","description":"The name of the Proxmox VE node.\n"},"port":{"type":"integer","description":"The port of the Proxmox VE node.\n"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredOutputs":[]}}},"proxmoxve:index/Vm2Cdrom:Vm2Cdrom":{"properties":{"fileId":{"type":"string","description":"The file ID of the CD-ROM, or `cdrom|none`. Defaults to `none` to leave the CD-ROM empty. Use `cdrom` to connect to the physical drive.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["fileId"]}}},"proxmoxve:index/Vm2Clone:Vm2Clone":{"properties":{"id":{"type":"integer","description":"The ID of the VM to clone.\n"},"retries":{"type":"integer","description":"The number of retries to perform when cloning the VM (default: 3).\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["id","retries"]}}},"proxmoxve:index/Vm2Cpu:Vm2Cpu":{"properties":{"affinity":{"type":"string","description":"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.\n"},"architecture":{"type":"string","description":"The CPU architecture `\u003caarch64 | x86_64\u003e` (defaults to the host). Setting `affinity` is only allowed for `root@pam` authenticated user.\n"},"cores":{"type":"integer","description":"The number of CPU cores per socket (defaults to `1`).\n"},"flags":{"type":"array","items":{"type":"string"},"description":"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`.\n"},"hotplugged":{"type":"integer","description":"The number of hotplugged vCPUs (defaults to `0`).\n"},"limit":{"type":"integer","description":"Limit of CPU usage (defaults to `0` which means no limit).\n"},"numa":{"type":"boolean","description":"Enable NUMA (defaults to `false`).\n"},"sockets":{"type":"integer","description":"The number of CPU sockets (defaults to `1`).\n"},"type":{"type":"string","description":"Emulated CPU type, it's recommended to use `x86-64-v2-AES` or higher (defaults to `kvm64`). See https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm*virtual*machines_settings for more information.\n"},"units":{"type":"integer","description":"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.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["affinity","architecture","cores","flags","hotplugged","limit","numa","sockets","type","units"]}}},"proxmoxve:index/Vm2Timeouts:Vm2Timeouts":{"properties":{"create":{"type":"string","description":"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).\n"},"delete":{"type":"string","description":"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.\n"},"read":{"type":"string","description":"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.\n"},"update":{"type":"string","description":"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).\n"}},"type":"object"},"proxmoxve:index/Vm2Vga:Vm2Vga":{"properties":{"clipboard":{"type":"string","description":"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.\n"},"memory":{"type":"integer","description":"The VGA memory in megabytes (4-512 MB). Has no effect with serial display.\n"},"type":{"type":"string","description":"The VGA type (defaults to `std`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clipboard","memory","type"]}}},"proxmoxve:index/getVm2Clone:getVm2Clone":{"properties":{"id":{"type":"integer","description":"The ID of the VM to clone.\n"},"retries":{"type":"integer","description":"The number of retries to perform when cloning the VM (default: 3).\n"}},"type":"object","required":["id","retries"],"language":{"nodejs":{"requiredInputs":["id"]}}},"proxmoxve:index/getVm2Cpu:getVm2Cpu":{"properties":{"affinity":{"type":"string","description":"List of host cores used to execute guest processes, for example: '0,5,8-11'\n"},"architecture":{"type":"string","description":"The CPU architecture.\n"},"cores":{"type":"integer","description":"The number of CPU cores per socket.\n"},"flags":{"type":"array","items":{"type":"string"},"description":"Set of additional CPU flags.\n"},"hotplugged":{"type":"integer","description":"The number of hotplugged vCPUs.\n"},"limit":{"type":"integer","description":"Limit of CPU usage.\n"},"numa":{"type":"boolean","description":"Enable NUMA.\n"},"sockets":{"type":"integer","description":"The number of CPU sockets.\n"},"type":{"type":"string","description":"Emulated CPU type.\n"},"units":{"type":"integer","description":"CPU weight for a VM\n"}},"type":"object","required":["affinity","architecture","cores","flags","hotplugged","limit","numa","sockets","type","units"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:index/getVm2Timeouts:getVm2Timeouts":{"properties":{"read":{"type":"string","description":"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.\n"}},"type":"object"},"proxmoxve:index/getVm2Vga:getVm2Vga":{"properties":{"clipboard":{"type":"string","description":"Enable a specific clipboard.\n"},"memory":{"type":"integer","description":"The VGA memory in megabytes (4-512 MB). Has no effect with serial display.\n"},"type":{"type":"string","description":"The VGA type.\n"}},"type":"object","required":["clipboard","memory","type"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the proxmox package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"apiToken":{"type":"string","description":"The API token for the Proxmox VE API.\n","secret":true},"authTicket":{"type":"string","description":"The pre-authenticated Ticket for the Proxmox VE API.\n","secret":true},"csrfPreventionToken":{"type":"string","description":"The pre-authenticated CSRF Prevention Token for the Proxmox VE API.\n","secret":true},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\n"},"minTls":{"type":"string","description":"The minimum required TLS version for API calls.Supported values: `1.0|1.1|1.2|1.3`. Defaults to `1.3`.\n"},"otp":{"type":"string","description":"The one-time password for the Proxmox VE API.\n","deprecationMessage":"The `otp` attribute is deprecated and will be removed in a future release. Please use the `api_token` attribute instead."},"password":{"type":"string","description":"The password for the Proxmox VE API.\n","secret":true},"randomVmIdEnd":{"type":"integer","description":"The ending number for random VM / Container IDs.\n"},"randomVmIdStart":{"type":"integer","description":"The starting number for random VM / Container IDs.\n"},"randomVmIds":{"type":"boolean","description":"Whether to generate random VM / Container IDs.\n"},"ssh":{"$ref":"#/types/proxmoxve:index/ProviderSsh:ProviderSsh","description":"The SSH configuration for the Proxmox nodes.\n"},"tmpDir":{"type":"string","description":"The alternative temporary directory.\n"},"username":{"type":"string","description":"The username for the Proxmox VE API.\n"}},"inputProperties":{"apiToken":{"type":"string","description":"The API token for the Proxmox VE API.\n","secret":true},"authTicket":{"type":"string","description":"The pre-authenticated Ticket for the Proxmox VE API.\n","secret":true},"csrfPreventionToken":{"type":"string","description":"The pre-authenticated CSRF Prevention Token for the Proxmox VE API.\n","secret":true},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\n"},"minTls":{"type":"string","description":"The minimum required TLS version for API calls.Supported values: `1.0|1.1|1.2|1.3`. Defaults to `1.3`.\n"},"otp":{"type":"string","description":"The one-time password for the Proxmox VE API.\n","deprecationMessage":"The `otp` attribute is deprecated and will be removed in a future release. Please use the `api_token` attribute instead."},"password":{"type":"string","description":"The password for the Proxmox VE API.\n","secret":true},"randomVmIdEnd":{"type":"integer","description":"The ending number for random VM / Container IDs.\n"},"randomVmIdStart":{"type":"integer","description":"The starting number for random VM / Container IDs.\n"},"randomVmIds":{"type":"boolean","description":"Whether to generate random VM / Container IDs.\n"},"ssh":{"$ref":"#/types/proxmoxve:index/ProviderSsh:ProviderSsh","description":"The SSH configuration for the Proxmox nodes.\n"},"tmpDir":{"type":"string","description":"The alternative temporary directory.\n"},"username":{"type":"string","description":"The username for the Proxmox VE API.\n"}}},"resources":{"proxmoxve:Apt/repository:Repository":{"description":"Manages an APT repository of a Proxmox VE node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.apt.Repository(\"example\", {\n enabled: true,\n filePath: \"/etc/apt/sources.list\",\n index: 0,\n node: \"pve\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.apt.Repository(\"example\",\n enabled=True,\n file_path=\"/etc/apt/sources.list\",\n index=0,\n node=\"pve\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.Apt.Repository(\"example\", new()\n {\n Enabled = true,\n FilePath = \"/etc/apt/sources.list\",\n Index = 0,\n Node = \"pve\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Apt.NewRepository(ctx, \"example\", \u0026Apt.RepositoryArgs{\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tFilePath: pulumi.String(\"/etc/apt/sources.list\"),\n\t\t\tIndex: pulumi.Int(0),\n\t\t\tNode: pulumi.String(\"pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt.Repository;\nimport com.pulumi.proxmoxve.Apt.RepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Repository(\"example\", RepositoryArgs.builder()\n .enabled(true)\n .filePath(\"/etc/apt/sources.list\")\n .index(0)\n .node(\"pve\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Apt:Repository\n properties:\n enabled: true\n filePath: /etc/apt/sources.list\n index: 0\n node: pve\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nAn APT repository can be imported using a comma-separated list consisting of the name of the Proxmox VE node,\n\nthe absolute source list file path, and the index in the exact same order, e.g.:\n\n```sh\n$ pulumi import proxmoxve:Apt/repository:Repository example pve,/etc/apt/sources.list,0\n```\n\n","properties":{"comment":{"type":"string","description":"The associated comment.\n"},"components":{"type":"array","items":{"type":"string"},"description":"The list of components.\n"},"enabled":{"type":"boolean","description":"Indicates the activation status.\n"},"filePath":{"type":"string","description":"The absolute path of the source list file that contains this repository.\n"},"fileType":{"type":"string","description":"The format of the defining source list file.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"},"packageTypes":{"type":"array","items":{"type":"string"},"description":"The list of package types.\n"},"suites":{"type":"array","items":{"type":"string"},"description":"The list of package distributions.\n"},"uris":{"type":"array","items":{"type":"string"},"description":"The list of repository URIs.\n"}},"required":["comment","components","enabled","filePath","fileType","index","node","packageTypes","suites","uris"],"inputProperties":{"enabled":{"type":"boolean","description":"Indicates the activation status.\n"},"filePath":{"type":"string","description":"The absolute path of the source list file that contains this repository.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"}},"requiredInputs":["filePath","index","node"],"stateInputs":{"description":"Input properties used for looking up and filtering Repository resources.\n","properties":{"comment":{"type":"string","description":"The associated comment.\n"},"components":{"type":"array","items":{"type":"string"},"description":"The list of components.\n"},"enabled":{"type":"boolean","description":"Indicates the activation status.\n"},"filePath":{"type":"string","description":"The absolute path of the source list file that contains this repository.\n"},"fileType":{"type":"string","description":"The format of the defining source list file.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"},"packageTypes":{"type":"array","items":{"type":"string"},"description":"The list of package types.\n"},"suites":{"type":"array","items":{"type":"string"},"description":"The list of package distributions.\n"},"uris":{"type":"array","items":{"type":"string"},"description":"The list of repository URIs.\n"}},"type":"object"}},"proxmoxve:Apt/standard/repository:Repository":{"description":"Manages an APT standard repository of a Proxmox VE node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst exampleRepository = new proxmoxve.apt.standard.Repository(\"exampleRepository\", {\n handle: \"no-subscription\",\n node: \"pve\",\n});\nconst exampleApt_repositoryRepository = new proxmoxve.apt.Repository(\"exampleApt/repositoryRepository\", {\n enabled: true,\n filePath: exampleRepository.filePath,\n index: exampleRepository.index,\n node: exampleRepository.node,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample_repository = proxmoxve.apt.standard.Repository(\"exampleRepository\",\n handle=\"no-subscription\",\n node=\"pve\")\nexample_apt_repository_repository = proxmoxve.apt.Repository(\"exampleApt/repositoryRepository\",\n enabled=True,\n file_path=example_repository.file_path,\n index=example_repository.index,\n node=example_repository.node)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleRepository = new ProxmoxVE.Apt.Standard.Repository(\"exampleRepository\", new()\n {\n Handle = \"no-subscription\",\n Node = \"pve\",\n });\n\n var exampleApt_repositoryRepository = new ProxmoxVE.Apt.Repository(\"exampleApt/repositoryRepository\", new()\n {\n Enabled = true,\n FilePath = exampleRepository.FilePath,\n Index = exampleRepository.Index,\n Node = exampleRepository.Node,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleRepository, err := Apt.NewRepository(ctx, \"exampleRepository\", \u0026Apt.RepositoryArgs{\n\t\t\tHandle: pulumi.String(\"no-subscription\"),\n\t\t\tNode: pulumi.String(\"pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Apt.NewRepository(ctx, \"exampleApt/repositoryRepository\", \u0026Apt.RepositoryArgs{\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tFilePath: exampleRepository.FilePath,\n\t\t\tIndex: exampleRepository.Index,\n\t\t\tNode: exampleRepository.Node,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt.Repository;\nimport com.pulumi.proxmoxve.Apt.RepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleRepository = new Repository(\"exampleRepository\", RepositoryArgs.builder()\n .handle(\"no-subscription\")\n .node(\"pve\")\n .build());\n\n var exampleApt_repositoryRepository = new Repository(\"exampleApt/repositoryRepository\", RepositoryArgs.builder()\n .enabled(true)\n .filePath(exampleRepository.filePath())\n .index(exampleRepository.index())\n .node(exampleRepository.node())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleRepository:\n type: proxmoxve:Apt/standard:Repository\n properties:\n handle: no-subscription\n node: pve\n exampleApt/repositoryRepository:\n type: proxmoxve:Apt:Repository\n properties:\n enabled: true\n filePath: ${exampleRepository.filePath}\n index: ${exampleRepository.index}\n node: ${exampleRepository.node}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nAn APT standard repository can be imported using a comma-separated list consisting of the name of the Proxmox VE node,\n\nand the standard repository handle in the exact same order, e.g.:\n\n```sh\n$ pulumi import proxmoxve:Apt/standard/repository:Repository example pve,no-subscription\n```\n\n","properties":{"description":{"type":"string","description":"The description of the APT standard repository.\n"},"filePath":{"type":"string","description":"The absolute path of the source list file that contains this standard repository.\n"},"handle":{"type":"string","description":"The handle of the APT standard repository. Must be `ceph-quincy-enterprise` | `ceph-quincy-no-subscription` | `ceph-quincy-test` | `ceph-reef-enterprise` | `ceph-reef-no-subscription` | `ceph-reef-test` | `enterprise` | `no-subscription` | `test`.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"name":{"type":"string","description":"The name of the APT standard repository.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"},"status":{"type":"integer","description":"Indicates the activation status.\n"}},"required":["description","filePath","handle","index","name","node","status"],"inputProperties":{"handle":{"type":"string","description":"The handle of the APT standard repository. Must be `ceph-quincy-enterprise` | `ceph-quincy-no-subscription` | `ceph-quincy-test` | `ceph-reef-enterprise` | `ceph-reef-no-subscription` | `ceph-reef-test` | `enterprise` | `no-subscription` | `test`.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"}},"requiredInputs":["handle","node"],"stateInputs":{"description":"Input properties used for looking up and filtering Repository resources.\n","properties":{"description":{"type":"string","description":"The description of the APT standard repository.\n"},"filePath":{"type":"string","description":"The absolute path of the source list file that contains this standard repository.\n"},"handle":{"type":"string","description":"The handle of the APT standard repository. Must be `ceph-quincy-enterprise` | `ceph-quincy-no-subscription` | `ceph-quincy-test` | `ceph-reef-enterprise` | `ceph-reef-no-subscription` | `ceph-reef-test` | `enterprise` | `no-subscription` | `test`.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"name":{"type":"string","description":"The name of the APT standard repository.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"},"status":{"type":"integer","description":"Indicates the activation status.\n"}},"type":"object"}},"proxmoxve:CT/container:Container":{"description":"Manages a container.\n\n## Import\n\nInstances can be imported using the `node_name` and the `vm_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:CT/container:Container ubuntu_container first-node/1234\n```\n\n","properties":{"clone":{"$ref":"#/types/proxmoxve:CT/ContainerClone:ContainerClone","description":"The cloning configuration.\n"},"console":{"$ref":"#/types/proxmoxve:CT/ContainerConsole:ContainerConsole","description":"The console configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:CT/ContainerCpu:ContainerCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disk":{"$ref":"#/types/proxmoxve:CT/ContainerDisk:ContainerDisk","description":"The disk configuration.\n"},"features":{"$ref":"#/types/proxmoxve:CT/ContainerFeatures:ContainerFeatures","description":"The container feature flags. Changing flags (except nesting) is only allowed for `root@pam` authenticated user.\n"},"hookScriptFileId":{"type":"string","description":"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).\n"},"initialization":{"$ref":"#/types/proxmoxve:CT/ContainerInitialization:ContainerInitialization","description":"The initialization configuration.\n"},"memory":{"$ref":"#/types/proxmoxve:CT/ContainerMemory:ContainerMemory","description":"The memory configuration.\n"},"mountPoints":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerMountPoint:ContainerMountPoint"},"description":"A mount point\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerNetworkInterface:ContainerNetworkInterface"},"description":"A network interface (multiple blocks\nsupported).\n"},"nodeName":{"type":"string","description":"The name of the node to assign the container to.\n"},"operatingSystem":{"$ref":"#/types/proxmoxve:CT/ContainerOperatingSystem:ContainerOperatingSystem","description":"The Operating System configuration.\n"},"poolId":{"type":"string","description":"The identifier for a pool to assign the container to.\n"},"protection":{"type":"boolean","description":"Whether to set the protection flag of the container (defaults to `false`). This will prevent the container itself and its disk for remove/update operations.\n"},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host\nsystem boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:CT/ContainerStartup:ContainerStartup","description":"Defines startup and shutdown behavior of the container.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags the container tags. This is only meta\ninformation (defaults to `[]`). Note: Proxmox always sorts the container tags.\nIf the list in template is not sorted, then Proxmox will always report a\ndifference on the resource. You may use the `ignore_changes` lifecycle\nmeta-argument to ignore changes to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n"},"timeoutClone":{"type":"integer","description":"Timeout for cloning a container in seconds (defaults to 1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a container in seconds (defaults to 1800).\n"},"timeoutDelete":{"type":"integer","description":"Timeout for deleting a container in seconds (defaults to 60).\n"},"timeoutStart":{"type":"integer","description":"Start container timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (`timeout_create` / `timeout_clone`) is used instead."},"timeoutUpdate":{"type":"integer","description":"Timeout for updating a container in seconds (defaults to 1800).\n"},"unprivileged":{"type":"boolean","description":"Whether the container runs as unprivileged on\nthe host (defaults to `false`).\n"},"vmId":{"type":"integer","description":"The container identifier\n"}},"required":["nodeName","vmId"],"inputProperties":{"clone":{"$ref":"#/types/proxmoxve:CT/ContainerClone:ContainerClone","description":"The cloning configuration.\n"},"console":{"$ref":"#/types/proxmoxve:CT/ContainerConsole:ContainerConsole","description":"The console configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:CT/ContainerCpu:ContainerCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disk":{"$ref":"#/types/proxmoxve:CT/ContainerDisk:ContainerDisk","description":"The disk configuration.\n","willReplaceOnChanges":true},"features":{"$ref":"#/types/proxmoxve:CT/ContainerFeatures:ContainerFeatures","description":"The container feature flags. Changing flags (except nesting) is only allowed for `root@pam` authenticated user.\n"},"hookScriptFileId":{"type":"string","description":"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).\n"},"initialization":{"$ref":"#/types/proxmoxve:CT/ContainerInitialization:ContainerInitialization","description":"The initialization configuration.\n"},"memory":{"$ref":"#/types/proxmoxve:CT/ContainerMemory:ContainerMemory","description":"The memory configuration.\n"},"mountPoints":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerMountPoint:ContainerMountPoint"},"description":"A mount point\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerNetworkInterface:ContainerNetworkInterface"},"description":"A network interface (multiple blocks\nsupported).\n"},"nodeName":{"type":"string","description":"The name of the node to assign the container to.\n","willReplaceOnChanges":true},"operatingSystem":{"$ref":"#/types/proxmoxve:CT/ContainerOperatingSystem:ContainerOperatingSystem","description":"The Operating System configuration.\n","willReplaceOnChanges":true},"poolId":{"type":"string","description":"The identifier for a pool to assign the container to.\n","willReplaceOnChanges":true},"protection":{"type":"boolean","description":"Whether to set the protection flag of the container (defaults to `false`). This will prevent the container itself and its disk for remove/update operations.\n"},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host\nsystem boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:CT/ContainerStartup:ContainerStartup","description":"Defines startup and shutdown behavior of the container.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags the container tags. This is only meta\ninformation (defaults to `[]`). Note: Proxmox always sorts the container tags.\nIf the list in template is not sorted, then Proxmox will always report a\ndifference on the resource. You may use the `ignore_changes` lifecycle\nmeta-argument to ignore changes to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n","willReplaceOnChanges":true},"timeoutClone":{"type":"integer","description":"Timeout for cloning a container in seconds (defaults to 1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a container in seconds (defaults to 1800).\n"},"timeoutDelete":{"type":"integer","description":"Timeout for deleting a container in seconds (defaults to 60).\n"},"timeoutStart":{"type":"integer","description":"Start container timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (`timeout_create` / `timeout_clone`) is used instead."},"timeoutUpdate":{"type":"integer","description":"Timeout for updating a container in seconds (defaults to 1800).\n"},"unprivileged":{"type":"boolean","description":"Whether the container runs as unprivileged on\nthe host (defaults to `false`).\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The container identifier\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering Container resources.\n","properties":{"clone":{"$ref":"#/types/proxmoxve:CT/ContainerClone:ContainerClone","description":"The cloning configuration.\n"},"console":{"$ref":"#/types/proxmoxve:CT/ContainerConsole:ContainerConsole","description":"The console configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:CT/ContainerCpu:ContainerCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disk":{"$ref":"#/types/proxmoxve:CT/ContainerDisk:ContainerDisk","description":"The disk configuration.\n","willReplaceOnChanges":true},"features":{"$ref":"#/types/proxmoxve:CT/ContainerFeatures:ContainerFeatures","description":"The container feature flags. Changing flags (except nesting) is only allowed for `root@pam` authenticated user.\n"},"hookScriptFileId":{"type":"string","description":"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).\n"},"initialization":{"$ref":"#/types/proxmoxve:CT/ContainerInitialization:ContainerInitialization","description":"The initialization configuration.\n"},"memory":{"$ref":"#/types/proxmoxve:CT/ContainerMemory:ContainerMemory","description":"The memory configuration.\n"},"mountPoints":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerMountPoint:ContainerMountPoint"},"description":"A mount point\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerNetworkInterface:ContainerNetworkInterface"},"description":"A network interface (multiple blocks\nsupported).\n"},"nodeName":{"type":"string","description":"The name of the node to assign the container to.\n","willReplaceOnChanges":true},"operatingSystem":{"$ref":"#/types/proxmoxve:CT/ContainerOperatingSystem:ContainerOperatingSystem","description":"The Operating System configuration.\n","willReplaceOnChanges":true},"poolId":{"type":"string","description":"The identifier for a pool to assign the container to.\n","willReplaceOnChanges":true},"protection":{"type":"boolean","description":"Whether to set the protection flag of the container (defaults to `false`). This will prevent the container itself and its disk for remove/update operations.\n"},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host\nsystem boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:CT/ContainerStartup:ContainerStartup","description":"Defines startup and shutdown behavior of the container.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags the container tags. This is only meta\ninformation (defaults to `[]`). Note: Proxmox always sorts the container tags.\nIf the list in template is not sorted, then Proxmox will always report a\ndifference on the resource. You may use the `ignore_changes` lifecycle\nmeta-argument to ignore changes to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n","willReplaceOnChanges":true},"timeoutClone":{"type":"integer","description":"Timeout for cloning a container in seconds (defaults to 1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a container in seconds (defaults to 1800).\n"},"timeoutDelete":{"type":"integer","description":"Timeout for deleting a container in seconds (defaults to 60).\n"},"timeoutStart":{"type":"integer","description":"Start container timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (`timeout_create` / `timeout_clone`) is used instead."},"timeoutUpdate":{"type":"integer","description":"Timeout for updating a container in seconds (defaults to 1800).\n"},"unprivileged":{"type":"boolean","description":"Whether the container runs as unprivileged on\nthe host (defaults to `false`).\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The container identifier\n"}},"type":"object"}},"proxmoxve:Cluster/options:Options":{"description":"Manages Proxmox VE Cluster Datacenter options.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Cluster.Options;\nimport com.pulumi.proxmoxve.Cluster.OptionsArgs;\nimport com.pulumi.proxmoxve.Cluster.inputs.OptionsNextIdArgs;\nimport com.pulumi.proxmoxve.Cluster.inputs.OptionsNotifyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var options = new Options(\"options\", OptionsArgs.builder()\n .bandwidthLimitDefault(666666)\n .bandwidthLimitMigration(555555)\n .emailFrom(\"ged@gont.earthsea\")\n .keyboard(\"pl\")\n .language(\"en\")\n .maxWorkers(5)\n .migrationCidr(\"10.0.0.0/8\")\n .migrationType(\"secure\")\n .nextId(OptionsNextIdArgs.builder()\n .lower(100)\n .upper(999999999)\n .build())\n .notify(OptionsNotifyArgs.builder()\n .ha_fencing_mode(\"never\")\n .ha_fencing_target(\"default-matcher\")\n .package_replication(\"always\")\n .package_replication_target(\"default-matcher\")\n .package_updates(\"always\")\n .package_updates_target(\"default-matcher\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n options:\n type: proxmoxve:Cluster:Options\n properties:\n bandwidthLimitDefault: 666666\n bandwidthLimitMigration: 555555\n emailFrom: ged@gont.earthsea\n keyboard: pl\n language: en\n maxWorkers: 5\n migrationCidr: 10.0.0.0/8\n migrationType: secure\n nextId:\n lower: 100\n upper: 9.99999999e+08\n notify:\n ha_fencing_mode: never\n ha_fencing_target: default-matcher\n package_replication: always\n package_replication_target: default-matcher\n package_updates: always\n package_updates_target: default-matcher\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nCluster options are global and can be imported using e.g.:\n\n```sh\n$ pulumi import proxmoxve:Cluster/options:Options options cluster\n```\n\n","properties":{"bandwidthLimitClone":{"type":"integer","description":"Clone I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitDefault":{"type":"integer","description":"Default I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMigration":{"type":"integer","description":"Migration I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMove":{"type":"integer","description":"Move I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitRestore":{"type":"integer","description":"Restore I/O bandwidth limit in KiB/s.\n"},"console":{"type":"string","description":"Select the default Console viewer. Must be `applet` | `vv`| `html5` | `xtermjs`. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer compatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.\n"},"crsHa":{"type":"string","description":"Cluster resource scheduling setting for HA. Must be `static` | `basic` (default is `basic`).\n"},"crsHaRebalanceOnStart":{"type":"boolean","description":"Cluster resource scheduling setting for HA rebalance on start.\n"},"description":{"type":"string","description":"Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.\n"},"emailFrom":{"type":"string","description":"email address to send notification from (default is root@$hostname).\n"},"haShutdownPolicy":{"type":"string","description":"Cluster wide HA shutdown policy (). Must be `freeze` | `failover` | `migrate` | `conditional` (default is `conditional`).\n"},"httpProxy":{"type":"string","description":"Specify external http proxy which is used for downloads (example: `http://username:password@host:port/`).\n"},"keyboard":{"type":"string","description":"Default keyboard layout for vnc server. Must be `de` | `de-ch` | `da` | `en-gb` | `en-us` | `es` | `fi` | `fr` | `fr-be` | `fr-ca` | `fr-ch` | `hu` | `is` | `it` | `ja` | `lt` | `mk` | `nl` | `no` | `pl` | `pt` | `pt-br` | `sv` | `sl` | `tr`.\n"},"language":{"type":"string","description":"Default GUI language. Must be `ca` | `da` | `de` | `en` | `es` | `eu` | `fa` | `fr` | `he` | `it` | `ja` | `nb` | `nn` | `pl` | `pt_BR` | `ru` | `sl` | `sv` | `tr` | `zh_CN` | `zh_TW`.\n"},"macPrefix":{"type":"string","description":"Prefix for autogenerated MAC addresses.\n"},"maxWorkers":{"type":"integer","description":"Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.\n"},"migrationCidr":{"type":"string","description":"Cluster wide migration network CIDR.\n"},"migrationType":{"type":"string","description":"Cluster wide migration type. Must be `secure` | `insecure` (default is `secure`).\n"},"nextId":{"$ref":"#/types/proxmoxve:Cluster/OptionsNextId:OptionsNextId","description":"The ranges for the next free VM ID auto-selection pool.\n"},"notify":{"$ref":"#/types/proxmoxve:Cluster/OptionsNotify:OptionsNotify","description":"Cluster-wide notification settings.\n"}},"required":["crsHa","macPrefix"],"inputProperties":{"bandwidthLimitClone":{"type":"integer","description":"Clone I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitDefault":{"type":"integer","description":"Default I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMigration":{"type":"integer","description":"Migration I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMove":{"type":"integer","description":"Move I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitRestore":{"type":"integer","description":"Restore I/O bandwidth limit in KiB/s.\n"},"console":{"type":"string","description":"Select the default Console viewer. Must be `applet` | `vv`| `html5` | `xtermjs`. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer compatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.\n"},"crsHa":{"type":"string","description":"Cluster resource scheduling setting for HA. Must be `static` | `basic` (default is `basic`).\n"},"crsHaRebalanceOnStart":{"type":"boolean","description":"Cluster resource scheduling setting for HA rebalance on start.\n"},"description":{"type":"string","description":"Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.\n"},"emailFrom":{"type":"string","description":"email address to send notification from (default is root@$hostname).\n"},"haShutdownPolicy":{"type":"string","description":"Cluster wide HA shutdown policy (). Must be `freeze` | `failover` | `migrate` | `conditional` (default is `conditional`).\n"},"httpProxy":{"type":"string","description":"Specify external http proxy which is used for downloads (example: `http://username:password@host:port/`).\n"},"keyboard":{"type":"string","description":"Default keyboard layout for vnc server. Must be `de` | `de-ch` | `da` | `en-gb` | `en-us` | `es` | `fi` | `fr` | `fr-be` | `fr-ca` | `fr-ch` | `hu` | `is` | `it` | `ja` | `lt` | `mk` | `nl` | `no` | `pl` | `pt` | `pt-br` | `sv` | `sl` | `tr`.\n"},"language":{"type":"string","description":"Default GUI language. Must be `ca` | `da` | `de` | `en` | `es` | `eu` | `fa` | `fr` | `he` | `it` | `ja` | `nb` | `nn` | `pl` | `pt_BR` | `ru` | `sl` | `sv` | `tr` | `zh_CN` | `zh_TW`.\n"},"macPrefix":{"type":"string","description":"Prefix for autogenerated MAC addresses.\n"},"maxWorkers":{"type":"integer","description":"Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.\n"},"migrationCidr":{"type":"string","description":"Cluster wide migration network CIDR.\n"},"migrationType":{"type":"string","description":"Cluster wide migration type. Must be `secure` | `insecure` (default is `secure`).\n"},"nextId":{"$ref":"#/types/proxmoxve:Cluster/OptionsNextId:OptionsNextId","description":"The ranges for the next free VM ID auto-selection pool.\n"},"notify":{"$ref":"#/types/proxmoxve:Cluster/OptionsNotify:OptionsNotify","description":"Cluster-wide notification settings.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Options resources.\n","properties":{"bandwidthLimitClone":{"type":"integer","description":"Clone I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitDefault":{"type":"integer","description":"Default I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMigration":{"type":"integer","description":"Migration I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMove":{"type":"integer","description":"Move I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitRestore":{"type":"integer","description":"Restore I/O bandwidth limit in KiB/s.\n"},"console":{"type":"string","description":"Select the default Console viewer. Must be `applet` | `vv`| `html5` | `xtermjs`. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer compatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.\n"},"crsHa":{"type":"string","description":"Cluster resource scheduling setting for HA. Must be `static` | `basic` (default is `basic`).\n"},"crsHaRebalanceOnStart":{"type":"boolean","description":"Cluster resource scheduling setting for HA rebalance on start.\n"},"description":{"type":"string","description":"Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.\n"},"emailFrom":{"type":"string","description":"email address to send notification from (default is root@$hostname).\n"},"haShutdownPolicy":{"type":"string","description":"Cluster wide HA shutdown policy (). Must be `freeze` | `failover` | `migrate` | `conditional` (default is `conditional`).\n"},"httpProxy":{"type":"string","description":"Specify external http proxy which is used for downloads (example: `http://username:password@host:port/`).\n"},"keyboard":{"type":"string","description":"Default keyboard layout for vnc server. Must be `de` | `de-ch` | `da` | `en-gb` | `en-us` | `es` | `fi` | `fr` | `fr-be` | `fr-ca` | `fr-ch` | `hu` | `is` | `it` | `ja` | `lt` | `mk` | `nl` | `no` | `pl` | `pt` | `pt-br` | `sv` | `sl` | `tr`.\n"},"language":{"type":"string","description":"Default GUI language. Must be `ca` | `da` | `de` | `en` | `es` | `eu` | `fa` | `fr` | `he` | `it` | `ja` | `nb` | `nn` | `pl` | `pt_BR` | `ru` | `sl` | `sv` | `tr` | `zh_CN` | `zh_TW`.\n"},"macPrefix":{"type":"string","description":"Prefix for autogenerated MAC addresses.\n"},"maxWorkers":{"type":"integer","description":"Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.\n"},"migrationCidr":{"type":"string","description":"Cluster wide migration network CIDR.\n"},"migrationType":{"type":"string","description":"Cluster wide migration type. Must be `secure` | `insecure` (default is `secure`).\n"},"nextId":{"$ref":"#/types/proxmoxve:Cluster/OptionsNextId:OptionsNextId","description":"The ranges for the next free VM ID auto-selection pool.\n"},"notify":{"$ref":"#/types/proxmoxve:Cluster/OptionsNotify:OptionsNotify","description":"Cluster-wide notification settings.\n"}},"type":"object"}},"proxmoxve:Download/file:File":{"description":"Manages files upload using PVE download-url API. It can be fully compatible and faster replacement for image files created using `proxmoxve.Storage.File`. Supports images for VMs (ISO images) and LXC (CT Templates).\n\n\u003e Besides the `Datastore.AllocateTemplate` privilege, this resource requires both the `Sys.Audit` and `Sys.Modify` privileges.\u003cbr\u003e\u003cbr\u003e\nFor more details, see the [`download-url`](https://pve.proxmox.com/pve-docs/api-viewer/index.html#/nodes/{node}/storage/{storage}/download-url) API documentation under the \"Required permissions\" section.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst release20231228Debian12BookwormQcow2Img = new proxmoxve.download.File(\"release20231228Debian12BookwormQcow2Img\", {\n checksum: \"d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\",\n checksumAlgorithm: \"sha512\",\n contentType: \"iso\",\n datastoreId: \"local\",\n fileName: \"debian-12-generic-amd64-20231228-1609.img\",\n nodeName: \"pve\",\n url: \"https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\",\n});\nconst latestDebian12BookwormQcow2Img = new proxmoxve.download.File(\"latestDebian12BookwormQcow2Img\", {\n contentType: \"iso\",\n datastoreId: \"local\",\n fileName: \"debian-12-generic-amd64.qcow2.img\",\n nodeName: \"pve\",\n url: \"https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\",\n});\nconst latestUbuntu22JammyQcow2Img = new proxmoxve.download.File(\"latestUbuntu22JammyQcow2Img\", {\n contentType: \"iso\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n url: \"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\",\n});\nconst latestStaticUbuntu24NobleQcow2Img = new proxmoxve.download.File(\"latestStaticUbuntu24NobleQcow2Img\", {\n contentType: \"iso\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n overwrite: false,\n url: \"https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\",\n});\nconst release20231211Ubuntu22JammyLxcImg = new proxmoxve.download.File(\"release20231211Ubuntu22JammyLxcImg\", {\n checksum: \"c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\",\n checksumAlgorithm: \"sha256\",\n contentType: \"vztmpl\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n uploadTimeout: 4444,\n url: \"https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\",\n});\nconst latestUbuntu22JammyLxcImg = new proxmoxve.download.File(\"latestUbuntu22JammyLxcImg\", {\n contentType: \"vztmpl\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n url: \"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nrelease20231228_debian12_bookworm_qcow2_img = proxmoxve.download.File(\"release20231228Debian12BookwormQcow2Img\",\n checksum=\"d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\",\n checksum_algorithm=\"sha512\",\n content_type=\"iso\",\n datastore_id=\"local\",\n file_name=\"debian-12-generic-amd64-20231228-1609.img\",\n node_name=\"pve\",\n url=\"https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\")\nlatest_debian12_bookworm_qcow2_img = proxmoxve.download.File(\"latestDebian12BookwormQcow2Img\",\n content_type=\"iso\",\n datastore_id=\"local\",\n file_name=\"debian-12-generic-amd64.qcow2.img\",\n node_name=\"pve\",\n url=\"https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\")\nlatest_ubuntu22_jammy_qcow2_img = proxmoxve.download.File(\"latestUbuntu22JammyQcow2Img\",\n content_type=\"iso\",\n datastore_id=\"local\",\n node_name=\"pve\",\n url=\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\")\nlatest_static_ubuntu24_noble_qcow2_img = proxmoxve.download.File(\"latestStaticUbuntu24NobleQcow2Img\",\n content_type=\"iso\",\n datastore_id=\"local\",\n node_name=\"pve\",\n overwrite=False,\n url=\"https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\")\nrelease20231211_ubuntu22_jammy_lxc_img = proxmoxve.download.File(\"release20231211Ubuntu22JammyLxcImg\",\n checksum=\"c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\",\n checksum_algorithm=\"sha256\",\n content_type=\"vztmpl\",\n datastore_id=\"local\",\n node_name=\"pve\",\n upload_timeout=4444,\n url=\"https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\")\nlatest_ubuntu22_jammy_lxc_img = proxmoxve.download.File(\"latestUbuntu22JammyLxcImg\",\n content_type=\"vztmpl\",\n datastore_id=\"local\",\n node_name=\"pve\",\n url=\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var release20231228Debian12BookwormQcow2Img = new ProxmoxVE.Download.File(\"release20231228Debian12BookwormQcow2Img\", new()\n {\n Checksum = \"d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\",\n ChecksumAlgorithm = \"sha512\",\n ContentType = \"iso\",\n DatastoreId = \"local\",\n FileName = \"debian-12-generic-amd64-20231228-1609.img\",\n NodeName = \"pve\",\n Url = \"https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\",\n });\n\n var latestDebian12BookwormQcow2Img = new ProxmoxVE.Download.File(\"latestDebian12BookwormQcow2Img\", new()\n {\n ContentType = \"iso\",\n DatastoreId = \"local\",\n FileName = \"debian-12-generic-amd64.qcow2.img\",\n NodeName = \"pve\",\n Url = \"https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\",\n });\n\n var latestUbuntu22JammyQcow2Img = new ProxmoxVE.Download.File(\"latestUbuntu22JammyQcow2Img\", new()\n {\n ContentType = \"iso\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n Url = \"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\",\n });\n\n var latestStaticUbuntu24NobleQcow2Img = new ProxmoxVE.Download.File(\"latestStaticUbuntu24NobleQcow2Img\", new()\n {\n ContentType = \"iso\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n Overwrite = false,\n Url = \"https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\",\n });\n\n var release20231211Ubuntu22JammyLxcImg = new ProxmoxVE.Download.File(\"release20231211Ubuntu22JammyLxcImg\", new()\n {\n Checksum = \"c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\",\n ChecksumAlgorithm = \"sha256\",\n ContentType = \"vztmpl\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n UploadTimeout = 4444,\n Url = \"https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\",\n });\n\n var latestUbuntu22JammyLxcImg = new ProxmoxVE.Download.File(\"latestUbuntu22JammyLxcImg\", new()\n {\n ContentType = \"vztmpl\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n Url = \"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Download\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Download.NewFile(ctx, \"release20231228Debian12BookwormQcow2Img\", \u0026Download.FileArgs{\n\t\t\tChecksum: pulumi.String(\"d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\"),\n\t\t\tChecksumAlgorithm: pulumi.String(\"sha512\"),\n\t\t\tContentType: pulumi.String(\"iso\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tFileName: pulumi.String(\"debian-12-generic-amd64-20231228-1609.img\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tUrl: pulumi.String(\"https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Download.NewFile(ctx, \"latestDebian12BookwormQcow2Img\", \u0026Download.FileArgs{\n\t\t\tContentType: pulumi.String(\"iso\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tFileName: pulumi.String(\"debian-12-generic-amd64.qcow2.img\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tUrl: pulumi.String(\"https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Download.NewFile(ctx, \"latestUbuntu22JammyQcow2Img\", \u0026Download.FileArgs{\n\t\t\tContentType: pulumi.String(\"iso\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tUrl: pulumi.String(\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Download.NewFile(ctx, \"latestStaticUbuntu24NobleQcow2Img\", \u0026Download.FileArgs{\n\t\t\tContentType: pulumi.String(\"iso\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tOverwrite: pulumi.Bool(false),\n\t\t\tUrl: pulumi.String(\"https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Download.NewFile(ctx, \"release20231211Ubuntu22JammyLxcImg\", \u0026Download.FileArgs{\n\t\t\tChecksum: pulumi.String(\"c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\"),\n\t\t\tChecksumAlgorithm: pulumi.String(\"sha256\"),\n\t\t\tContentType: pulumi.String(\"vztmpl\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tUploadTimeout: pulumi.Int(4444),\n\t\t\tUrl: pulumi.String(\"https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Download.NewFile(ctx, \"latestUbuntu22JammyLxcImg\", \u0026Download.FileArgs{\n\t\t\tContentType: pulumi.String(\"vztmpl\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tUrl: pulumi.String(\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Download.File;\nimport com.pulumi.proxmoxve.Download.FileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var release20231228Debian12BookwormQcow2Img = new File(\"release20231228Debian12BookwormQcow2Img\", FileArgs.builder()\n .checksum(\"d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\")\n .checksumAlgorithm(\"sha512\")\n .contentType(\"iso\")\n .datastoreId(\"local\")\n .fileName(\"debian-12-generic-amd64-20231228-1609.img\")\n .nodeName(\"pve\")\n .url(\"https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\")\n .build());\n\n var latestDebian12BookwormQcow2Img = new File(\"latestDebian12BookwormQcow2Img\", FileArgs.builder()\n .contentType(\"iso\")\n .datastoreId(\"local\")\n .fileName(\"debian-12-generic-amd64.qcow2.img\")\n .nodeName(\"pve\")\n .url(\"https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\")\n .build());\n\n var latestUbuntu22JammyQcow2Img = new File(\"latestUbuntu22JammyQcow2Img\", FileArgs.builder()\n .contentType(\"iso\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .url(\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\")\n .build());\n\n var latestStaticUbuntu24NobleQcow2Img = new File(\"latestStaticUbuntu24NobleQcow2Img\", FileArgs.builder()\n .contentType(\"iso\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .overwrite(false)\n .url(\"https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\")\n .build());\n\n var release20231211Ubuntu22JammyLxcImg = new File(\"release20231211Ubuntu22JammyLxcImg\", FileArgs.builder()\n .checksum(\"c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\")\n .checksumAlgorithm(\"sha256\")\n .contentType(\"vztmpl\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .uploadTimeout(4444)\n .url(\"https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\")\n .build());\n\n var latestUbuntu22JammyLxcImg = new File(\"latestUbuntu22JammyLxcImg\", FileArgs.builder()\n .contentType(\"vztmpl\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .url(\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n release20231228Debian12BookwormQcow2Img:\n type: proxmoxve:Download:File\n properties:\n checksum: d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\n checksumAlgorithm: sha512\n contentType: iso\n datastoreId: local\n fileName: debian-12-generic-amd64-20231228-1609.img\n nodeName: pve\n url: https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\n latestDebian12BookwormQcow2Img:\n type: proxmoxve:Download:File\n properties:\n contentType: iso\n datastoreId: local\n fileName: debian-12-generic-amd64.qcow2.img\n nodeName: pve\n url: https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\n latestUbuntu22JammyQcow2Img:\n type: proxmoxve:Download:File\n properties:\n contentType: iso\n datastoreId: local\n nodeName: pve\n url: https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\n latestStaticUbuntu24NobleQcow2Img:\n type: proxmoxve:Download:File\n properties:\n contentType: iso\n datastoreId: local\n nodeName: pve\n overwrite: false\n url: https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\n release20231211Ubuntu22JammyLxcImg:\n type: proxmoxve:Download:File\n properties:\n checksum: c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\n checksumAlgorithm: sha256\n contentType: vztmpl\n datastoreId: local\n nodeName: pve\n uploadTimeout: 4444\n url: https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\n latestUbuntu22JammyLxcImg:\n type: proxmoxve:Download:File\n properties:\n contentType: vztmpl\n datastoreId: local\n nodeName: pve\n url: https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"checksum":{"type":"string","description":"The expected checksum of the file.\n"},"checksumAlgorithm":{"type":"string","description":"The algorithm to calculate the checksum of the file. Must be `md5` | `sha1` | `sha224` | `sha256` | `sha384` | `sha512`.\n"},"contentType":{"type":"string","description":"The file content type. Must be `iso` for VM images or `vztmpl` for LXC images.\n"},"datastoreId":{"type":"string","description":"The identifier for the target datastore.\n"},"decompressionAlgorithm":{"type":"string","description":"Decompress the downloaded file using the specified compression algorithm. Must be one of `gz` | `lzo` | `zst` | `bz2`.\n"},"fileName":{"type":"string","description":"The file name. If not provided, it is calculated using `url`. PVE will raise 'wrong file extension' error for some popular extensions file `.raw` or `.qcow2`. Workaround is to use e.g. `.img` instead.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"overwrite":{"type":"boolean","description":"If `true` and size of uploaded file is different, than size from `url` Content-Length header, file will be downloaded again. If `false`, there will be no checks.\n"},"overwriteUnmanaged":{"type":"boolean","description":"If `true` and a file with the same name already exists in the datastore, it will be deleted and the new file will be downloaded. If `false` and the file already exists, an error will be returned.\n"},"size":{"type":"integer","description":"The file size.\n"},"uploadTimeout":{"type":"integer","description":"The file download timeout seconds. Default is 600 (10min).\n"},"url":{"type":"string","description":"The URL to download the file from. Format `https?://.*`.\n"},"verify":{"type":"boolean","description":"By default `true`. If `false`, no SSL/TLS certificates will be verified.\n"}},"required":["contentType","datastoreId","fileName","nodeName","overwrite","overwriteUnmanaged","size","uploadTimeout","url","verify"],"inputProperties":{"checksum":{"type":"string","description":"The expected checksum of the file.\n"},"checksumAlgorithm":{"type":"string","description":"The algorithm to calculate the checksum of the file. Must be `md5` | `sha1` | `sha224` | `sha256` | `sha384` | `sha512`.\n"},"contentType":{"type":"string","description":"The file content type. Must be `iso` for VM images or `vztmpl` for LXC images.\n"},"datastoreId":{"type":"string","description":"The identifier for the target datastore.\n"},"decompressionAlgorithm":{"type":"string","description":"Decompress the downloaded file using the specified compression algorithm. Must be one of `gz` | `lzo` | `zst` | `bz2`.\n"},"fileName":{"type":"string","description":"The file name. If not provided, it is calculated using `url`. PVE will raise 'wrong file extension' error for some popular extensions file `.raw` or `.qcow2`. Workaround is to use e.g. `.img` instead.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"overwrite":{"type":"boolean","description":"If `true` and size of uploaded file is different, than size from `url` Content-Length header, file will be downloaded again. If `false`, there will be no checks.\n"},"overwriteUnmanaged":{"type":"boolean","description":"If `true` and a file with the same name already exists in the datastore, it will be deleted and the new file will be downloaded. If `false` and the file already exists, an error will be returned.\n"},"uploadTimeout":{"type":"integer","description":"The file download timeout seconds. Default is 600 (10min).\n"},"url":{"type":"string","description":"The URL to download the file from. Format `https?://.*`.\n"},"verify":{"type":"boolean","description":"By default `true`. If `false`, no SSL/TLS certificates will be verified.\n"}},"requiredInputs":["contentType","datastoreId","nodeName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering File resources.\n","properties":{"checksum":{"type":"string","description":"The expected checksum of the file.\n"},"checksumAlgorithm":{"type":"string","description":"The algorithm to calculate the checksum of the file. Must be `md5` | `sha1` | `sha224` | `sha256` | `sha384` | `sha512`.\n"},"contentType":{"type":"string","description":"The file content type. Must be `iso` for VM images or `vztmpl` for LXC images.\n"},"datastoreId":{"type":"string","description":"The identifier for the target datastore.\n"},"decompressionAlgorithm":{"type":"string","description":"Decompress the downloaded file using the specified compression algorithm. Must be one of `gz` | `lzo` | `zst` | `bz2`.\n"},"fileName":{"type":"string","description":"The file name. If not provided, it is calculated using `url`. PVE will raise 'wrong file extension' error for some popular extensions file `.raw` or `.qcow2`. Workaround is to use e.g. `.img` instead.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"overwrite":{"type":"boolean","description":"If `true` and size of uploaded file is different, than size from `url` Content-Length header, file will be downloaded again. If `false`, there will be no checks.\n"},"overwriteUnmanaged":{"type":"boolean","description":"If `true` and a file with the same name already exists in the datastore, it will be deleted and the new file will be downloaded. If `false` and the file already exists, an error will be returned.\n"},"size":{"type":"integer","description":"The file size.\n"},"uploadTimeout":{"type":"integer","description":"The file download timeout seconds. Default is 600 (10min).\n"},"url":{"type":"string","description":"The URL to download the file from. Format `https?://.*`.\n"},"verify":{"type":"boolean","description":"By default `true`. If `false`, no SSL/TLS certificates will be verified.\n"}},"type":"object"}},"proxmoxve:HA/hAGroup:HAGroup":{"description":"Manages a High Availability group in a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.ha.HAGroup(\"example\", {\n group: \"example\",\n comment: \"This is a comment.\",\n nodes: {\n node1: undefined,\n node2: 2,\n node3: 1,\n },\n restricted: true,\n noFailback: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.ha.HAGroup(\"example\",\n group=\"example\",\n comment=\"This is a comment.\",\n nodes={\n \"node1\": None,\n \"node2\": 2,\n \"node3\": 1,\n },\n restricted=True,\n no_failback=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.HA.HAGroup(\"example\", new()\n {\n Group = \"example\",\n Comment = \"This is a comment.\",\n Nodes = \n {\n { \"node1\", null },\n { \"node2\", 2 },\n { \"node3\", 1 },\n },\n Restricted = true,\n NoFailback = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := HA.NewHAGroup(ctx, \"example\", \u0026HA.HAGroupArgs{\n\t\t\tGroup: pulumi.String(\"example\"),\n\t\t\tComment: pulumi.String(\"This is a comment.\"),\n\t\t\tNodes: pulumi.IntMap{\n\t\t\t\t\"node1\": nil,\n\t\t\t\t\"node2\": pulumi.Int(2),\n\t\t\t\t\"node3\": pulumi.Int(1),\n\t\t\t},\n\t\t\tRestricted: pulumi.Bool(true),\n\t\t\tNoFailback: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAGroup;\nimport com.pulumi.proxmoxve.HA.HAGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new HAGroup(\"example\", HAGroupArgs.builder()\n .group(\"example\")\n .comment(\"This is a comment.\")\n .nodes(Map.ofEntries(\n Map.entry(\"node1\", null),\n Map.entry(\"node2\", 2),\n Map.entry(\"node3\", 1)\n ))\n .restricted(true)\n .noFailback(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:HA:HAGroup\n properties:\n group: example\n comment: This is a comment.\n # Member nodes, with or without priority.\n nodes:\n node1: null\n node2: 2\n node3: 1\n restricted: true\n noFailback: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nHA groups can be imported using their name, e.g.:\n\n```sh\n$ pulumi import proxmoxve:HA/hAGroup:HAGroup example example\n```\n\n","properties":{"comment":{"type":"string","description":"The comment associated with this group\n"},"group":{"type":"string","description":"The identifier of the High Availability group to manage.\n"},"noFailback":{"type":"boolean","description":"A flag that indicates that failing back to a higher priority node is disabled for this HA group. Defaults to `false`.\n"},"nodes":{"type":"object","additionalProperties":{"type":"integer"},"description":"The member nodes for this group. They are provided as a map, where the keys are the node names and the values represent their priority: integers for known priorities or `null` for unset priorities.\n"},"restricted":{"type":"boolean","description":"A flag that indicates that other nodes may not be used to run resources associated to this HA group. Defaults to `false`.\n"}},"required":["group","noFailback","nodes","restricted"],"inputProperties":{"comment":{"type":"string","description":"The comment associated with this group\n"},"group":{"type":"string","description":"The identifier of the High Availability group to manage.\n"},"noFailback":{"type":"boolean","description":"A flag that indicates that failing back to a higher priority node is disabled for this HA group. Defaults to `false`.\n"},"nodes":{"type":"object","additionalProperties":{"type":"integer"},"description":"The member nodes for this group. They are provided as a map, where the keys are the node names and the values represent their priority: integers for known priorities or `null` for unset priorities.\n"},"restricted":{"type":"boolean","description":"A flag that indicates that other nodes may not be used to run resources associated to this HA group. Defaults to `false`.\n"}},"requiredInputs":["group","nodes"],"stateInputs":{"description":"Input properties used for looking up and filtering HAGroup resources.\n","properties":{"comment":{"type":"string","description":"The comment associated with this group\n"},"group":{"type":"string","description":"The identifier of the High Availability group to manage.\n"},"noFailback":{"type":"boolean","description":"A flag that indicates that failing back to a higher priority node is disabled for this HA group. Defaults to `false`.\n"},"nodes":{"type":"object","additionalProperties":{"type":"integer"},"description":"The member nodes for this group. They are provided as a map, where the keys are the node names and the values represent their priority: integers for known priorities or `null` for unset priorities.\n"},"restricted":{"type":"boolean","description":"A flag that indicates that other nodes may not be used to run resources associated to this HA group. Defaults to `false`.\n"}},"type":"object"}},"proxmoxve:HA/hAResource:HAResource":{"description":"Manages Proxmox HA resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.ha.HAResource(\"example\", {\n resourceId: \"vm:123\",\n state: \"started\",\n group: \"example\",\n comment: \"Managed by Pulumi\",\n}, {\n dependsOn: [proxmox_virtual_environment_hagroup.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.ha.HAResource(\"example\",\n resource_id=\"vm:123\",\n state=\"started\",\n group=\"example\",\n comment=\"Managed by Pulumi\",\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_hagroup[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.HA.HAResource(\"example\", new()\n {\n ResourceId = \"vm:123\",\n State = \"started\",\n Group = \"example\",\n Comment = \"Managed by Pulumi\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_hagroup.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := HA.NewHAResource(ctx, \"example\", \u0026HA.HAResourceArgs{\n\t\t\tResourceId: pulumi.String(\"vm:123\"),\n\t\t\tState: pulumi.String(\"started\"),\n\t\t\tGroup: pulumi.String(\"example\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_hagroup.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAResource;\nimport com.pulumi.proxmoxve.HA.HAResourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new HAResource(\"example\", HAResourceArgs.builder()\n .resourceId(\"vm:123\")\n .state(\"started\")\n .group(\"example\")\n .comment(\"Managed by Pulumi\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_hagroup.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:HA:HAResource\n properties:\n resourceId: vm:123\n state: started\n group: example\n comment: Managed by Pulumi\n options:\n dependson:\n - ${proxmox_virtual_environment_hagroup.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nHA resources can be imported using their identifiers, e.g.:\n\n```sh\n$ pulumi import proxmoxve:HA/hAResource:HAResource example vm:123\n```\n\n","properties":{"comment":{"type":"string","description":"The comment associated with this resource.\n"},"group":{"type":"string","description":"The identifier of the High Availability group this resource is a member of.\n"},"maxRelocate":{"type":"integer","description":"The maximal number of relocation attempts.\n"},"maxRestart":{"type":"integer","description":"The maximal number of restart attempts.\n"},"resourceId":{"type":"string","description":"The Proxmox HA resource identifier\n"},"state":{"type":"string","description":"The desired state of the resource.\n"},"type":{"type":"string","description":"The type of HA resources to create. If unset, it will be deduced from the `resource_id`.\n"}},"required":["resourceId","state","type"],"inputProperties":{"comment":{"type":"string","description":"The comment associated with this resource.\n"},"group":{"type":"string","description":"The identifier of the High Availability group this resource is a member of.\n"},"maxRelocate":{"type":"integer","description":"The maximal number of relocation attempts.\n"},"maxRestart":{"type":"integer","description":"The maximal number of restart attempts.\n"},"resourceId":{"type":"string","description":"The Proxmox HA resource identifier\n"},"state":{"type":"string","description":"The desired state of the resource.\n"},"type":{"type":"string","description":"The type of HA resources to create. If unset, it will be deduced from the `resource_id`.\n"}},"requiredInputs":["resourceId"],"stateInputs":{"description":"Input properties used for looking up and filtering HAResource resources.\n","properties":{"comment":{"type":"string","description":"The comment associated with this resource.\n"},"group":{"type":"string","description":"The identifier of the High Availability group this resource is a member of.\n"},"maxRelocate":{"type":"integer","description":"The maximal number of relocation attempts.\n"},"maxRestart":{"type":"integer","description":"The maximal number of restart attempts.\n"},"resourceId":{"type":"string","description":"The Proxmox HA resource identifier\n"},"state":{"type":"string","description":"The desired state of the resource.\n"},"type":{"type":"string","description":"The type of HA resources to create. If unset, it will be deduced from the `resource_id`.\n"}},"type":"object"}},"proxmoxve:Hardware/mapping/pci:Pci":{"description":"Manages a PCI hardware mapping in a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware.Pci;\nimport com.pulumi.proxmoxve.Hardware.PciArgs;\nimport com.pulumi.proxmoxve.Hardware.inputs.PciMapArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Pci(\"example\", PciArgs.builder()\n .comment(\"This is a comment\")\n .maps(PciMapArgs.builder()\n .comment(\"This is a device specific comment\")\n .id(\"8086:5916\")\n .iommu_group(0)\n .node(\"pve\")\n .path(\"0000:00:02.0\")\n .subsystem_id(\"8086:2068\")\n .build())\n .mediatedDevices(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Hardware/mapping:Pci\n properties:\n comment: This is a comment\n # The actual map of devices.\n maps:\n - comment: This is a device specific comment\n id: 8086:5916\n iommu_group: 0\n node: pve\n path: 0000:00:02.0\n subsystem_id: 8086:2068\n mediatedDevices: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nA PCI hardware mapping can be imported using their name, e.g.:\n\n```sh\n$ pulumi import proxmoxve:Hardware/mapping/pci:Pci example example\n```\n\n","properties":{"comment":{"type":"string","description":"The comment of this PCI hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/PciMap:PciMap"},"description":"The actual map of devices for the PCI hardware mapping.\n"},"mediatedDevices":{"type":"boolean","description":"Indicates whether to enable mediated devices.\n"},"name":{"type":"string","description":"The name of this PCI hardware mapping.\n"}},"required":["maps","mediatedDevices","name"],"inputProperties":{"comment":{"type":"string","description":"The comment of this PCI hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/PciMap:PciMap"},"description":"The actual map of devices for the PCI hardware mapping.\n"},"mediatedDevices":{"type":"boolean","description":"Indicates whether to enable mediated devices.\n"},"name":{"type":"string","description":"The name of this PCI hardware mapping.\n"}},"requiredInputs":["maps"],"stateInputs":{"description":"Input properties used for looking up and filtering Pci resources.\n","properties":{"comment":{"type":"string","description":"The comment of this PCI hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/PciMap:PciMap"},"description":"The actual map of devices for the PCI hardware mapping.\n"},"mediatedDevices":{"type":"boolean","description":"Indicates whether to enable mediated devices.\n"},"name":{"type":"string","description":"The name of this PCI hardware mapping.\n"}},"type":"object"}},"proxmoxve:Hardware/mapping/usb:Usb":{"description":"Manages a USB hardware mapping in a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.hardware.mapping.Usb(\"example\", {\n comment: \"This is a comment\",\n maps: [{\n comment: \"This is a device specific comment\",\n id: \"8087:0a2b\",\n node: \"pve\",\n path: \"1-8.2\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.hardware.mapping.Usb(\"example\",\n comment=\"This is a comment\",\n maps=[{\n \"comment\": \"This is a device specific comment\",\n \"id\": \"8087:0a2b\",\n \"node\": \"pve\",\n \"path\": \"1-8.2\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.Hardware.Mapping.Usb(\"example\", new()\n {\n Comment = \"This is a comment\",\n Maps = new[]\n {\n new ProxmoxVE.Hardware.Mapping.Inputs.UsbMapArgs\n {\n Comment = \"This is a device specific comment\",\n Id = \"8087:0a2b\",\n Node = \"pve\",\n Path = \"1-8.2\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Hardware.NewUsb(ctx, \"example\", \u0026Hardware.UsbArgs{\n\t\t\tComment: pulumi.String(\"This is a comment\"),\n\t\t\tMaps: mapping.UsbMapTypeArray{\n\t\t\t\t\u0026mapping.UsbMapTypeArgs{\n\t\t\t\t\tComment: pulumi.String(\"This is a device specific comment\"),\n\t\t\t\t\tId: pulumi.String(\"8087:0a2b\"),\n\t\t\t\t\tNode: pulumi.String(\"pve\"),\n\t\t\t\t\tPath: pulumi.String(\"1-8.2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware.Usb;\nimport com.pulumi.proxmoxve.Hardware.UsbArgs;\nimport com.pulumi.proxmoxve.Hardware.inputs.UsbMapArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Usb(\"example\", UsbArgs.builder()\n .comment(\"This is a comment\")\n .maps(UsbMapArgs.builder()\n .comment(\"This is a device specific comment\")\n .id(\"8087:0a2b\")\n .node(\"pve\")\n .path(\"1-8.2\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Hardware/mapping:Usb\n properties:\n comment: This is a comment\n # The actual map of devices.\n maps:\n - comment: This is a device specific comment\n id: 8087:0a2b\n node: pve\n path: 1-8.2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nA USB hardware mapping can be imported using their name, e.g.:\n\n```sh\n$ pulumi import proxmoxve:Hardware/mapping/usb:Usb example example\n```\n\n","properties":{"comment":{"type":"string","description":"The comment of this USB hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/UsbMap:UsbMap"},"description":"The actual map of devices for the hardware mapping.\n"},"name":{"type":"string","description":"The name of this hardware mapping.\n"}},"required":["maps","name"],"inputProperties":{"comment":{"type":"string","description":"The comment of this USB hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/UsbMap:UsbMap"},"description":"The actual map of devices for the hardware mapping.\n"},"name":{"type":"string","description":"The name of this hardware mapping.\n"}},"requiredInputs":["maps"],"stateInputs":{"description":"Input properties used for looking up and filtering Usb resources.\n","properties":{"comment":{"type":"string","description":"The comment of this USB hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/UsbMap:UsbMap"},"description":"The actual map of devices for the hardware mapping.\n"},"name":{"type":"string","description":"The name of this hardware mapping.\n"}},"type":"object"}},"proxmoxve:Network/firewall:Firewall":{"description":"Manages firewall options on the cluster level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.network.Firewall(\"example\", {\n ebtables: false,\n enabled: false,\n inputPolicy: \"DROP\",\n logRatelimit: {\n burst: 10,\n enabled: false,\n rate: \"5/second\",\n },\n outputPolicy: \"ACCEPT\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.network.Firewall(\"example\",\n ebtables=False,\n enabled=False,\n input_policy=\"DROP\",\n log_ratelimit={\n \"burst\": 10,\n \"enabled\": False,\n \"rate\": \"5/second\",\n },\n output_policy=\"ACCEPT\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.Network.Firewall(\"example\", new()\n {\n Ebtables = false,\n Enabled = false,\n InputPolicy = \"DROP\",\n LogRatelimit = new ProxmoxVE.Network.Inputs.FirewallLogRatelimitArgs\n {\n Burst = 10,\n Enabled = false,\n Rate = \"5/second\",\n },\n OutputPolicy = \"ACCEPT\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewall(ctx, \"example\", \u0026Network.FirewallArgs{\n\t\t\tEbtables: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t\tInputPolicy: pulumi.String(\"DROP\"),\n\t\t\tLogRatelimit: \u0026network.FirewallLogRatelimitArgs{\n\t\t\t\tBurst: pulumi.Int(10),\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\tRate: pulumi.String(\"5/second\"),\n\t\t\t},\n\t\t\tOutputPolicy: pulumi.String(\"ACCEPT\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.Firewall;\nimport com.pulumi.proxmoxve.Network.FirewallArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallLogRatelimitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Firewall(\"example\", FirewallArgs.builder()\n .ebtables(false)\n .enabled(false)\n .inputPolicy(\"DROP\")\n .logRatelimit(FirewallLogRatelimitArgs.builder()\n .burst(10)\n .enabled(false)\n .rate(\"5/second\")\n .build())\n .outputPolicy(\"ACCEPT\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Network:Firewall\n properties:\n ebtables: false\n enabled: false\n inputPolicy: DROP\n logRatelimit:\n burst: 10\n enabled: false\n rate: 5/second\n outputPolicy: ACCEPT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Important Notes\n\nBe careful not to use this resource multiple times for the same node.\n\n## Import\n\nInstances can be imported without an ID, but you still need to pass one, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Network/firewall:Firewall example example\n```\n\n","properties":{"ebtables":{"type":"boolean","description":"Enable ebtables rules cluster wide.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall cluster wide.\n"},"inputPolicy":{"type":"string","description":"The default input policy (`ACCEPT`, `DROP`, `REJECT`).\n"},"logRatelimit":{"$ref":"#/types/proxmoxve:Network/FirewallLogRatelimit:FirewallLogRatelimit","description":"The log rate limit.\n"},"outputPolicy":{"type":"string","description":"The default output policy (`ACCEPT`, `DROP`, `REJECT`).\n"}},"inputProperties":{"ebtables":{"type":"boolean","description":"Enable ebtables rules cluster wide.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall cluster wide.\n"},"inputPolicy":{"type":"string","description":"The default input policy (`ACCEPT`, `DROP`, `REJECT`).\n"},"logRatelimit":{"$ref":"#/types/proxmoxve:Network/FirewallLogRatelimit:FirewallLogRatelimit","description":"The log rate limit.\n"},"outputPolicy":{"type":"string","description":"The default output policy (`ACCEPT`, `DROP`, `REJECT`).\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Firewall resources.\n","properties":{"ebtables":{"type":"boolean","description":"Enable ebtables rules cluster wide.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall cluster wide.\n"},"inputPolicy":{"type":"string","description":"The default input policy (`ACCEPT`, `DROP`, `REJECT`).\n"},"logRatelimit":{"$ref":"#/types/proxmoxve:Network/FirewallLogRatelimit:FirewallLogRatelimit","description":"The log rate limit.\n"},"outputPolicy":{"type":"string","description":"The default output policy (`ACCEPT`, `DROP`, `REJECT`).\n"}},"type":"object"}},"proxmoxve:Network/firewallAlias:FirewallAlias":{"description":"Aliases are used to see what devices or group of devices are affected by a rule.\nWe can create aliases to identify an IP address or a network. Aliases can be\ncreated on the cluster level, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst localNetwork = new proxmoxve.network.FirewallAlias(\"localNetwork\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n cidr: \"192.168.0.0/23\",\n comment: \"Managed by Pulumi\",\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\nconst ubuntuVm = new proxmoxve.network.FirewallAlias(\"ubuntuVm\", {\n cidr: \"192.168.0.1\",\n comment: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nlocal_network = proxmoxve.network.FirewallAlias(\"localNetwork\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n cidr=\"192.168.0.0/23\",\n comment=\"Managed by Pulumi\",\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\nubuntu_vm = proxmoxve.network.FirewallAlias(\"ubuntuVm\",\n cidr=\"192.168.0.1\",\n comment=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var localNetwork = new ProxmoxVE.Network.FirewallAlias(\"localNetwork\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Cidr = \"192.168.0.0/23\",\n Comment = \"Managed by Pulumi\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n var ubuntuVm = new ProxmoxVE.Network.FirewallAlias(\"ubuntuVm\", new()\n {\n Cidr = \"192.168.0.1\",\n Comment = \"Managed by Pulumi\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallAlias(ctx, \"localNetwork\", \u0026Network.FirewallAliasArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tCidr: pulumi.String(\"192.168.0.0/23\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Network.NewFirewallAlias(ctx, \"ubuntuVm\", \u0026Network.FirewallAliasArgs{\n\t\t\tCidr: pulumi.String(\"192.168.0.1\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallAlias;\nimport com.pulumi.proxmoxve.Network.FirewallAliasArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var localNetwork = new FirewallAlias(\"localNetwork\", FirewallAliasArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .cidr(\"192.168.0.0/23\")\n .comment(\"Managed by Pulumi\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n var ubuntuVm = new FirewallAlias(\"ubuntuVm\", FirewallAliasArgs.builder()\n .cidr(\"192.168.0.1\")\n .comment(\"Managed by Pulumi\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n localNetwork:\n type: proxmoxve:Network:FirewallAlias\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n cidr: 192.168.0.0/23\n comment: Managed by Pulumi\n options:\n dependson:\n - ${proxmox_virtual_environment_vm.example}\n ubuntuVm:\n type: proxmoxve:Network:FirewallAlias\n properties:\n cidr: 192.168.0.1\n comment: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"cidr":{"type":"string","description":"Network/IP specification in CIDR format.\n"},"comment":{"type":"string","description":"Alias comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Alias name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"required":["cidr","name"],"inputProperties":{"cidr":{"type":"string","description":"Network/IP specification in CIDR format.\n"},"comment":{"type":"string","description":"Alias comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Alias name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"requiredInputs":["cidr"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallAlias resources.\n","properties":{"cidr":{"type":"string","description":"Network/IP specification in CIDR format.\n"},"comment":{"type":"string","description":"Alias comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Alias name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"type":"object"}},"proxmoxve:Network/firewallIPSet:FirewallIPSet":{"description":"An IPSet allows us to group multiple IP addresses, IP subnets and aliases. Aliases can be\ncreated on the cluster level, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst ipset = new proxmoxve.network.FirewallIPSet(\"ipset\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n comment: \"Managed by Pulumi\",\n cidrs: [\n {\n name: \"192.168.0.0/23\",\n comment: \"Local network 1\",\n },\n {\n name: \"192.168.0.1\",\n comment: \"Server 1\",\n nomatch: true,\n },\n {\n name: \"192.168.2.1\",\n comment: \"Server 1\",\n },\n ],\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nipset = proxmoxve.network.FirewallIPSet(\"ipset\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n comment=\"Managed by Pulumi\",\n cidrs=[\n {\n \"name\": \"192.168.0.0/23\",\n \"comment\": \"Local network 1\",\n },\n {\n \"name\": \"192.168.0.1\",\n \"comment\": \"Server 1\",\n \"nomatch\": True,\n },\n {\n \"name\": \"192.168.2.1\",\n \"comment\": \"Server 1\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ipset = new ProxmoxVE.Network.FirewallIPSet(\"ipset\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Comment = \"Managed by Pulumi\",\n Cidrs = new[]\n {\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.0.0/23\",\n Comment = \"Local network 1\",\n },\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.0.1\",\n Comment = \"Server 1\",\n Nomatch = true,\n },\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.2.1\",\n Comment = \"Server 1\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallIPSet(ctx, \"ipset\", \u0026Network.FirewallIPSetArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tCidrs: network.FirewallIPSetCidrArray{\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.0.0/23\"),\n\t\t\t\t\tComment: pulumi.String(\"Local network 1\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.0.1\"),\n\t\t\t\t\tComment: pulumi.String(\"Server 1\"),\n\t\t\t\t\tNomatch: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.2.1\"),\n\t\t\t\t\tComment: pulumi.String(\"Server 1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallIPSet;\nimport com.pulumi.proxmoxve.Network.FirewallIPSetArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallIPSetCidrArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ipset = new FirewallIPSet(\"ipset\", FirewallIPSetArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .comment(\"Managed by Pulumi\")\n .cidrs( \n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.0.0/23\")\n .comment(\"Local network 1\")\n .build(),\n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.0.1\")\n .comment(\"Server 1\")\n .nomatch(true)\n .build(),\n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.2.1\")\n .comment(\"Server 1\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ipset:\n type: proxmoxve:Network:FirewallIPSet\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n comment: Managed by Pulumi\n cidrs:\n - name: 192.168.0.0/23\n comment: Local network 1\n - name: 192.168.0.1\n comment: Server 1\n nomatch: true\n - name: 192.168.2.1\n comment: Server 1\n options:\n dependson:\n - ${proxmox_virtual_environment_vm.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"cidrs":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallIPSetCidr:FirewallIPSetCidr"},"description":"IP/CIDR block (multiple blocks supported).\n"},"comment":{"type":"string","description":"IPSet comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"IPSet name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"required":["name"],"inputProperties":{"cidrs":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallIPSetCidr:FirewallIPSetCidr"},"description":"IP/CIDR block (multiple blocks supported).\n","willReplaceOnChanges":true},"comment":{"type":"string","description":"IPSet comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"IPSet name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering FirewallIPSet resources.\n","properties":{"cidrs":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallIPSetCidr:FirewallIPSetCidr"},"description":"IP/CIDR block (multiple blocks supported).\n","willReplaceOnChanges":true},"comment":{"type":"string","description":"IPSet comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"IPSet name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"type":"object"}},"proxmoxve:Network/firewallOptions:FirewallOptions":{"description":"Manages firewall options on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.network.FirewallOptions(\"example\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n dhcp: true,\n enabled: false,\n ipfilter: true,\n logLevelIn: \"info\",\n logLevelOut: \"info\",\n macfilter: false,\n ndp: true,\n inputPolicy: \"ACCEPT\",\n outputPolicy: \"ACCEPT\",\n radv: true,\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.network.FirewallOptions(\"example\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n dhcp=True,\n enabled=False,\n ipfilter=True,\n log_level_in=\"info\",\n log_level_out=\"info\",\n macfilter=False,\n ndp=True,\n input_policy=\"ACCEPT\",\n output_policy=\"ACCEPT\",\n radv=True,\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.Network.FirewallOptions(\"example\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Dhcp = true,\n Enabled = false,\n Ipfilter = true,\n LogLevelIn = \"info\",\n LogLevelOut = \"info\",\n Macfilter = false,\n Ndp = true,\n InputPolicy = \"ACCEPT\",\n OutputPolicy = \"ACCEPT\",\n Radv = true,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallOptions(ctx, \"example\", \u0026Network.FirewallOptionsArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tDhcp: pulumi.Bool(true),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t\tIpfilter: pulumi.Bool(true),\n\t\t\tLogLevelIn: pulumi.String(\"info\"),\n\t\t\tLogLevelOut: pulumi.String(\"info\"),\n\t\t\tMacfilter: pulumi.Bool(false),\n\t\t\tNdp: pulumi.Bool(true),\n\t\t\tInputPolicy: pulumi.String(\"ACCEPT\"),\n\t\t\tOutputPolicy: pulumi.String(\"ACCEPT\"),\n\t\t\tRadv: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallOptions;\nimport com.pulumi.proxmoxve.Network.FirewallOptionsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new FirewallOptions(\"example\", FirewallOptionsArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .dhcp(true)\n .enabled(false)\n .ipfilter(true)\n .logLevelIn(\"info\")\n .logLevelOut(\"info\")\n .macfilter(false)\n .ndp(true)\n .inputPolicy(\"ACCEPT\")\n .outputPolicy(\"ACCEPT\")\n .radv(true)\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Network:FirewallOptions\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n dhcp: true\n enabled: false\n ipfilter: true\n logLevelIn: info\n logLevelOut: info\n macfilter: false\n ndp: true\n inputPolicy: ACCEPT\n outputPolicy: ACCEPT\n radv: true\n options:\n dependson:\n - ${proxmox_virtual_environment_vm.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"dhcp":{"type":"boolean","description":"Enable DHCP.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall.\n"},"inputPolicy":{"type":"string","description":"The default input\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"ipfilter":{"type":"boolean","description":"Enable default IP filters. This is equivalent to\nadding an empty `ipfilter-net\u003cid\u003e` ipset for every interface. Such ipsets\nimplicitly contain sane default restrictions such as restricting IPv6 link\nlocal addresses to the one derived from the interface's MAC address. For\ncontainers the configured IP addresses will be implicitly added.\n"},"logLevelIn":{"type":"string","description":"Log level for incoming\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"macfilter":{"type":"boolean","description":"Enable/disable MAC address filter.\n"},"ndp":{"type":"boolean","description":"Enable NDP (Neighbor Discovery Protocol).\n"},"nodeName":{"type":"string","description":"Node name.\n"},"outputPolicy":{"type":"string","description":"The default output\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"radv":{"type":"boolean","description":"Enable Router Advertisement.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"required":["nodeName"],"inputProperties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"dhcp":{"type":"boolean","description":"Enable DHCP.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall.\n"},"inputPolicy":{"type":"string","description":"The default input\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"ipfilter":{"type":"boolean","description":"Enable default IP filters. This is equivalent to\nadding an empty `ipfilter-net\u003cid\u003e` ipset for every interface. Such ipsets\nimplicitly contain sane default restrictions such as restricting IPv6 link\nlocal addresses to the one derived from the interface's MAC address. For\ncontainers the configured IP addresses will be implicitly added.\n"},"logLevelIn":{"type":"string","description":"Log level for incoming\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"macfilter":{"type":"boolean","description":"Enable/disable MAC address filter.\n"},"ndp":{"type":"boolean","description":"Enable NDP (Neighbor Discovery Protocol).\n"},"nodeName":{"type":"string","description":"Node name.\n"},"outputPolicy":{"type":"string","description":"The default output\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"radv":{"type":"boolean","description":"Enable Router Advertisement.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallOptions resources.\n","properties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"dhcp":{"type":"boolean","description":"Enable DHCP.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall.\n"},"inputPolicy":{"type":"string","description":"The default input\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"ipfilter":{"type":"boolean","description":"Enable default IP filters. This is equivalent to\nadding an empty `ipfilter-net\u003cid\u003e` ipset for every interface. Such ipsets\nimplicitly contain sane default restrictions such as restricting IPv6 link\nlocal addresses to the one derived from the interface's MAC address. For\ncontainers the configured IP addresses will be implicitly added.\n"},"logLevelIn":{"type":"string","description":"Log level for incoming\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"macfilter":{"type":"boolean","description":"Enable/disable MAC address filter.\n"},"ndp":{"type":"boolean","description":"Enable NDP (Neighbor Discovery Protocol).\n"},"nodeName":{"type":"string","description":"Node name.\n"},"outputPolicy":{"type":"string","description":"The default output\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"radv":{"type":"boolean","description":"Enable Router Advertisement.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"type":"object"}},"proxmoxve:Network/firewallRules:FirewallRules":{"description":"A security group is a collection of rules, defined at cluster level, which can\nbe used in all VMs' rules. For example, you can define a group named “webserver”\nwith rules to open the http and https ports. Rules can be created on the cluster\nlevel, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst inbound = new proxmoxve.network.FirewallRules(\"inbound\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n rules: [\n {\n type: \"in\",\n action: \"ACCEPT\",\n comment: \"Allow HTTP\",\n dest: \"192.168.1.5\",\n dport: \"80\",\n proto: \"tcp\",\n log: \"info\",\n },\n {\n type: \"in\",\n action: \"ACCEPT\",\n comment: \"Allow HTTPS\",\n dest: \"192.168.1.5\",\n dport: \"443\",\n proto: \"tcp\",\n log: \"info\",\n },\n {\n securityGroup: proxmox_virtual_environment_cluster_firewall_security_group.example.name,\n comment: \"From security group\",\n iface: \"net0\",\n },\n ],\n}, {\n dependsOn: [\n proxmox_virtual_environment_vm.example,\n proxmox_virtual_environment_cluster_firewall_security_group.example,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\ninbound = proxmoxve.network.FirewallRules(\"inbound\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n rules=[\n {\n \"type\": \"in\",\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTP\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"80\",\n \"proto\": \"tcp\",\n \"log\": \"info\",\n },\n {\n \"type\": \"in\",\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTPS\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"443\",\n \"proto\": \"tcp\",\n \"log\": \"info\",\n },\n {\n \"security_group\": proxmox_virtual_environment_cluster_firewall_security_group[\"example\"][\"name\"],\n \"comment\": \"From security group\",\n \"iface\": \"net0\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[\n proxmox_virtual_environment_vm[\"example\"],\n proxmox_virtual_environment_cluster_firewall_security_group[\"example\"],\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var inbound = new ProxmoxVE.Network.FirewallRules(\"inbound\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Rules = new[]\n {\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n Type = \"in\",\n Action = \"ACCEPT\",\n Comment = \"Allow HTTP\",\n Dest = \"192.168.1.5\",\n Dport = \"80\",\n Proto = \"tcp\",\n Log = \"info\",\n },\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n Type = \"in\",\n Action = \"ACCEPT\",\n Comment = \"Allow HTTPS\",\n Dest = \"192.168.1.5\",\n Dport = \"443\",\n Proto = \"tcp\",\n Log = \"info\",\n },\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n SecurityGroup = proxmox_virtual_environment_cluster_firewall_security_group.Example.Name,\n Comment = \"From security group\",\n Iface = \"net0\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n proxmox_virtual_environment_cluster_firewall_security_group.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallRules(ctx, \"inbound\", \u0026Network.FirewallRulesArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tRules: network.FirewallRulesRuleArray{\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTP\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"80\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTPS\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"443\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tSecurityGroup: pulumi.Any(proxmox_virtual_environment_cluster_firewall_security_group.Example.Name),\n\t\t\t\t\tComment: pulumi.String(\"From security group\"),\n\t\t\t\t\tIface: pulumi.String(\"net0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t\tproxmox_virtual_environment_cluster_firewall_security_group.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallRules;\nimport com.pulumi.proxmoxve.Network.FirewallRulesArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallRulesRuleArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var inbound = new FirewallRules(\"inbound\", FirewallRulesArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .rules( \n FirewallRulesRuleArgs.builder()\n .type(\"in\")\n .action(\"ACCEPT\")\n .comment(\"Allow HTTP\")\n .dest(\"192.168.1.5\")\n .dport(\"80\")\n .proto(\"tcp\")\n .log(\"info\")\n .build(),\n FirewallRulesRuleArgs.builder()\n .type(\"in\")\n .action(\"ACCEPT\")\n .comment(\"Allow HTTPS\")\n .dest(\"192.168.1.5\")\n .dport(\"443\")\n .proto(\"tcp\")\n .log(\"info\")\n .build(),\n FirewallRulesRuleArgs.builder()\n .securityGroup(proxmox_virtual_environment_cluster_firewall_security_group.example().name())\n .comment(\"From security group\")\n .iface(\"net0\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n proxmox_virtual_environment_vm.example(),\n proxmox_virtual_environment_cluster_firewall_security_group.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n inbound:\n type: proxmoxve:Network:FirewallRules\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n rules:\n - type: in\n action: ACCEPT\n comment: Allow HTTP\n dest: 192.168.1.5\n dport: '80'\n proto: tcp\n log: info\n - type: in\n action: ACCEPT\n comment: Allow HTTPS\n dest: 192.168.1.5\n dport: '443'\n proto: tcp\n log: info\n - securityGroup: ${proxmox_virtual_environment_cluster_firewall_security_group.example.name}\n comment: From security group\n iface: net0\n options:\n dependson:\n - ${proxmox_virtual_environment_vm.example}\n - ${proxmox_virtual_environment_cluster_firewall_security_group.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level\nrules.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level rules.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallRulesRule:FirewallRulesRule"},"description":"Firewall rule block (multiple blocks supported).\nThe provider supports two types of the `rule` blocks:\n- A rule definition block, which includes the following arguments:\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level rules.\n"}},"required":["rules"],"inputProperties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level\nrules.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level rules.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallRulesRule:FirewallRulesRule"},"description":"Firewall rule block (multiple blocks supported).\nThe provider supports two types of the `rule` blocks:\n- A rule definition block, which includes the following arguments:\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level rules.\n"}},"requiredInputs":["rules"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallRules resources.\n","properties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level\nrules.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level rules.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallRulesRule:FirewallRulesRule"},"description":"Firewall rule block (multiple blocks supported).\nThe provider supports two types of the `rule` blocks:\n- A rule definition block, which includes the following arguments:\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level rules.\n"}},"type":"object"}},"proxmoxve:Network/firewallSecurityGroup:FirewallSecurityGroup":{"description":"A security group is a collection of rules, defined at cluster level, which can\nbe used in all VMs' rules. For example, you can define a group named “webserver”\nwith rules to open the http and https ports.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst webserver = new proxmoxve.network.FirewallSecurityGroup(\"webserver\", {\n comment: \"Managed by Pulumi\",\n rules: [\n {\n action: \"ACCEPT\",\n comment: \"Allow HTTP\",\n dest: \"192.168.1.5\",\n dport: \"80\",\n log: \"info\",\n proto: \"tcp\",\n type: \"in\",\n },\n {\n action: \"ACCEPT\",\n comment: \"Allow HTTPS\",\n dest: \"192.168.1.5\",\n dport: \"443\",\n log: \"info\",\n proto: \"tcp\",\n type: \"in\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nwebserver = proxmoxve.network.FirewallSecurityGroup(\"webserver\",\n comment=\"Managed by Pulumi\",\n rules=[\n {\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTP\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"80\",\n \"log\": \"info\",\n \"proto\": \"tcp\",\n \"type\": \"in\",\n },\n {\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTPS\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"443\",\n \"log\": \"info\",\n \"proto\": \"tcp\",\n \"type\": \"in\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var webserver = new ProxmoxVE.Network.FirewallSecurityGroup(\"webserver\", new()\n {\n Comment = \"Managed by Pulumi\",\n Rules = new[]\n {\n new ProxmoxVE.Network.Inputs.FirewallSecurityGroupRuleArgs\n {\n Action = \"ACCEPT\",\n Comment = \"Allow HTTP\",\n Dest = \"192.168.1.5\",\n Dport = \"80\",\n Log = \"info\",\n Proto = \"tcp\",\n Type = \"in\",\n },\n new ProxmoxVE.Network.Inputs.FirewallSecurityGroupRuleArgs\n {\n Action = \"ACCEPT\",\n Comment = \"Allow HTTPS\",\n Dest = \"192.168.1.5\",\n Dport = \"443\",\n Log = \"info\",\n Proto = \"tcp\",\n Type = \"in\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallSecurityGroup(ctx, \"webserver\", \u0026Network.FirewallSecurityGroupArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tRules: network.FirewallSecurityGroupRuleArray{\n\t\t\t\t\u0026network.FirewallSecurityGroupRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTP\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"80\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallSecurityGroupRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTPS\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"443\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallSecurityGroup;\nimport com.pulumi.proxmoxve.Network.FirewallSecurityGroupArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallSecurityGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var webserver = new FirewallSecurityGroup(\"webserver\", FirewallSecurityGroupArgs.builder()\n .comment(\"Managed by Pulumi\")\n .rules( \n FirewallSecurityGroupRuleArgs.builder()\n .action(\"ACCEPT\")\n .comment(\"Allow HTTP\")\n .dest(\"192.168.1.5\")\n .dport(\"80\")\n .log(\"info\")\n .proto(\"tcp\")\n .type(\"in\")\n .build(),\n FirewallSecurityGroupRuleArgs.builder()\n .action(\"ACCEPT\")\n .comment(\"Allow HTTPS\")\n .dest(\"192.168.1.5\")\n .dport(\"443\")\n .log(\"info\")\n .proto(\"tcp\")\n .type(\"in\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n webserver:\n type: proxmoxve:Network:FirewallSecurityGroup\n properties:\n comment: Managed by Pulumi\n rules:\n - action: ACCEPT\n comment: Allow HTTP\n dest: 192.168.1.5\n dport: '80'\n log: info\n proto: tcp\n type: in\n - action: ACCEPT\n comment: Allow HTTPS\n dest: 192.168.1.5\n dport: '443'\n log: info\n proto: tcp\n type: in\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `name`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Network/firewallSecurityGroup:FirewallSecurityGroup webserver webserver\n```\n\n","properties":{"comment":{"type":"string","description":"Security group comment.\n"},"containerId":{"type":"integer","description":"The ID of the container to manage the firewall for.\n"},"name":{"type":"string","description":"Security group name.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallSecurityGroupRule:FirewallSecurityGroupRule"},"description":"Firewall rule block (multiple blocks supported).\n"},"vmId":{"type":"integer","description":"The ID of the VM to manage the firewall for.\n"}},"required":["name","rules"],"inputProperties":{"comment":{"type":"string","description":"Security group comment.\n"},"containerId":{"type":"integer","description":"The ID of the container to manage the firewall for.\n"},"name":{"type":"string","description":"Security group name.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallSecurityGroupRule:FirewallSecurityGroupRule"},"description":"Firewall rule block (multiple blocks supported).\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The ID of the VM to manage the firewall for.\n"}},"requiredInputs":["rules"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallSecurityGroup resources.\n","properties":{"comment":{"type":"string","description":"Security group comment.\n"},"containerId":{"type":"integer","description":"The ID of the container to manage the firewall for.\n"},"name":{"type":"string","description":"Security group name.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallSecurityGroupRule:FirewallSecurityGroupRule"},"description":"Firewall rule block (multiple blocks supported).\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The ID of the VM to manage the firewall for.\n"}},"type":"object"}},"proxmoxve:Network/networkBridge:NetworkBridge":{"description":"Manages a Linux Bridge network interface in a Proxmox VE node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst vlan99 = new proxmoxve.network.NetworkVlan(\"vlan99\", {nodeName: \"pve\"});\n//# or alternatively, use custom name:\n// name = \"vlan_lab\"\n// interface = \"eno0\"\n// vlan = 98\nconst vmbr99 = new proxmoxve.network.NetworkBridge(\"vmbr99\", {\n nodeName: \"pve\",\n address: \"99.99.99.99/16\",\n comment: \"vmbr99 comment\",\n ports: [\"ens18.99\"],\n}, {\n dependsOn: [vlan99],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nvlan99 = proxmoxve.network.NetworkVlan(\"vlan99\", node_name=\"pve\")\n## or alternatively, use custom name:\n# name = \"vlan_lab\"\n# interface = \"eno0\"\n# vlan = 98\nvmbr99 = proxmoxve.network.NetworkBridge(\"vmbr99\",\n node_name=\"pve\",\n address=\"99.99.99.99/16\",\n comment=\"vmbr99 comment\",\n ports=[\"ens18.99\"],\n opts = pulumi.ResourceOptions(depends_on=[vlan99]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vlan99 = new ProxmoxVE.Network.NetworkVlan(\"vlan99\", new()\n {\n NodeName = \"pve\",\n });\n\n //# or alternatively, use custom name:\n // name = \"vlan_lab\"\n // interface = \"eno0\"\n // vlan = 98\n var vmbr99 = new ProxmoxVE.Network.NetworkBridge(\"vmbr99\", new()\n {\n NodeName = \"pve\",\n Address = \"99.99.99.99/16\",\n Comment = \"vmbr99 comment\",\n Ports = new[]\n {\n \"ens18.99\",\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n vlan99,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvlan99, err := Network.NewNetworkVlan(ctx, \"vlan99\", \u0026Network.NetworkVlanArgs{\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Network.NewNetworkBridge(ctx, \"vmbr99\", \u0026Network.NetworkBridgeArgs{\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tAddress: pulumi.String(\"99.99.99.99/16\"),\n\t\t\tComment: pulumi.String(\"vmbr99 comment\"),\n\t\t\tPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ens18.99\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvlan99,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkVlan;\nimport com.pulumi.proxmoxve.Network.NetworkVlanArgs;\nimport com.pulumi.proxmoxve.Network.NetworkBridge;\nimport com.pulumi.proxmoxve.Network.NetworkBridgeArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vlan99 = new NetworkVlan(\"vlan99\", NetworkVlanArgs.builder()\n .nodeName(\"pve\")\n .build());\n\n //# or alternatively, use custom name:\n // name = \"vlan_lab\"\n // interface = \"eno0\"\n // vlan = 98\n var vmbr99 = new NetworkBridge(\"vmbr99\", NetworkBridgeArgs.builder()\n .nodeName(\"pve\")\n .address(\"99.99.99.99/16\")\n .comment(\"vmbr99 comment\")\n .ports(\"ens18.99\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(vlan99)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vmbr99:\n type: proxmoxve:Network:NetworkBridge\n properties:\n nodeName: pve\n address: 99.99.99.99/16\n comment: vmbr99 comment\n ports:\n - ens18.99\n options:\n dependson:\n - ${vlan99}\n vlan99:\n type: proxmoxve:Network:NetworkVlan\n properties:\n nodeName: pve\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\n#Interfaces can be imported using the `node_name:iface` format, e.g.\n\n```sh\n$ pulumi import proxmoxve:Network/networkBridge:NetworkBridge vmbr99 pve:vmbr99\n```\n\n","properties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Must be `vmbrN`, where N is a number between 0 and 9999.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"The interface bridge ports.\n"},"vlanAware":{"type":"boolean","description":"Whether the interface bridge is VLAN aware (defaults to `false`).\n"}},"required":["autostart","name","nodeName","vlanAware"],"inputProperties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Must be `vmbrN`, where N is a number between 0 and 9999.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"The interface bridge ports.\n"},"vlanAware":{"type":"boolean","description":"Whether the interface bridge is VLAN aware (defaults to `false`).\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkBridge resources.\n","properties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Must be `vmbrN`, where N is a number between 0 and 9999.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"The interface bridge ports.\n"},"vlanAware":{"type":"boolean","description":"Whether the interface bridge is VLAN aware (defaults to `false`).\n"}},"type":"object"}},"proxmoxve:Network/networkVlan:NetworkVlan":{"description":"Manages a Linux VLAN network interface in a Proxmox VE node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\n// using VLAN tag\nconst vlan99 = new proxmoxve.network.NetworkVlan(\"vlan99\", {\n comment: \"VLAN 99\",\n nodeName: \"pve\",\n});\n// using custom network interface name\nconst vlan98 = new proxmoxve.network.NetworkVlan(\"vlan98\", {\n comment: \"VLAN 98\",\n \"interface\": \"eno0\",\n nodeName: \"pve\",\n vlan: 98,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\n# using VLAN tag\nvlan99 = proxmoxve.network.NetworkVlan(\"vlan99\",\n comment=\"VLAN 99\",\n node_name=\"pve\")\n# using custom network interface name\nvlan98 = proxmoxve.network.NetworkVlan(\"vlan98\",\n comment=\"VLAN 98\",\n interface=\"eno0\",\n node_name=\"pve\",\n vlan=98)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // using VLAN tag\n var vlan99 = new ProxmoxVE.Network.NetworkVlan(\"vlan99\", new()\n {\n Comment = \"VLAN 99\",\n NodeName = \"pve\",\n });\n\n // using custom network interface name\n var vlan98 = new ProxmoxVE.Network.NetworkVlan(\"vlan98\", new()\n {\n Comment = \"VLAN 98\",\n Interface = \"eno0\",\n NodeName = \"pve\",\n Vlan = 98,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// using VLAN tag\n\t\t_, err := Network.NewNetworkVlan(ctx, \"vlan99\", \u0026Network.NetworkVlanArgs{\n\t\t\tComment: pulumi.String(\"VLAN 99\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// using custom network interface name\n\t\t_, err = Network.NewNetworkVlan(ctx, \"vlan98\", \u0026Network.NetworkVlanArgs{\n\t\t\tComment: pulumi.String(\"VLAN 98\"),\n\t\t\tInterface: pulumi.String(\"eno0\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tVlan: pulumi.Int(98),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkVlan;\nimport com.pulumi.proxmoxve.Network.NetworkVlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // using VLAN tag\n var vlan99 = new NetworkVlan(\"vlan99\", NetworkVlanArgs.builder()\n .comment(\"VLAN 99\")\n .nodeName(\"pve\")\n .build());\n\n // using custom network interface name\n var vlan98 = new NetworkVlan(\"vlan98\", NetworkVlanArgs.builder()\n .comment(\"VLAN 98\")\n .interface_(\"eno0\")\n .nodeName(\"pve\")\n .vlan(98)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # using VLAN tag\n vlan99:\n type: proxmoxve:Network:NetworkVlan\n properties:\n comment: VLAN 99\n nodeName: pve\n # using custom network interface name\n vlan98:\n type: proxmoxve:Network:NetworkVlan\n properties:\n comment: VLAN 98\n interface: eno0\n nodeName: pve\n vlan: 98\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\n#Interfaces can be imported using the `node_name:iface` format, e.g.\n\n```sh\n$ pulumi import proxmoxve:Network/networkVlan:NetworkVlan vlan99 pve:vlan99\n```\n\n","properties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"interface":{"type":"string","description":"The VLAN raw device. See also `name`.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Either add the VLAN tag number to an existing interface name, e.g. `ens18.21` (and do not set `interface` and `vlan`), or use custom name, e.g. `vlan_lab` (`interface` and `vlan` are then required).\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"vlan":{"type":"integer","description":"The VLAN tag. See also `name`.\n"}},"required":["autostart","interface","name","nodeName","vlan"],"inputProperties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"interface":{"type":"string","description":"The VLAN raw device. See also `name`.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Either add the VLAN tag number to an existing interface name, e.g. `ens18.21` (and do not set `interface` and `vlan`), or use custom name, e.g. `vlan_lab` (`interface` and `vlan` are then required).\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"vlan":{"type":"integer","description":"The VLAN tag. See also `name`.\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkVlan resources.\n","properties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"interface":{"type":"string","description":"The VLAN raw device. See also `name`.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Either add the VLAN tag number to an existing interface name, e.g. `ens18.21` (and do not set `interface` and `vlan`), or use custom name, e.g. `vlan_lab` (`interface` and `vlan` are then required).\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"vlan":{"type":"integer","description":"The VLAN tag. See also `name`.\n"}},"type":"object"}},"proxmoxve:Permission/group:Group":{"description":"Manages a user group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst operationsTeam = new proxmoxve.permission.Group(\"operationsTeam\", {\n comment: \"Managed by Pulumi\",\n groupId: \"operations-team\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_team = proxmoxve.permission.Group(\"operationsTeam\",\n comment=\"Managed by Pulumi\",\n group_id=\"operations-team\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsTeam = new ProxmoxVE.Permission.Group(\"operationsTeam\", new()\n {\n Comment = \"Managed by Pulumi\",\n GroupId = \"operations-team\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.NewGroup(ctx, \"operationsTeam\", \u0026Permission.GroupArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tGroupId: pulumi.String(\"operations-team\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.Group;\nimport com.pulumi.proxmoxve.Permission.GroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var operationsTeam = new Group(\"operationsTeam\", GroupArgs.builder()\n .comment(\"Managed by Pulumi\")\n .groupId(\"operations-team\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n operationsTeam:\n type: proxmoxve:Permission:Group\n properties:\n comment: Managed by Pulumi\n groupId: operations-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `group_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Permission/group:Group operations_team operations-team\n```\n\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/GroupAcl:GroupAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The group comment.\n"},"groupId":{"type":"string","description":"The group identifier.\n"},"members":{"type":"array","items":{"type":"string"},"description":"The group members as a list of `username@realm` entries\n"}},"required":["groupId","members"],"inputProperties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/GroupAcl:GroupAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The group comment.\n"},"groupId":{"type":"string","description":"The group identifier.\n","willReplaceOnChanges":true}},"requiredInputs":["groupId"],"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/GroupAcl:GroupAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The group comment.\n"},"groupId":{"type":"string","description":"The group identifier.\n","willReplaceOnChanges":true},"members":{"type":"array","items":{"type":"string"},"description":"The group members as a list of `username@realm` entries\n"}},"type":"object"}},"proxmoxve:Permission/pool:Pool":{"description":"Manages a resource pool.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst operationsPool = new proxmoxve.permission.Pool(\"operationsPool\", {\n comment: \"Managed by Pulumi\",\n poolId: \"operations-pool\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_pool = proxmoxve.permission.Pool(\"operationsPool\",\n comment=\"Managed by Pulumi\",\n pool_id=\"operations-pool\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsPool = new ProxmoxVE.Permission.Pool(\"operationsPool\", new()\n {\n Comment = \"Managed by Pulumi\",\n PoolId = \"operations-pool\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.NewPool(ctx, \"operationsPool\", \u0026Permission.PoolArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tPoolId: pulumi.String(\"operations-pool\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.Pool;\nimport com.pulumi.proxmoxve.Permission.PoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var operationsPool = new Pool(\"operationsPool\", PoolArgs.builder()\n .comment(\"Managed by Pulumi\")\n .poolId(\"operations-pool\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n operationsPool:\n type: proxmoxve:Permission:Pool\n properties:\n comment: Managed by Pulumi\n poolId: operations-pool\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `pool_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Permission/pool:Pool operations_pool operations-pool\n```\n\n","properties":{"comment":{"type":"string","description":"The pool comment.\n"},"members":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/PoolMember:PoolMember"},"description":"The pool members.\n"},"poolId":{"type":"string","description":"The pool identifier.\n"}},"required":["members","poolId"],"inputProperties":{"comment":{"type":"string","description":"The pool comment.\n"},"poolId":{"type":"string","description":"The pool identifier.\n","willReplaceOnChanges":true}},"requiredInputs":["poolId"],"stateInputs":{"description":"Input properties used for looking up and filtering Pool resources.\n","properties":{"comment":{"type":"string","description":"The pool comment.\n"},"members":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/PoolMember:PoolMember"},"description":"The pool members.\n"},"poolId":{"type":"string","description":"The pool identifier.\n","willReplaceOnChanges":true}},"type":"object"}},"proxmoxve:Permission/role:Role":{"description":"Manages a role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst operationsMonitoring = new proxmoxve.permission.Role(\"operationsMonitoring\", {\n privileges: [\"VM.Monitor\"],\n roleId: \"operations-monitoring\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_monitoring = proxmoxve.permission.Role(\"operationsMonitoring\",\n privileges=[\"VM.Monitor\"],\n role_id=\"operations-monitoring\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsMonitoring = new ProxmoxVE.Permission.Role(\"operationsMonitoring\", new()\n {\n Privileges = new[]\n {\n \"VM.Monitor\",\n },\n RoleId = \"operations-monitoring\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.NewRole(ctx, \"operationsMonitoring\", \u0026Permission.RoleArgs{\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"VM.Monitor\"),\n\t\t\t},\n\t\t\tRoleId: pulumi.String(\"operations-monitoring\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.Role;\nimport com.pulumi.proxmoxve.Permission.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var operationsMonitoring = new Role(\"operationsMonitoring\", RoleArgs.builder()\n .privileges(\"VM.Monitor\")\n .roleId(\"operations-monitoring\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n operationsMonitoring:\n type: proxmoxve:Permission:Role\n properties:\n privileges:\n - VM.Monitor\n roleId: operations-monitoring\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `role_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Permission/role:Role operations_monitoring operations-monitoring\n```\n\n","properties":{"privileges":{"type":"array","items":{"type":"string"},"description":"The role privileges.\n"},"roleId":{"type":"string","description":"The role identifier.\n"}},"required":["privileges","roleId"],"inputProperties":{"privileges":{"type":"array","items":{"type":"string"},"description":"The role privileges.\n"},"roleId":{"type":"string","description":"The role identifier.\n","willReplaceOnChanges":true}},"requiredInputs":["privileges","roleId"],"stateInputs":{"description":"Input properties used for looking up and filtering Role resources.\n","properties":{"privileges":{"type":"array","items":{"type":"string"},"description":"The role privileges.\n"},"roleId":{"type":"string","description":"The role identifier.\n","willReplaceOnChanges":true}},"type":"object"}},"proxmoxve:Permission/user:User":{"description":"Manages a user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst operationsMonitoring = new proxmoxve.permission.Role(\"operationsMonitoring\", {\n roleId: \"operations-monitoring\",\n privileges: [\"VM.Monitor\"],\n});\nconst operationsAutomation = new proxmoxve.permission.User(\"operationsAutomation\", {\n acls: [{\n path: \"/vms/1234\",\n propagate: true,\n roleId: operationsMonitoring.roleId,\n }],\n comment: \"Managed by Pulumi\",\n password: \"a-strong-password\",\n userId: \"operations-automation@pve\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_monitoring = proxmoxve.permission.Role(\"operationsMonitoring\",\n role_id=\"operations-monitoring\",\n privileges=[\"VM.Monitor\"])\noperations_automation = proxmoxve.permission.User(\"operationsAutomation\",\n acls=[{\n \"path\": \"/vms/1234\",\n \"propagate\": True,\n \"role_id\": operations_monitoring.role_id,\n }],\n comment=\"Managed by Pulumi\",\n password=\"a-strong-password\",\n user_id=\"operations-automation@pve\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsMonitoring = new ProxmoxVE.Permission.Role(\"operationsMonitoring\", new()\n {\n RoleId = \"operations-monitoring\",\n Privileges = new[]\n {\n \"VM.Monitor\",\n },\n });\n\n var operationsAutomation = new ProxmoxVE.Permission.User(\"operationsAutomation\", new()\n {\n Acls = new[]\n {\n new ProxmoxVE.Permission.Inputs.UserAclArgs\n {\n Path = \"/vms/1234\",\n Propagate = true,\n RoleId = operationsMonitoring.RoleId,\n },\n },\n Comment = \"Managed by Pulumi\",\n Password = \"a-strong-password\",\n UserId = \"operations-automation@pve\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\toperationsMonitoring, err := Permission.NewRole(ctx, \"operationsMonitoring\", \u0026Permission.RoleArgs{\n\t\t\tRoleId: pulumi.String(\"operations-monitoring\"),\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"VM.Monitor\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Permission.NewUser(ctx, \"operationsAutomation\", \u0026Permission.UserArgs{\n\t\t\tAcls: permission.UserAclArray{\n\t\t\t\t\u0026permission.UserAclArgs{\n\t\t\t\t\tPath: pulumi.String(\"/vms/1234\"),\n\t\t\t\t\tPropagate: pulumi.Bool(true),\n\t\t\t\t\tRoleId: operationsMonitoring.RoleId,\n\t\t\t\t},\n\t\t\t},\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tPassword: pulumi.String(\"a-strong-password\"),\n\t\t\tUserId: pulumi.String(\"operations-automation@pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.Role;\nimport com.pulumi.proxmoxve.Permission.RoleArgs;\nimport com.pulumi.proxmoxve.Permission.User;\nimport com.pulumi.proxmoxve.Permission.UserArgs;\nimport com.pulumi.proxmoxve.Permission.inputs.UserAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var operationsMonitoring = new Role(\"operationsMonitoring\", RoleArgs.builder()\n .roleId(\"operations-monitoring\")\n .privileges(\"VM.Monitor\")\n .build());\n\n var operationsAutomation = new User(\"operationsAutomation\", UserArgs.builder()\n .acls(UserAclArgs.builder()\n .path(\"/vms/1234\")\n .propagate(true)\n .roleId(operationsMonitoring.roleId())\n .build())\n .comment(\"Managed by Pulumi\")\n .password(\"a-strong-password\")\n .userId(\"operations-automation@pve\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n operationsAutomation:\n type: proxmoxve:Permission:User\n properties:\n acls:\n - path: /vms/1234\n propagate: true\n roleId: ${operationsMonitoring.roleId}\n comment: Managed by Pulumi\n password: a-strong-password\n userId: operations-automation@pve\n operationsMonitoring:\n type: proxmoxve:Permission:Role\n properties:\n roleId: operations-monitoring\n privileges:\n - VM.Monitor\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `user_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Permission/user:User operations_automation operations-automation@pve\n```\n\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/UserAcl:UserAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The user comment.\n"},"email":{"type":"string","description":"The user's email address.\n"},"enabled":{"type":"boolean","description":"Whether the user account is enabled.\n"},"expirationDate":{"type":"string","description":"The user account's expiration date (RFC 3339).\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"groups":{"type":"array","items":{"type":"string"},"description":"The user's groups.\n"},"keys":{"type":"string","description":"The user's keys.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"password":{"type":"string","description":"The user's password. Required for PVE or PAM realms.\n","secret":true},"userId":{"type":"string","description":"The user identifier.\n"}},"required":["userId"],"inputProperties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/UserAcl:UserAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The user comment.\n"},"email":{"type":"string","description":"The user's email address.\n"},"enabled":{"type":"boolean","description":"Whether the user account is enabled.\n"},"expirationDate":{"type":"string","description":"The user account's expiration date (RFC 3339).\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"groups":{"type":"array","items":{"type":"string"},"description":"The user's groups.\n"},"keys":{"type":"string","description":"The user's keys.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"password":{"type":"string","description":"The user's password. Required for PVE or PAM realms.\n","secret":true},"userId":{"type":"string","description":"The user identifier.\n","willReplaceOnChanges":true}},"requiredInputs":["userId"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/UserAcl:UserAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The user comment.\n"},"email":{"type":"string","description":"The user's email address.\n"},"enabled":{"type":"boolean","description":"Whether the user account is enabled.\n"},"expirationDate":{"type":"string","description":"The user account's expiration date (RFC 3339).\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"groups":{"type":"array","items":{"type":"string"},"description":"The user's groups.\n"},"keys":{"type":"string","description":"The user's keys.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"password":{"type":"string","description":"The user's password. Required for PVE or PAM realms.\n","secret":true},"userId":{"type":"string","description":"The user identifier.\n","willReplaceOnChanges":true}},"type":"object"}},"proxmoxve:Storage/file:File":{"description":"Use this resource to upload files to a Proxmox VE node. The file can be a backup, an ISO image, a snippet, or a container template depending on the `content_type` attribute.\n\n## Example Usage\n\n### Backups (`dump`)\n\n\u003e The resource with this content type uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section.\n\n\u003e The provider currently does not support restoring backups. You can use the Proxmox VE web interface or the `qmrestore` / `pct restore` command to restore VM / Container from a backup.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst backup = new proxmoxve.storage.File(\"backup\", {\n contentType: \"dump\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n sourceFile: {\n path: \"vzdump-lxc-100-2023_11_08-23_10_05.tar\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nbackup = proxmoxve.storage.File(\"backup\",\n content_type=\"dump\",\n datastore_id=\"local\",\n node_name=\"pve\",\n source_file={\n \"path\": \"vzdump-lxc-100-2023_11_08-23_10_05.tar\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var backup = new ProxmoxVE.Storage.File(\"backup\", new()\n {\n ContentType = \"dump\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n SourceFile = new ProxmoxVE.Storage.Inputs.FileSourceFileArgs\n {\n Path = \"vzdump-lxc-100-2023_11_08-23_10_05.tar\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Storage.NewFile(ctx, \"backup\", \u0026Storage.FileArgs{\n\t\t\tContentType: pulumi.String(\"dump\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tSourceFile: \u0026storage.FileSourceFileArgs{\n\t\t\t\tPath: pulumi.String(\"vzdump-lxc-100-2023_11_08-23_10_05.tar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Storage.File;\nimport com.pulumi.proxmoxve.Storage.FileArgs;\nimport com.pulumi.proxmoxve.Storage.inputs.FileSourceFileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var backup = new File(\"backup\", FileArgs.builder()\n .contentType(\"dump\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .sourceFile(FileSourceFileArgs.builder()\n .path(\"vzdump-lxc-100-2023_11_08-23_10_05.tar\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n backup:\n type: proxmoxve:Storage:File\n properties:\n contentType: dump\n datastoreId: local\n nodeName: pve\n sourceFile:\n path: vzdump-lxc-100-2023_11_08-23_10_05.tar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Images\n\n\u003e Consider using `proxmoxve.Download.File` resource instead. Using this resource for images is less efficient (requires to transfer uploaded image to node) though still supported.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst ubuntuContainerTemplate = new proxmoxve.storage.File(\"ubuntuContainerTemplate\", {\n contentType: \"iso\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n sourceFile: {\n path: \"https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nubuntu_container_template = proxmoxve.storage.File(\"ubuntuContainerTemplate\",\n content_type=\"iso\",\n datastore_id=\"local\",\n node_name=\"pve\",\n source_file={\n \"path\": \"https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ubuntuContainerTemplate = new ProxmoxVE.Storage.File(\"ubuntuContainerTemplate\", new()\n {\n ContentType = \"iso\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n SourceFile = new ProxmoxVE.Storage.Inputs.FileSourceFileArgs\n {\n Path = \"https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Storage.NewFile(ctx, \"ubuntuContainerTemplate\", \u0026Storage.FileArgs{\n\t\t\tContentType: pulumi.String(\"iso\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tSourceFile: \u0026storage.FileSourceFileArgs{\n\t\t\t\tPath: pulumi.String(\"https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Storage.File;\nimport com.pulumi.proxmoxve.Storage.FileArgs;\nimport com.pulumi.proxmoxve.Storage.inputs.FileSourceFileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ubuntuContainerTemplate = new File(\"ubuntuContainerTemplate\", FileArgs.builder()\n .contentType(\"iso\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .sourceFile(FileSourceFileArgs.builder()\n .path(\"https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ubuntuContainerTemplate:\n type: proxmoxve:Storage:File\n properties:\n contentType: iso\n datastoreId: local\n nodeName: pve\n sourceFile:\n path: https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Container Template (`vztmpl`)\n\n\u003e Consider using `proxmoxve.Download.File` resource instead. Using this resource for container images is less efficient (requires to transfer uploaded image to node) though still supported.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst ubuntuContainerTemplate = new proxmoxve.storage.File(\"ubuntuContainerTemplate\", {\n contentType: \"vztmpl\",\n datastoreId: \"local\",\n nodeName: \"first-node\",\n sourceFile: {\n path: \"https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nubuntu_container_template = proxmoxve.storage.File(\"ubuntuContainerTemplate\",\n content_type=\"vztmpl\",\n datastore_id=\"local\",\n node_name=\"first-node\",\n source_file={\n \"path\": \"https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ubuntuContainerTemplate = new ProxmoxVE.Storage.File(\"ubuntuContainerTemplate\", new()\n {\n ContentType = \"vztmpl\",\n DatastoreId = \"local\",\n NodeName = \"first-node\",\n SourceFile = new ProxmoxVE.Storage.Inputs.FileSourceFileArgs\n {\n Path = \"https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Storage.NewFile(ctx, \"ubuntuContainerTemplate\", \u0026Storage.FileArgs{\n\t\t\tContentType: pulumi.String(\"vztmpl\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"first-node\"),\n\t\t\tSourceFile: \u0026storage.FileSourceFileArgs{\n\t\t\t\tPath: pulumi.String(\"https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Storage.File;\nimport com.pulumi.proxmoxve.Storage.FileArgs;\nimport com.pulumi.proxmoxve.Storage.inputs.FileSourceFileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ubuntuContainerTemplate = new File(\"ubuntuContainerTemplate\", FileArgs.builder()\n .contentType(\"vztmpl\")\n .datastoreId(\"local\")\n .nodeName(\"first-node\")\n .sourceFile(FileSourceFileArgs.builder()\n .path(\"https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ubuntuContainerTemplate:\n type: proxmoxve:Storage:File\n properties:\n contentType: vztmpl\n datastoreId: local\n nodeName: first-node\n sourceFile:\n path: https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Important Notes\n\nThe Proxmox VE API endpoint for file uploads does not support chunked transfer\nencoding, which means that we must first store the source file as a temporary\nfile locally before uploading it.\n\nYou must ensure that you have at least `Size-in-MB * 2 + 1` MB of storage space\navailable (twice the size plus overhead because a multipart payload needs to be\ncreated as another temporary file).\n\nBy default, if the specified file already exists, the resource will\nunconditionally replace it and take ownership of the resource. On destruction,\nthe file will be deleted as if it did not exist before. If you want to prevent\nthe resource from replacing the file, set `overwrite` to `false`.\n\n## Import\n\nInstances can be imported using the `node_name`, `datastore_id`, `content_type`\n\nand the `file_name` in the following format:\n\ntext\n\nnode_name:datastore_id/content_type/file_name\n\nExample:\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Storage/file:File cloud_config pve/local:snippets/example.cloud-config.yaml\n```\n\n","properties":{"contentType":{"type":"string","description":"The content type. If not specified, the content\ntype will be inferred from the file extension. Valid values are:\n"},"datastoreId":{"type":"string","description":"The datastore id.\n"},"fileMode":{"type":"string","description":"The file mode in octal format, e.g. `0700` or `600`. Note that the prefixes `0o` and `0x` is not supported! Setting this attribute is also only allowed for `root@pam` authenticated user.\n"},"fileModificationDate":{"type":"string","description":"The file modification date (RFC 3339).\n"},"fileName":{"type":"string","description":"The file name.\n"},"fileSize":{"type":"integer","description":"The file size in bytes.\n"},"fileTag":{"type":"string","description":"The file tag.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing file (defaults to\n`true`).\n"},"sourceFile":{"$ref":"#/types/proxmoxve:Storage/FileSourceFile:FileSourceFile","description":"The source file (conflicts with `source_raw`),\ncould be a local file or a URL. If the source file is a URL, the file will\nbe downloaded and stored locally before uploading it to Proxmox VE.\n"},"sourceRaw":{"$ref":"#/types/proxmoxve:Storage/FileSourceRaw:FileSourceRaw","description":"The raw source (conflicts with `source_file`).\n"},"timeoutUpload":{"type":"integer","description":"Timeout for uploading ISO/VSTMPL files in\nseconds (defaults to 1800).\n"}},"required":["contentType","datastoreId","fileModificationDate","fileName","fileSize","fileTag","nodeName"],"inputProperties":{"contentType":{"type":"string","description":"The content type. If not specified, the content\ntype will be inferred from the file extension. Valid values are:\n","willReplaceOnChanges":true},"datastoreId":{"type":"string","description":"The datastore id.\n","willReplaceOnChanges":true},"fileMode":{"type":"string","description":"The file mode in octal format, e.g. `0700` or `600`. Note that the prefixes `0o` and `0x` is not supported! Setting this attribute is also only allowed for `root@pam` authenticated user.\n","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The node name.\n","willReplaceOnChanges":true},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing file (defaults to\n`true`).\n"},"sourceFile":{"$ref":"#/types/proxmoxve:Storage/FileSourceFile:FileSourceFile","description":"The source file (conflicts with `source_raw`),\ncould be a local file or a URL. If the source file is a URL, the file will\nbe downloaded and stored locally before uploading it to Proxmox VE.\n","willReplaceOnChanges":true},"sourceRaw":{"$ref":"#/types/proxmoxve:Storage/FileSourceRaw:FileSourceRaw","description":"The raw source (conflicts with `source_file`).\n","willReplaceOnChanges":true},"timeoutUpload":{"type":"integer","description":"Timeout for uploading ISO/VSTMPL files in\nseconds (defaults to 1800).\n"}},"requiredInputs":["datastoreId","nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering File resources.\n","properties":{"contentType":{"type":"string","description":"The content type. If not specified, the content\ntype will be inferred from the file extension. Valid values are:\n","willReplaceOnChanges":true},"datastoreId":{"type":"string","description":"The datastore id.\n","willReplaceOnChanges":true},"fileMode":{"type":"string","description":"The file mode in octal format, e.g. `0700` or `600`. Note that the prefixes `0o` and `0x` is not supported! Setting this attribute is also only allowed for `root@pam` authenticated user.\n","willReplaceOnChanges":true},"fileModificationDate":{"type":"string","description":"The file modification date (RFC 3339).\n","willReplaceOnChanges":true},"fileName":{"type":"string","description":"The file name.\n"},"fileSize":{"type":"integer","description":"The file size in bytes.\n","willReplaceOnChanges":true},"fileTag":{"type":"string","description":"The file tag.\n","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The node name.\n","willReplaceOnChanges":true},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing file (defaults to\n`true`).\n"},"sourceFile":{"$ref":"#/types/proxmoxve:Storage/FileSourceFile:FileSourceFile","description":"The source file (conflicts with `source_raw`),\ncould be a local file or a URL. If the source file is a URL, the file will\nbe downloaded and stored locally before uploading it to Proxmox VE.\n","willReplaceOnChanges":true},"sourceRaw":{"$ref":"#/types/proxmoxve:Storage/FileSourceRaw:FileSourceRaw","description":"The raw source (conflicts with `source_file`).\n","willReplaceOnChanges":true},"timeoutUpload":{"type":"integer","description":"Timeout for uploading ISO/VSTMPL files in\nseconds (defaults to 1800).\n"}},"type":"object"}},"proxmoxve:User/token:Token":{"description":"User API tokens.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\n// if creating a user token, the user must be created first\nconst user = new proxmoxve.permission.User(\"user\", {\n comment: \"Managed by Pulumi\",\n email: \"user@pve\",\n enabled: true,\n expirationDate: \"2034-01-01T22:00:00Z\",\n userId: \"user@pve\",\n});\nconst userToken = new proxmoxve.user.Token(\"userToken\", {\n comment: \"Managed by Pulumi\",\n expirationDate: \"2033-01-01T22:00:00Z\",\n tokenName: \"tk1\",\n userId: user.userId,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\n# if creating a user token, the user must be created first\nuser = proxmoxve.permission.User(\"user\",\n comment=\"Managed by Pulumi\",\n email=\"user@pve\",\n enabled=True,\n expiration_date=\"2034-01-01T22:00:00Z\",\n user_id=\"user@pve\")\nuser_token = proxmoxve.user.Token(\"userToken\",\n comment=\"Managed by Pulumi\",\n expiration_date=\"2033-01-01T22:00:00Z\",\n token_name=\"tk1\",\n user_id=user.user_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // if creating a user token, the user must be created first\n var user = new ProxmoxVE.Permission.User(\"user\", new()\n {\n Comment = \"Managed by Pulumi\",\n Email = \"user@pve\",\n Enabled = true,\n ExpirationDate = \"2034-01-01T22:00:00Z\",\n UserId = \"user@pve\",\n });\n\n var userToken = new ProxmoxVE.User.Token(\"userToken\", new()\n {\n Comment = \"Managed by Pulumi\",\n ExpirationDate = \"2033-01-01T22:00:00Z\",\n TokenName = \"tk1\",\n UserId = user.UserId,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/User\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// if creating a user token, the user must be created first\n\t\tuser, err := Permission.NewUser(ctx, \"user\", \u0026Permission.UserArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tEmail: pulumi.String(\"user@pve\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tExpirationDate: pulumi.String(\"2034-01-01T22:00:00Z\"),\n\t\t\tUserId: pulumi.String(\"user@pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = User.NewToken(ctx, \"userToken\", \u0026User.TokenArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tExpirationDate: pulumi.String(\"2033-01-01T22:00:00Z\"),\n\t\t\tTokenName: pulumi.String(\"tk1\"),\n\t\t\tUserId: user.UserId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.User;\nimport com.pulumi.proxmoxve.Permission.UserArgs;\nimport com.pulumi.proxmoxve.User.Token;\nimport com.pulumi.proxmoxve.User.TokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // if creating a user token, the user must be created first\n var user = new User(\"user\", UserArgs.builder()\n .comment(\"Managed by Pulumi\")\n .email(\"user@pve\")\n .enabled(true)\n .expirationDate(\"2034-01-01T22:00:00Z\")\n .userId(\"user@pve\")\n .build());\n\n var userToken = new Token(\"userToken\", TokenArgs.builder()\n .comment(\"Managed by Pulumi\")\n .expirationDate(\"2033-01-01T22:00:00Z\")\n .tokenName(\"tk1\")\n .userId(user.userId())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # if creating a user token, the user must be created first\n user:\n type: proxmoxve:Permission:User\n properties:\n comment: Managed by Pulumi\n email: user@pve\n enabled: true\n expirationDate: 2034-01-01T22:00:00Z\n userId: user@pve\n userToken:\n type: proxmoxve:User:Token\n properties:\n comment: Managed by Pulumi\n expirationDate: 2033-01-01T22:00:00Z\n tokenName: tk1\n userId: ${user.userId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\n#Tokens can be imported using they identifiers in format `user_id!token_name` format, e.g.:\n\n```sh\n$ pulumi import proxmoxve:User/token:Token token1 user@pve!token1\n```\n\n","properties":{"comment":{"type":"string","description":"Comment for the token.\n"},"expirationDate":{"type":"string","description":"Expiration date for the token.\n"},"privilegesSeparation":{"type":"boolean","description":"Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.\n"},"tokenName":{"type":"string","description":"User-specific token identifier.\n"},"userId":{"type":"string","description":"User identifier.\n"},"value":{"type":"string","description":"API token value used for authentication. It is populated only when creating a new token, and can't be retrieved at import.\n","secret":true}},"required":["privilegesSeparation","tokenName","userId","value"],"inputProperties":{"comment":{"type":"string","description":"Comment for the token.\n"},"expirationDate":{"type":"string","description":"Expiration date for the token.\n"},"privilegesSeparation":{"type":"boolean","description":"Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.\n"},"tokenName":{"type":"string","description":"User-specific token identifier.\n"},"userId":{"type":"string","description":"User identifier.\n"}},"requiredInputs":["tokenName","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering Token resources.\n","properties":{"comment":{"type":"string","description":"Comment for the token.\n"},"expirationDate":{"type":"string","description":"Expiration date for the token.\n"},"privilegesSeparation":{"type":"boolean","description":"Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.\n"},"tokenName":{"type":"string","description":"User-specific token identifier.\n"},"userId":{"type":"string","description":"User identifier.\n"},"value":{"type":"string","description":"API token value used for authentication. It is populated only when creating a new token, and can't be retrieved at import.\n","secret":true}},"type":"object"}},"proxmoxve:VM/virtualMachine2:VirtualMachine2":{"description":"!\u003e **DO NOT USE**\nThis is an experimental implementation of a Proxmox VM resource using Plugin Framework.\u003cbr\u003e\u003cbr\u003eIt is a Proof of Concept, highly experimental and **will** change in future. It does not support all features of the Proxmox API for VMs and **MUST NOT** be used in production.\n\n\u003e Many attributes are marked as **optional** _and_ **computed** in the schema,\nhence you may seem added to the plan with \"(known after apply)\" status, even if they are not set in the configuration.\nThis is done to support the `clone` operation, when a VM is created from an existing VM or template,\nand the source attributes are copied to the clone.\u003cbr\u003e\u003cbr\u003e\nComputed attributes allow the provider to set those attributes without user input.\nThe attributes are also marked as optional to allow the practitioner to set (or overwrite) them if needed.\n","properties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cdrom:VirtualMachine2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Clone:VirtualMachine2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cpu:VirtualMachine2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Timeouts:VirtualMachine2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Vga:VirtualMachine2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"required":["cdrom","cpu","name","nodeName","stopOnDestroy","tags","vga"],"inputProperties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cdrom:VirtualMachine2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Clone:VirtualMachine2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cpu:VirtualMachine2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Timeouts:VirtualMachine2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Vga:VirtualMachine2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering VirtualMachine2 resources.\n","properties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cdrom:VirtualMachine2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Clone:VirtualMachine2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cpu:VirtualMachine2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Timeouts:VirtualMachine2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Vga:VirtualMachine2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"type":"object"},"aliases":[{"type":"proxmoxve:index/vm2:Vm2"}]},"proxmoxve:VM/virtualMachine:VirtualMachine":{"description":"Manages a virtual machine.\n\n\u003e This resource uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section.\n\n## Import\n\nInstances can be imported using the `node_name` and the `vm_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:VM/virtualMachine:VirtualMachine ubuntu_vm first-node/4321\n```\n\n","properties":{"acpi":{"type":"boolean","description":"Whether to enable ACPI (defaults to `true`).\n"},"agent":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAgent:VirtualMachineAgent","description":"The QEMU agent configuration.\n"},"audioDevice":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAudioDevice:VirtualMachineAudioDevice","description":"An audio device.\n"},"bios":{"type":"string","description":"The BIOS implementation (defaults to `seabios`).\n"},"bootOrders":{"type":"array","items":{"type":"string"},"description":"Specify a list of devices to boot from in the order\nthey appear in the list (defaults to `[]`).\n"},"cdrom":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCdrom:VirtualMachineCdrom","description":"The CDROM configuration.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachineClone:VirtualMachineClone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCpu:VirtualMachineCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disks":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineDisk:VirtualMachineDisk"},"description":"A disk (multiple blocks supported).\n"},"efiDisk":{"$ref":"#/types/proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk","description":"The efi disk device (required if `bios` is set\nto `ovmf`)\n"},"hookScriptFileId":{"type":"string","description":"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).\n"},"hostpcis":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineHostpci:VirtualMachineHostpci"},"description":"A host PCI device mapping (multiple blocks supported).\n"},"initialization":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitialization:VirtualMachineInitialization","description":"The cloud-init configuration.\n"},"ipv4Addresses":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The IPv4 addresses per network interface published by the\nQEMU agent (empty list when `agent.enabled` is `false`)\n"},"ipv6Addresses":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The IPv6 addresses per network interface published by the\nQEMU agent (empty list when `agent.enabled` is `false`)\n"},"keyboardLayout":{"type":"string","description":"The keyboard layout (defaults to `en-us`).\n"},"kvmArguments":{"type":"string","description":"Arbitrary arguments passed to kvm.\n"},"macAddresses":{"type":"array","items":{"type":"string"},"description":"The MAC addresses published by the QEMU agent with fallback\nto the network device configuration, if the agent is disabled\n"},"machine":{"type":"string","description":"The VM machine type (defaults to `pc`).\n"},"memory":{"$ref":"#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory","description":"The memory configuration.\n"},"migrate":{"type":"boolean","description":"Migrate the VM on node change instead of re-creating\nit (defaults to `false`).\n"},"name":{"type":"string","description":"The virtual machine name.\n"},"networkDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNetworkDevice:VirtualMachineNetworkDevice"},"description":"A network device (multiple blocks supported).\n"},"networkInterfaceNames":{"type":"array","items":{"type":"string"},"description":"The network interface names published by the QEMU\nagent (empty list when `agent.enabled` is `false`)\n"},"nodeName":{"type":"string","description":"The name of the node to assign the virtual machine\nto.\n"},"numas":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNuma:VirtualMachineNuma"},"description":"The NUMA configuration.\n"},"onBoot":{"type":"boolean","description":"Specifies whether a VM will be started during system\nboot. (defaults to `true`)\n"},"operatingSystem":{"$ref":"#/types/proxmoxve:VM/VirtualMachineOperatingSystem:VirtualMachineOperatingSystem","description":"The Operating System configuration.\n"},"poolId":{"type":"string","description":"The identifier for a pool to assign the virtual machine to.\n"},"protection":{"type":"boolean","description":"Sets the protection flag of the VM. This will disable the remove VM and remove disk operations (defaults to `false`).\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults to `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults to\n`virtio-scsi-pci`).\n"},"serialDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSerialDevice:VirtualMachineSerialDevice"},"description":"A serial device (multiple blocks supported).\n"},"smbios":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSmbios:VirtualMachineSmbios","description":"The SMBIOS (type1) settings for the VM.\n"},"started":{"type":"boolean","description":"Whether to start the virtual machine (defaults\nto `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:VM/VirtualMachineStartup:VirtualMachineStartup","description":"Defines startup and shutdown behavior of the VM.\n"},"stopOnDestroy":{"type":"boolean","description":"Whether to stop rather than shutdown on VM destroy (defaults to `false`)\n"},"tabletDevice":{"type":"boolean","description":"Whether to enable the USB tablet device (defaults\nto `true`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags of the VM. This is only meta information (\ndefaults to `[]`). Note: Proxmox always sorts the VM tags. If the list in\ntemplate is not sorted, then Proxmox will always report a difference on the\nresource. You may use the `ignore_changes` lifecycle meta-argument to ignore\nchanges to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n"},"timeoutClone":{"type":"integer","description":"Timeout for cloning a VM in seconds (defaults to\n1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a VM in seconds (defaults to\n1800).\n"},"timeoutMigrate":{"type":"integer","description":"Timeout for migrating the VM (defaults to\n1800).\n"},"timeoutMoveDisk":{"type":"integer","description":"MoveDisk timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (timeout_create / timeout_clone / timeout_migrate) is used instead."},"timeoutReboot":{"type":"integer","description":"Timeout for rebooting a VM in seconds (defaults\nto 1800).\n"},"timeoutShutdownVm":{"type":"integer","description":"Timeout for shutting down a VM in seconds (\ndefaults to 1800).\n"},"timeoutStartVm":{"type":"integer","description":"Timeout for starting a VM in seconds (defaults\nto 1800).\n"},"timeoutStopVm":{"type":"integer","description":"Timeout for stopping a VM in seconds (defaults\nto 300).\n"},"tpmState":{"$ref":"#/types/proxmoxve:VM/VirtualMachineTpmState:VirtualMachineTpmState","description":"The TPM state device.\n"},"usbs":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineUsb:VirtualMachineUsb"},"description":"A host USB device mapping (multiple blocks supported).\n"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachineVga:VirtualMachineVga","description":"The VGA configuration.\n"},"vmId":{"type":"integer","description":"The VM identifier.\n"},"watchdog":{"$ref":"#/types/proxmoxve:VM/VirtualMachineWatchdog:VirtualMachineWatchdog","description":"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).\n"}},"required":["ipv4Addresses","ipv6Addresses","macAddresses","name","networkInterfaceNames","nodeName","vmId"],"inputProperties":{"acpi":{"type":"boolean","description":"Whether to enable ACPI (defaults to `true`).\n"},"agent":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAgent:VirtualMachineAgent","description":"The QEMU agent configuration.\n"},"audioDevice":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAudioDevice:VirtualMachineAudioDevice","description":"An audio device.\n"},"bios":{"type":"string","description":"The BIOS implementation (defaults to `seabios`).\n"},"bootOrders":{"type":"array","items":{"type":"string"},"description":"Specify a list of devices to boot from in the order\nthey appear in the list (defaults to `[]`).\n"},"cdrom":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCdrom:VirtualMachineCdrom","description":"The CDROM configuration.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachineClone:VirtualMachineClone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCpu:VirtualMachineCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disks":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineDisk:VirtualMachineDisk"},"description":"A disk (multiple blocks supported).\n"},"efiDisk":{"$ref":"#/types/proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk","description":"The efi disk device (required if `bios` is set\nto `ovmf`)\n","willReplaceOnChanges":true},"hookScriptFileId":{"type":"string","description":"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).\n"},"hostpcis":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineHostpci:VirtualMachineHostpci"},"description":"A host PCI device mapping (multiple blocks supported).\n"},"initialization":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitialization:VirtualMachineInitialization","description":"The cloud-init configuration.\n"},"keyboardLayout":{"type":"string","description":"The keyboard layout (defaults to `en-us`).\n"},"kvmArguments":{"type":"string","description":"Arbitrary arguments passed to kvm.\n"},"macAddresses":{"type":"array","items":{"type":"string"},"description":"The MAC addresses published by the QEMU agent with fallback\nto the network device configuration, if the agent is disabled\n"},"machine":{"type":"string","description":"The VM machine type (defaults to `pc`).\n"},"memory":{"$ref":"#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory","description":"The memory configuration.\n"},"migrate":{"type":"boolean","description":"Migrate the VM on node change instead of re-creating\nit (defaults to `false`).\n"},"name":{"type":"string","description":"The virtual machine name.\n"},"networkDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNetworkDevice:VirtualMachineNetworkDevice"},"description":"A network device (multiple blocks supported).\n"},"nodeName":{"type":"string","description":"The name of the node to assign the virtual machine\nto.\n"},"numas":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNuma:VirtualMachineNuma"},"description":"The NUMA configuration.\n"},"onBoot":{"type":"boolean","description":"Specifies whether a VM will be started during system\nboot. (defaults to `true`)\n"},"operatingSystem":{"$ref":"#/types/proxmoxve:VM/VirtualMachineOperatingSystem:VirtualMachineOperatingSystem","description":"The Operating System configuration.\n"},"poolId":{"type":"string","description":"The identifier for a pool to assign the virtual machine to.\n"},"protection":{"type":"boolean","description":"Sets the protection flag of the VM. This will disable the remove VM and remove disk operations (defaults to `false`).\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults to `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults to\n`virtio-scsi-pci`).\n"},"serialDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSerialDevice:VirtualMachineSerialDevice"},"description":"A serial device (multiple blocks supported).\n"},"smbios":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSmbios:VirtualMachineSmbios","description":"The SMBIOS (type1) settings for the VM.\n"},"started":{"type":"boolean","description":"Whether to start the virtual machine (defaults\nto `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:VM/VirtualMachineStartup:VirtualMachineStartup","description":"Defines startup and shutdown behavior of the VM.\n"},"stopOnDestroy":{"type":"boolean","description":"Whether to stop rather than shutdown on VM destroy (defaults to `false`)\n"},"tabletDevice":{"type":"boolean","description":"Whether to enable the USB tablet device (defaults\nto `true`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags of the VM. This is only meta information (\ndefaults to `[]`). Note: Proxmox always sorts the VM tags. If the list in\ntemplate is not sorted, then Proxmox will always report a difference on the\nresource. You may use the `ignore_changes` lifecycle meta-argument to ignore\nchanges to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n","willReplaceOnChanges":true},"timeoutClone":{"type":"integer","description":"Timeout for cloning a VM in seconds (defaults to\n1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a VM in seconds (defaults to\n1800).\n"},"timeoutMigrate":{"type":"integer","description":"Timeout for migrating the VM (defaults to\n1800).\n"},"timeoutMoveDisk":{"type":"integer","description":"MoveDisk timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (timeout_create / timeout_clone / timeout_migrate) is used instead."},"timeoutReboot":{"type":"integer","description":"Timeout for rebooting a VM in seconds (defaults\nto 1800).\n"},"timeoutShutdownVm":{"type":"integer","description":"Timeout for shutting down a VM in seconds (\ndefaults to 1800).\n"},"timeoutStartVm":{"type":"integer","description":"Timeout for starting a VM in seconds (defaults\nto 1800).\n"},"timeoutStopVm":{"type":"integer","description":"Timeout for stopping a VM in seconds (defaults\nto 300).\n"},"tpmState":{"$ref":"#/types/proxmoxve:VM/VirtualMachineTpmState:VirtualMachineTpmState","description":"The TPM state device.\n","willReplaceOnChanges":true},"usbs":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineUsb:VirtualMachineUsb"},"description":"A host USB device mapping (multiple blocks supported).\n"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachineVga:VirtualMachineVga","description":"The VGA configuration.\n"},"vmId":{"type":"integer","description":"The VM identifier.\n"},"watchdog":{"$ref":"#/types/proxmoxve:VM/VirtualMachineWatchdog:VirtualMachineWatchdog","description":"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).\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering VirtualMachine resources.\n","properties":{"acpi":{"type":"boolean","description":"Whether to enable ACPI (defaults to `true`).\n"},"agent":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAgent:VirtualMachineAgent","description":"The QEMU agent configuration.\n"},"audioDevice":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAudioDevice:VirtualMachineAudioDevice","description":"An audio device.\n"},"bios":{"type":"string","description":"The BIOS implementation (defaults to `seabios`).\n"},"bootOrders":{"type":"array","items":{"type":"string"},"description":"Specify a list of devices to boot from in the order\nthey appear in the list (defaults to `[]`).\n"},"cdrom":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCdrom:VirtualMachineCdrom","description":"The CDROM configuration.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachineClone:VirtualMachineClone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCpu:VirtualMachineCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disks":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineDisk:VirtualMachineDisk"},"description":"A disk (multiple blocks supported).\n"},"efiDisk":{"$ref":"#/types/proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk","description":"The efi disk device (required if `bios` is set\nto `ovmf`)\n","willReplaceOnChanges":true},"hookScriptFileId":{"type":"string","description":"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).\n"},"hostpcis":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineHostpci:VirtualMachineHostpci"},"description":"A host PCI device mapping (multiple blocks supported).\n"},"initialization":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitialization:VirtualMachineInitialization","description":"The cloud-init configuration.\n"},"ipv4Addresses":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The IPv4 addresses per network interface published by the\nQEMU agent (empty list when `agent.enabled` is `false`)\n"},"ipv6Addresses":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The IPv6 addresses per network interface published by the\nQEMU agent (empty list when `agent.enabled` is `false`)\n"},"keyboardLayout":{"type":"string","description":"The keyboard layout (defaults to `en-us`).\n"},"kvmArguments":{"type":"string","description":"Arbitrary arguments passed to kvm.\n"},"macAddresses":{"type":"array","items":{"type":"string"},"description":"The MAC addresses published by the QEMU agent with fallback\nto the network device configuration, if the agent is disabled\n"},"machine":{"type":"string","description":"The VM machine type (defaults to `pc`).\n"},"memory":{"$ref":"#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory","description":"The memory configuration.\n"},"migrate":{"type":"boolean","description":"Migrate the VM on node change instead of re-creating\nit (defaults to `false`).\n"},"name":{"type":"string","description":"The virtual machine name.\n"},"networkDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNetworkDevice:VirtualMachineNetworkDevice"},"description":"A network device (multiple blocks supported).\n"},"networkInterfaceNames":{"type":"array","items":{"type":"string"},"description":"The network interface names published by the QEMU\nagent (empty list when `agent.enabled` is `false`)\n"},"nodeName":{"type":"string","description":"The name of the node to assign the virtual machine\nto.\n"},"numas":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNuma:VirtualMachineNuma"},"description":"The NUMA configuration.\n"},"onBoot":{"type":"boolean","description":"Specifies whether a VM will be started during system\nboot. (defaults to `true`)\n"},"operatingSystem":{"$ref":"#/types/proxmoxve:VM/VirtualMachineOperatingSystem:VirtualMachineOperatingSystem","description":"The Operating System configuration.\n"},"poolId":{"type":"string","description":"The identifier for a pool to assign the virtual machine to.\n"},"protection":{"type":"boolean","description":"Sets the protection flag of the VM. This will disable the remove VM and remove disk operations (defaults to `false`).\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults to `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults to\n`virtio-scsi-pci`).\n"},"serialDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSerialDevice:VirtualMachineSerialDevice"},"description":"A serial device (multiple blocks supported).\n"},"smbios":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSmbios:VirtualMachineSmbios","description":"The SMBIOS (type1) settings for the VM.\n"},"started":{"type":"boolean","description":"Whether to start the virtual machine (defaults\nto `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:VM/VirtualMachineStartup:VirtualMachineStartup","description":"Defines startup and shutdown behavior of the VM.\n"},"stopOnDestroy":{"type":"boolean","description":"Whether to stop rather than shutdown on VM destroy (defaults to `false`)\n"},"tabletDevice":{"type":"boolean","description":"Whether to enable the USB tablet device (defaults\nto `true`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags of the VM. This is only meta information (\ndefaults to `[]`). Note: Proxmox always sorts the VM tags. If the list in\ntemplate is not sorted, then Proxmox will always report a difference on the\nresource. You may use the `ignore_changes` lifecycle meta-argument to ignore\nchanges to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n","willReplaceOnChanges":true},"timeoutClone":{"type":"integer","description":"Timeout for cloning a VM in seconds (defaults to\n1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a VM in seconds (defaults to\n1800).\n"},"timeoutMigrate":{"type":"integer","description":"Timeout for migrating the VM (defaults to\n1800).\n"},"timeoutMoveDisk":{"type":"integer","description":"MoveDisk timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (timeout_create / timeout_clone / timeout_migrate) is used instead."},"timeoutReboot":{"type":"integer","description":"Timeout for rebooting a VM in seconds (defaults\nto 1800).\n"},"timeoutShutdownVm":{"type":"integer","description":"Timeout for shutting down a VM in seconds (\ndefaults to 1800).\n"},"timeoutStartVm":{"type":"integer","description":"Timeout for starting a VM in seconds (defaults\nto 1800).\n"},"timeoutStopVm":{"type":"integer","description":"Timeout for stopping a VM in seconds (defaults\nto 300).\n"},"tpmState":{"$ref":"#/types/proxmoxve:VM/VirtualMachineTpmState:VirtualMachineTpmState","description":"The TPM state device.\n","willReplaceOnChanges":true},"usbs":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineUsb:VirtualMachineUsb"},"description":"A host USB device mapping (multiple blocks supported).\n"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachineVga:VirtualMachineVga","description":"The VGA configuration.\n"},"vmId":{"type":"integer","description":"The VM identifier.\n"},"watchdog":{"$ref":"#/types/proxmoxve:VM/VirtualMachineWatchdog:VirtualMachineWatchdog","description":"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).\n"}},"type":"object"}},"proxmoxve:index/acl:Acl":{"description":"Manages ACLs on the Proxmox cluster.\n\nACLs are used to control access to resources in the Proxmox cluster.\nEach ACL consists of a path, a user, group or token, a role, and a flag to allow propagation of permissions.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst operationsAutomation = new proxmoxve.permission.User(\"operationsAutomation\", {\n comment: \"Managed by Pulumi\",\n password: \"a-strong-password\",\n userId: \"operations-automation@pve\",\n});\nconst operationsMonitoring = new proxmoxve.permission.Role(\"operationsMonitoring\", {\n roleId: \"operations-monitoring\",\n privileges: [\"VM.Monitor\"],\n});\nconst operationsAutomationMonitoring = new proxmoxve.Acl(\"operationsAutomationMonitoring\", {\n userId: operationsAutomation.userId,\n roleId: operationsMonitoring.roleId,\n path: \"/vms/1234\",\n propagate: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_automation = proxmoxve.permission.User(\"operationsAutomation\",\n comment=\"Managed by Pulumi\",\n password=\"a-strong-password\",\n user_id=\"operations-automation@pve\")\noperations_monitoring = proxmoxve.permission.Role(\"operationsMonitoring\",\n role_id=\"operations-monitoring\",\n privileges=[\"VM.Monitor\"])\noperations_automation_monitoring = proxmoxve.Acl(\"operationsAutomationMonitoring\",\n user_id=operations_automation.user_id,\n role_id=operations_monitoring.role_id,\n path=\"/vms/1234\",\n propagate=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsAutomation = new ProxmoxVE.Permission.User(\"operationsAutomation\", new()\n {\n Comment = \"Managed by Pulumi\",\n Password = \"a-strong-password\",\n UserId = \"operations-automation@pve\",\n });\n\n var operationsMonitoring = new ProxmoxVE.Permission.Role(\"operationsMonitoring\", new()\n {\n RoleId = \"operations-monitoring\",\n Privileges = new[]\n {\n \"VM.Monitor\",\n },\n });\n\n var operationsAutomationMonitoring = new ProxmoxVE.Acl(\"operationsAutomationMonitoring\", new()\n {\n UserId = operationsAutomation.UserId,\n RoleId = operationsMonitoring.RoleId,\n Path = \"/vms/1234\",\n Propagate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\toperationsAutomation, err := Permission.NewUser(ctx, \"operationsAutomation\", \u0026Permission.UserArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tPassword: pulumi.String(\"a-strong-password\"),\n\t\t\tUserId: pulumi.String(\"operations-automation@pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\toperationsMonitoring, err := Permission.NewRole(ctx, \"operationsMonitoring\", \u0026Permission.RoleArgs{\n\t\t\tRoleId: pulumi.String(\"operations-monitoring\"),\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"VM.Monitor\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = proxmoxve.NewAcl(ctx, \"operationsAutomationMonitoring\", \u0026proxmoxve.AclArgs{\n\t\t\tUserId: operationsAutomation.UserId,\n\t\t\tRoleId: operationsMonitoring.RoleId,\n\t\t\tPath: pulumi.String(\"/vms/1234\"),\n\t\t\tPropagate: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.User;\nimport com.pulumi.proxmoxve.Permission.UserArgs;\nimport com.pulumi.proxmoxve.Permission.Role;\nimport com.pulumi.proxmoxve.Permission.RoleArgs;\nimport com.pulumi.proxmoxve.Acl;\nimport com.pulumi.proxmoxve.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var operationsAutomation = new User(\"operationsAutomation\", UserArgs.builder()\n .comment(\"Managed by Pulumi\")\n .password(\"a-strong-password\")\n .userId(\"operations-automation@pve\")\n .build());\n\n var operationsMonitoring = new Role(\"operationsMonitoring\", RoleArgs.builder()\n .roleId(\"operations-monitoring\")\n .privileges(\"VM.Monitor\")\n .build());\n\n var operationsAutomationMonitoring = new Acl(\"operationsAutomationMonitoring\", AclArgs.builder()\n .userId(operationsAutomation.userId())\n .roleId(operationsMonitoring.roleId())\n .path(\"/vms/1234\")\n .propagate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n operationsAutomation:\n type: proxmoxve:Permission:User\n properties:\n comment: Managed by Pulumi\n password: a-strong-password\n userId: operations-automation@pve\n operationsMonitoring:\n type: proxmoxve:Permission:Role\n properties:\n roleId: operations-monitoring\n privileges:\n - VM.Monitor\n operationsAutomationMonitoring:\n type: proxmoxve:Acl\n properties:\n userId: ${operationsAutomation.userId}\n roleId: ${operationsMonitoring.roleId}\n path: /vms/1234\n propagate: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nACL can be imported using its unique identifier, e.g.: {path}?{group|user@realm|user@realm!token}?{role}\n\n```sh\n$ pulumi import proxmoxve:index/acl:Acl operations_automation_monitoring /?monitor@pve?operations-monitoring\n```\n\n","properties":{"groupId":{"type":"string","description":"The group the ACL should apply to (mutually exclusive with `token_id` and `user_id`)\n"},"path":{"type":"string","description":"Access control path\n"},"propagate":{"type":"boolean","description":"Allow to propagate (inherit) permissions.\n"},"roleId":{"type":"string","description":"The role to apply\n"},"tokenId":{"type":"string","description":"The token the ACL should apply to (mutually exclusive with `group_id` and `user_id`)\n"},"userId":{"type":"string","description":"The user the ACL should apply to (mutually exclusive with `group_id` and `token_id`)\n"}},"required":["path","propagate","roleId"],"inputProperties":{"groupId":{"type":"string","description":"The group the ACL should apply to (mutually exclusive with `token_id` and `user_id`)\n"},"path":{"type":"string","description":"Access control path\n"},"propagate":{"type":"boolean","description":"Allow to propagate (inherit) permissions.\n"},"roleId":{"type":"string","description":"The role to apply\n"},"tokenId":{"type":"string","description":"The token the ACL should apply to (mutually exclusive with `group_id` and `user_id`)\n"},"userId":{"type":"string","description":"The user the ACL should apply to (mutually exclusive with `group_id` and `token_id`)\n"}},"requiredInputs":["path","roleId"],"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"groupId":{"type":"string","description":"The group the ACL should apply to (mutually exclusive with `token_id` and `user_id`)\n"},"path":{"type":"string","description":"Access control path\n"},"propagate":{"type":"boolean","description":"Allow to propagate (inherit) permissions.\n"},"roleId":{"type":"string","description":"The role to apply\n"},"tokenId":{"type":"string","description":"The token the ACL should apply to (mutually exclusive with `group_id` and `user_id`)\n"},"userId":{"type":"string","description":"The user the ACL should apply to (mutually exclusive with `group_id` and `token_id`)\n"}},"type":"object"}},"proxmoxve:index/acmeAccount:AcmeAccount":{"description":"Manages an ACME account in a Proxmox VE cluster.\n\n\u003e This resource requires `root@pam` authentication.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.AcmeAccount(\"example\", {\n contact: \"example@email.com\",\n directory: \"https://acme-staging-v02.api.letsencrypt.org/directory\",\n tos: \"https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.AcmeAccount(\"example\",\n contact=\"example@email.com\",\n directory=\"https://acme-staging-v02.api.letsencrypt.org/directory\",\n tos=\"https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.AcmeAccount(\"example\", new()\n {\n Contact = \"example@email.com\",\n Directory = \"https://acme-staging-v02.api.letsencrypt.org/directory\",\n Tos = \"https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := proxmoxve.NewAcmeAccount(ctx, \"example\", \u0026proxmoxve.AcmeAccountArgs{\n\t\t\tContact: pulumi.String(\"example@email.com\"),\n\t\t\tDirectory: pulumi.String(\"https://acme-staging-v02.api.letsencrypt.org/directory\"),\n\t\t\tTos: pulumi.String(\"https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.AcmeAccount;\nimport com.pulumi.proxmoxve.AcmeAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new AcmeAccount(\"example\", AcmeAccountArgs.builder()\n .contact(\"example@email.com\")\n .directory(\"https://acme-staging-v02.api.letsencrypt.org/directory\")\n .tos(\"https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:AcmeAccount\n properties:\n contact: example@email.com\n directory: https://acme-staging-v02.api.letsencrypt.org/directory\n tos: https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nACME accounts can be imported using their name, e.g.:\n\n```sh\n$ pulumi import proxmoxve:index/acmeAccount:AcmeAccount example example\n```\n\n","properties":{"contact":{"type":"string","description":"The contact email addresses.\n"},"createdAt":{"type":"string","description":"The timestamp of the ACME account creation.\n"},"directory":{"type":"string","description":"The URL of the ACME CA directory endpoint.\n"},"eabHmacKey":{"type":"string","description":"The HMAC key for External Account Binding.\n"},"eabKid":{"type":"string","description":"The Key Identifier for External Account Binding.\n"},"location":{"type":"string","description":"The location of the ACME account.\n"},"name":{"type":"string","description":"The ACME account config file name.\n"},"tos":{"type":"string","description":"The URL of CA TermsOfService - setting this indicates agreement.\n"}},"required":["contact","createdAt","location","name"],"inputProperties":{"contact":{"type":"string","description":"The contact email addresses.\n"},"directory":{"type":"string","description":"The URL of the ACME CA directory endpoint.\n"},"eabHmacKey":{"type":"string","description":"The HMAC key for External Account Binding.\n"},"eabKid":{"type":"string","description":"The Key Identifier for External Account Binding.\n"},"name":{"type":"string","description":"The ACME account config file name.\n"},"tos":{"type":"string","description":"The URL of CA TermsOfService - setting this indicates agreement.\n"}},"requiredInputs":["contact"],"stateInputs":{"description":"Input properties used for looking up and filtering AcmeAccount resources.\n","properties":{"contact":{"type":"string","description":"The contact email addresses.\n"},"createdAt":{"type":"string","description":"The timestamp of the ACME account creation.\n"},"directory":{"type":"string","description":"The URL of the ACME CA directory endpoint.\n"},"eabHmacKey":{"type":"string","description":"The HMAC key for External Account Binding.\n"},"eabKid":{"type":"string","description":"The Key Identifier for External Account Binding.\n"},"location":{"type":"string","description":"The location of the ACME account.\n"},"name":{"type":"string","description":"The ACME account config file name.\n"},"tos":{"type":"string","description":"The URL of CA TermsOfService - setting this indicates agreement.\n"}},"type":"object"}},"proxmoxve:index/acmeDnsPlugin:AcmeDnsPlugin":{"description":"Manages an ACME plugin in a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.AcmeDnsPlugin(\"example\", {\n api: \"aws\",\n data: {\n AWS_ACCESS_KEY_ID: \"EXAMPLE\",\n AWS_SECRET_ACCESS_KEY: \"EXAMPLE\",\n },\n plugin: \"test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.AcmeDnsPlugin(\"example\",\n api=\"aws\",\n data={\n \"AWS_ACCESS_KEY_ID\": \"EXAMPLE\",\n \"AWS_SECRET_ACCESS_KEY\": \"EXAMPLE\",\n },\n plugin=\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.AcmeDnsPlugin(\"example\", new()\n {\n Api = \"aws\",\n Data = \n {\n { \"AWS_ACCESS_KEY_ID\", \"EXAMPLE\" },\n { \"AWS_SECRET_ACCESS_KEY\", \"EXAMPLE\" },\n },\n Plugin = \"test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := proxmoxve.NewAcmeDnsPlugin(ctx, \"example\", \u0026proxmoxve.AcmeDnsPluginArgs{\n\t\t\tApi: pulumi.String(\"aws\"),\n\t\t\tData: pulumi.StringMap{\n\t\t\t\t\"AWS_ACCESS_KEY_ID\": pulumi.String(\"EXAMPLE\"),\n\t\t\t\t\"AWS_SECRET_ACCESS_KEY\": pulumi.String(\"EXAMPLE\"),\n\t\t\t},\n\t\t\tPlugin: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.AcmeDnsPlugin;\nimport com.pulumi.proxmoxve.AcmeDnsPluginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new AcmeDnsPlugin(\"example\", AcmeDnsPluginArgs.builder()\n .api(\"aws\")\n .data(Map.ofEntries(\n Map.entry(\"AWS_ACCESS_KEY_ID\", \"EXAMPLE\"),\n Map.entry(\"AWS_SECRET_ACCESS_KEY\", \"EXAMPLE\")\n ))\n .plugin(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:AcmeDnsPlugin\n properties:\n api: aws\n data:\n AWS_ACCESS_KEY_ID: EXAMPLE\n AWS_SECRET_ACCESS_KEY: EXAMPLE\n plugin: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nACME accounts can be imported using their name, e.g.:\n\n```sh\n$ pulumi import proxmoxve:index/acmeDnsPlugin:AcmeDnsPlugin example test\n```\n\n","properties":{"api":{"type":"string","description":"API plugin name.\n"},"data":{"type":"object","additionalProperties":{"type":"string"},"description":"DNS plugin data.\n"},"digest":{"type":"string","description":"SHA1 digest of the current configuration. Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.\n"},"disable":{"type":"boolean","description":"Flag to disable the config.\n"},"plugin":{"type":"string","description":"ACME Plugin ID name.\n"},"validationDelay":{"type":"integer","description":"Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records (0 - 172800).\n"}},"required":["api","digest","plugin","validationDelay"],"inputProperties":{"api":{"type":"string","description":"API plugin name.\n"},"data":{"type":"object","additionalProperties":{"type":"string"},"description":"DNS plugin data.\n"},"digest":{"type":"string","description":"SHA1 digest of the current configuration. Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.\n"},"disable":{"type":"boolean","description":"Flag to disable the config.\n"},"plugin":{"type":"string","description":"ACME Plugin ID name.\n"},"validationDelay":{"type":"integer","description":"Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records (0 - 172800).\n"}},"requiredInputs":["api","plugin"],"stateInputs":{"description":"Input properties used for looking up and filtering AcmeDnsPlugin resources.\n","properties":{"api":{"type":"string","description":"API plugin name.\n"},"data":{"type":"object","additionalProperties":{"type":"string"},"description":"DNS plugin data.\n"},"digest":{"type":"string","description":"SHA1 digest of the current configuration. Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.\n"},"disable":{"type":"boolean","description":"Flag to disable the config.\n"},"plugin":{"type":"string","description":"ACME Plugin ID name.\n"},"validationDelay":{"type":"integer","description":"Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records (0 - 172800).\n"}},"type":"object"}},"proxmoxve:index/certifi:Certifi":{"description":"Manages the custom SSL/TLS certificate for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n example:\n type: proxmoxve:Certifi\n properties:\n certificate: ${proxmoxVirtualEnvironmentCertificateSelfSignedCert.certPem}\n nodeName: first-node\n privateKey: ${proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem}\n proxmoxVirtualEnvironmentCertificatePrivateKey:\n type: tls:PrivateKey\n properties:\n algorithm: RSA\n rsaBits: 2048\n proxmoxVirtualEnvironmentCertificateSelfSignedCert:\n type: tls:SelfSignedCert\n properties:\n keyAlgorithm: ${proxmoxVirtualEnvironmentCertificatePrivateKey.algorithm}\n privateKeyPem: ${proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem}\n subject:\n commonName: example.com\n organization: Terraform Provider for Proxmox\n validityPeriodHours: 8760\n allowedUses:\n - key_encipherment\n - digital_signature\n - server_auth\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"certificate":{"type":"string","description":"The PEM encoded certificate.\n"},"certificateChain":{"type":"string","description":"The PEM encoded certificate chain.\n"},"expirationDate":{"type":"string","description":"The expiration date (RFC 3339).\n"},"fileName":{"type":"string","description":"The file name.\n"},"issuer":{"type":"string","description":"The issuer.\n"},"nodeName":{"type":"string","description":"A node name.\n"},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing certificate\n"},"privateKey":{"type":"string","description":"The PEM encoded private key.\n","secret":true},"publicKeySize":{"type":"integer","description":"The public key size.\n"},"publicKeyType":{"type":"string","description":"The public key type.\n"},"sslFingerprint":{"type":"string","description":"The SSL fingerprint.\n"},"startDate":{"type":"string","description":"The start date (RFC 3339).\n"},"subject":{"type":"string","description":"The subject.\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The subject alternative names.\n"}},"required":["certificate","expirationDate","fileName","issuer","nodeName","privateKey","publicKeySize","publicKeyType","sslFingerprint","startDate","subject","subjectAlternativeNames"],"inputProperties":{"certificate":{"type":"string","description":"The PEM encoded certificate.\n"},"certificateChain":{"type":"string","description":"The PEM encoded certificate chain.\n"},"nodeName":{"type":"string","description":"A node name.\n","willReplaceOnChanges":true},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing certificate\n"},"privateKey":{"type":"string","description":"The PEM encoded private key.\n","secret":true}},"requiredInputs":["certificate","nodeName","privateKey"],"stateInputs":{"description":"Input properties used for looking up and filtering Certifi resources.\n","properties":{"certificate":{"type":"string","description":"The PEM encoded certificate.\n"},"certificateChain":{"type":"string","description":"The PEM encoded certificate chain.\n"},"expirationDate":{"type":"string","description":"The expiration date (RFC 3339).\n"},"fileName":{"type":"string","description":"The file name.\n"},"issuer":{"type":"string","description":"The issuer.\n"},"nodeName":{"type":"string","description":"A node name.\n","willReplaceOnChanges":true},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing certificate\n"},"privateKey":{"type":"string","description":"The PEM encoded private key.\n","secret":true},"publicKeySize":{"type":"integer","description":"The public key size.\n"},"publicKeyType":{"type":"string","description":"The public key type.\n"},"sslFingerprint":{"type":"string","description":"The SSL fingerprint.\n"},"startDate":{"type":"string","description":"The start date (RFC 3339).\n"},"subject":{"type":"string","description":"The subject.\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The subject alternative names.\n"}},"type":"object"}},"proxmoxve:index/dNS:DNS":{"description":"Manages the DNS configuration for a specific node.\n\n## Import\n\nInstances can be imported using the `node_name`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:index/dNS:DNS first_node first-node\n```\n\n","properties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"nodeName":{"type":"string","description":"A node name.\n"},"servers":{"type":"array","items":{"type":"string"},"description":"The DNS servers.\n"}},"required":["domain","nodeName"],"inputProperties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"nodeName":{"type":"string","description":"A node name.\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"type":"string"},"description":"The DNS servers.\n"}},"requiredInputs":["domain","nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering DNS resources.\n","properties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"nodeName":{"type":"string","description":"A node name.\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"type":"string"},"description":"The DNS servers.\n"}},"type":"object"}},"proxmoxve:index/hosts:Hosts":{"description":"Manages the host entries on a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n firstNodeHostEntries:\n type: proxmoxve:Hosts\n properties:\n entries:\n - address: 127.0.0.1\n hostnames:\n - localhost\n - localhost.localdomain\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Important Notes\n\nBe careful not to use this resource multiple times for the same node.\n\n## Import\n\nInstances can be imported using the `node_name`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:index/hosts:Hosts first_node_host_entries first-node\n```\n\n","properties":{"addresses":{"type":"array","items":{"type":"string"},"description":"The IP addresses.\n"},"digest":{"type":"string","description":"The SHA1 digest.\n"},"entries":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/HostsEntry:HostsEntry"},"description":"The host entries (conversion of `addresses` and `hostnames` into\nobjects).\n"},"entry":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/HostsEntry:HostsEntry"},"description":"A host entry (multiple blocks supported).\n"},"hostnames":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The hostnames associated with each of the IP addresses.\n"},"nodeName":{"type":"string","description":"A node name.\n"}},"required":["addresses","digest","entries","entry","hostnames","nodeName"],"inputProperties":{"entry":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/HostsEntry:HostsEntry"},"description":"A host entry (multiple blocks supported).\n"},"nodeName":{"type":"string","description":"A node name.\n"}},"requiredInputs":["entry","nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering Hosts resources.\n","properties":{"addresses":{"type":"array","items":{"type":"string"},"description":"The IP addresses.\n"},"digest":{"type":"string","description":"The SHA1 digest.\n"},"entries":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/HostsEntry:HostsEntry"},"description":"The host entries (conversion of `addresses` and `hostnames` into\nobjects).\n"},"entry":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/HostsEntry:HostsEntry"},"description":"A host entry (multiple blocks supported).\n"},"hostnames":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The hostnames associated with each of the IP addresses.\n"},"nodeName":{"type":"string","description":"A node name.\n"}},"type":"object"}},"proxmoxve:index/time:Time":{"description":"Manages the time for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst firstNodeTime = new proxmoxve.Time(\"firstNodeTime\", {\n nodeName: \"first-node\",\n timeZone: \"UTC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_time = proxmoxve.Time(\"firstNodeTime\",\n node_name=\"first-node\",\n time_zone=\"UTC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNodeTime = new ProxmoxVE.Time(\"firstNodeTime\", new()\n {\n NodeName = \"first-node\",\n TimeZone = \"UTC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := proxmoxve.NewTime(ctx, \"firstNodeTime\", \u0026proxmoxve.TimeArgs{\n\t\t\tNodeName: pulumi.String(\"first-node\"),\n\t\t\tTimeZone: pulumi.String(\"UTC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Time;\nimport com.pulumi.proxmoxve.TimeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var firstNodeTime = new Time(\"firstNodeTime\", TimeArgs.builder()\n .nodeName(\"first-node\")\n .timeZone(\"UTC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n firstNodeTime:\n type: proxmoxve:Time\n properties:\n nodeName: first-node\n timeZone: UTC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `node_name`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:index/time:Time first_node first-node\n```\n\n","properties":{"localTime":{"type":"string","description":"The node's local time.\n"},"nodeName":{"type":"string","description":"A node name.\n"},"timeZone":{"type":"string","description":"The node's time zone.\n"},"utcTime":{"type":"string","description":"The node's local time formatted as UTC.\n"}},"required":["localTime","nodeName","timeZone","utcTime"],"inputProperties":{"nodeName":{"type":"string","description":"A node name.\n"},"timeZone":{"type":"string","description":"The node's time zone.\n"}},"requiredInputs":["nodeName","timeZone"],"stateInputs":{"description":"Input properties used for looking up and filtering Time resources.\n","properties":{"localTime":{"type":"string","description":"The node's local time.\n"},"nodeName":{"type":"string","description":"A node name.\n"},"timeZone":{"type":"string","description":"The node's time zone.\n"},"utcTime":{"type":"string","description":"The node's local time formatted as UTC.\n"}},"type":"object"}},"proxmoxve:index/vm2:Vm2":{"description":"!\u003e **DO NOT USE**\nThis is an experimental implementation of a Proxmox VM resource using Plugin Framework.\u003cbr\u003e\u003cbr\u003eIt is a Proof of Concept, highly experimental and **will** change in future. It does not support all features of the Proxmox API for VMs and **MUST NOT** be used in production.\n\n\u003e Many attributes are marked as **optional** _and_ **computed** in the schema,\nhence you may seem added to the plan with \"(known after apply)\" status, even if they are not set in the configuration.\nThis is done to support the `clone` operation, when a VM is created from an existing VM or template,\nand the source attributes are copied to the clone.\u003cbr\u003e\u003cbr\u003e\nComputed attributes allow the provider to set those attributes without user input.\nThe attributes are also marked as optional to allow the practitioner to set (or overwrite) them if needed.\n","properties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:index/Vm2Cdrom:Vm2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:index/Vm2Clone:Vm2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:index/Vm2Cpu:Vm2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:index/Vm2Timeouts:Vm2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:index/Vm2Vga:Vm2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"required":["cdrom","cpu","name","nodeName","stopOnDestroy","tags","vga"],"inputProperties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:index/Vm2Cdrom:Vm2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:index/Vm2Clone:Vm2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:index/Vm2Cpu:Vm2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:index/Vm2Timeouts:Vm2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:index/Vm2Vga:Vm2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering Vm2 resources.\n","properties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:index/Vm2Cdrom:Vm2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:index/Vm2Clone:Vm2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:index/Vm2Cpu:Vm2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:index/Vm2Timeouts:Vm2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:index/Vm2Vga:Vm2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"type":"object"},"deprecationMessage":"proxmoxve.index/vm2.Vm2 has been deprecated in favor of proxmoxve.vm/virtualmachine2.VirtualMachine2"}},"functions":{"proxmoxve:Acme/getAccount:getAccount":{"description":"Retrieves information about a specific ACME account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.Acme.getAccounts({});\nconst example = all.then(all =\u003e .map(([, ]) =\u003e (proxmoxve.Acme.getAccount({\n name: __value,\n}))));\nexport const dataProxmoxVirtualEnvironmentAcmeAccount = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.Acme.get_accounts()\nexample = [proxmoxve.Acme.get_account(name=__value) for __key, __value in all.accounts]\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.Acme.GetAccounts.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.Acme.GetAccount.Invoke(new()\n {\n Name = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmeAccount\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := Acme.GetAccounts(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = AcmeFunctions.getAccounts();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccount.\n","properties":{"name":{"type":"string","description":"The identifier of the ACME account to read.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccount.\n","properties":{"account":{"$ref":"#/types/proxmoxve:Acme/getAccountAccount:getAccountAccount","description":"The ACME account information.\n"},"directory":{"description":"The directory URL of the ACME account.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"location":{"description":"The location URL of the ACME account.\n","type":"string"},"name":{"description":"The identifier of the ACME account to read.\n","type":"string"},"tos":{"description":"The URL of the terms of service of the ACME account.\n","type":"string"}},"required":["account","directory","location","tos","id"],"type":"object"}},"proxmoxve:Acme/getAccounts:getAccounts":{"description":"Retrieves the list of ACME accounts.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getAccounts({});\nexport const dataProxmoxVirtualEnvironmentAcmeAccounts = example.then(example =\u003e example.accounts);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_accounts()\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.accounts)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetAccounts.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmeAccounts\"] = example.Apply(getAccountsResult =\u003e getAccountsResult.Accounts),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetAccounts(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.Accounts)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getAccounts();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.applyValue(getAccountsResult -\u003e getAccountsResult.accounts()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Acme:getAccounts\n Arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentAcmeAccounts: ${example.accounts}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getAccounts.\n","properties":{"accounts":{"description":"The identifiers of the ACME accounts.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"}},"required":["accounts","id"],"type":"object"}},"proxmoxve:Acme/getPlugin:getPlugin":{"description":"Retrieves a single ACME plugin by plugin ID name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getPlugin({\n plugin: \"standalone\",\n});\nexport const dataProxmoxVirtualEnvironmentAcmePlugin = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_plugin(plugin=\"standalone\")\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetPlugin.Invoke(new()\n {\n Plugin = \"standalone\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmePlugin\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetPlugin(ctx, \u0026acme.GetPluginArgs{\n\t\t\tPlugin: \"standalone\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport com.pulumi.proxmoxve.Acme.inputs.GetPluginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getPlugin(GetPluginArgs.builder()\n .plugin(\"standalone\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example.applyValue(getPluginResult -\u003e getPluginResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Acme:getPlugin\n Arguments:\n plugin: standalone\noutputs:\n dataProxmoxVirtualEnvironmentAcmePlugin: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPlugin.\n","properties":{"plugin":{"type":"string","description":"ACME Plugin ID name.\n"}},"type":"object","required":["plugin"]},"outputs":{"description":"A collection of values returned by getPlugin.\n","properties":{"api":{"description":"API plugin name.\n","type":"string"},"data":{"additionalProperties":{"type":"string"},"description":"DNS plugin data.\n","type":"object"},"digest":{"description":"Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"plugin":{"description":"ACME Plugin ID name.\n","type":"string"},"type":{"description":"ACME challenge type (dns, standalone).\n","type":"string"},"validationDelay":{"description":"Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records (0 - 172800).\n","type":"integer"}},"required":["api","data","digest","plugin","type","validationDelay","id"],"type":"object"}},"proxmoxve:Acme/getPlugins:getPlugins":{"description":"Retrieves the list of ACME plugins.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getPlugins({});\nexport const dataProxmoxVirtualEnvironmentAcmePlugins = example.then(example =\u003e example.plugins);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_plugins()\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.plugins)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetPlugins.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmePlugins\"] = example.Apply(getPluginsResult =\u003e getPluginsResult.Plugins),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetPlugins(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.Plugins)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getPlugins();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.applyValue(getPluginsResult -\u003e getPluginsResult.plugins()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Acme:getPlugins\n Arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentAcmePlugins: ${example.plugins}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getPlugins.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"plugins":{"description":"List of ACME plugins\n","items":{"$ref":"#/types/proxmoxve:Acme/getPluginsPlugin:getPluginsPlugin"},"type":"array"}},"required":["plugins","id"],"type":"object"}},"proxmoxve:Apt/getRepository:getRepository":{"description":"Retrieves an APT repository from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Apt.getRepository({\n filePath: \"/etc/apt/sources.list\",\n index: 0,\n node: \"pve\",\n});\nexport const proxmoxVirtualEnvironmentAptRepository = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Apt.get_repository(file_path=\"/etc/apt/sources.list\",\n index=0,\n node=\"pve\")\npulumi.export(\"proxmoxVirtualEnvironmentAptRepository\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Apt.GetRepository.Invoke(new()\n {\n FilePath = \"/etc/apt/sources.list\",\n Index = 0,\n Node = \"pve\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentAptRepository\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Apt.GetRepository(ctx, \u0026apt.GetRepositoryArgs{\n\t\t\tFilePath: \"/etc/apt/sources.list\",\n\t\t\tIndex: 0,\n\t\t\tNode: \"pve\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"proxmoxVirtualEnvironmentAptRepository\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt.AptFunctions;\nimport com.pulumi.proxmoxve.Apt.inputs.GetRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AptFunctions.getRepository(GetRepositoryArgs.builder()\n .filePath(\"/etc/apt/sources.list\")\n .index(0)\n .node(\"pve\")\n .build());\n\n ctx.export(\"proxmoxVirtualEnvironmentAptRepository\", example.applyValue(getRepositoryResult -\u003e getRepositoryResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Apt:getRepository\n Arguments:\n filePath: /etc/apt/sources.list\n index: 0\n node: pve\noutputs:\n proxmoxVirtualEnvironmentAptRepository: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRepository.\n","properties":{"filePath":{"type":"string","description":"The absolute path of the source list file that contains this repository.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"}},"type":"object","required":["filePath","index","node"]},"outputs":{"description":"A collection of values returned by getRepository.\n","properties":{"comment":{"description":"The associated comment.\n","type":"string"},"components":{"description":"The list of components.\n","items":{"type":"string"},"type":"array"},"enabled":{"description":"Indicates the activation status.\n","type":"boolean"},"filePath":{"description":"The absolute path of the source list file that contains this repository.\n","type":"string"},"fileType":{"description":"The format of the defining source list file.\n","type":"string"},"id":{"description":"The unique identifier of this APT repository data source.\n","type":"string"},"index":{"description":"The index within the defining source list file.\n","type":"integer"},"node":{"description":"The name of the target Proxmox VE node.\n","type":"string"},"packageTypes":{"description":"The list of package types.\n","items":{"type":"string"},"type":"array"},"suites":{"description":"The list of package distributions.\n","items":{"type":"string"},"type":"array"},"uris":{"description":"The list of repository URIs.\n","items":{"type":"string"},"type":"array"}},"required":["comment","components","enabled","filePath","fileType","id","index","node","packageTypes","suites","uris"],"type":"object"}},"proxmoxve:Apt/standard/getRepository:getRepository":{"description":"Retrieves an APT standard repository from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Apt.standard.getRepository({\n handle: \"no-subscription\",\n node: \"pve\",\n});\nexport const proxmoxVirtualEnvironmentAptStandardRepository = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Apt.standard.get_repository(handle=\"no-subscription\",\n node=\"pve\")\npulumi.export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Apt.Standard.GetRepository.Invoke(new()\n {\n Handle = \"no-subscription\",\n Node = \"pve\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentAptStandardRepository\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Apt.GetRepository(ctx, \u0026standard.GetRepositoryArgs{\n\t\t\tHandle: \"no-subscription\",\n\t\t\tNode: \"pve\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt_standard.Apt_standardFunctions;\nimport com.pulumi.proxmoxve.Apt.inputs.GetRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Apt/standardFunctions.getRepository(GetRepositoryArgs.builder()\n .handle(\"no-subscription\")\n .node(\"pve\")\n .build());\n\n ctx.export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example.applyValue(getRepositoryResult -\u003e getRepositoryResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Apt/standard:getRepository\n Arguments:\n handle: no-subscription\n node: pve\noutputs:\n proxmoxVirtualEnvironmentAptStandardRepository: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRepository.\n","properties":{"handle":{"type":"string","description":"The handle of the APT standard repository.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"}},"type":"object","required":["handle","node"]},"outputs":{"description":"A collection of values returned by getRepository.\n","properties":{"description":{"description":"The description of the APT standard repository.\n","type":"string"},"filePath":{"description":"The absolute path of the source list file that contains this standard repository.\n","type":"string"},"handle":{"description":"The handle of the APT standard repository.\n","type":"string"},"id":{"description":"The unique identifier of this APT standard repository data source.\n","type":"string"},"index":{"description":"The index within the defining source list file.\n","type":"integer"},"name":{"description":"The name of the APT standard repository.\n","type":"string"},"node":{"description":"The name of the target Proxmox VE node.\n","type":"string"},"status":{"description":"Indicates the activation status.\n","type":"integer"}},"required":["description","filePath","handle","id","index","name","node","status"],"type":"object"}},"proxmoxve:Cluster/getNodes:getNodes":{"description":"Retrieves information about all available nodes.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableNodes = proxmoxve.Cluster.getNodes({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_nodes = proxmoxve.Cluster.get_nodes()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableNodes = ProxmoxVE.Cluster.GetNodes.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Cluster\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Cluster.GetNodes(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Cluster.ClusterFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableNodes = ClusterFunctions.getNodes();\n\n }\n}\n```\n```yaml\nvariables:\n availableNodes:\n fn::invoke:\n Function: proxmoxve:Cluster:getNodes\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getNodes.\n","properties":{"cpuCounts":{"description":"The CPU count for each node.\n","items":{"type":"integer"},"type":"array"},"cpuUtilizations":{"description":"The CPU utilization on each node.\n","items":{"type":"number"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"memoryAvailables":{"description":"The memory available on each node.\n","items":{"type":"integer"},"type":"array"},"memoryUseds":{"description":"The memory used on each node.\n","items":{"type":"integer"},"type":"array"},"names":{"description":"The node names.\n","items":{"type":"string"},"type":"array"},"onlines":{"description":"Whether a node is online.\n","items":{"type":"boolean"},"type":"array"},"sslFingerprints":{"description":"The SSL fingerprint for each node.\n","items":{"type":"string"},"type":"array"},"supportLevels":{"description":"The support level for each node.\n","items":{"type":"string"},"type":"array"},"uptimes":{"description":"The uptime in seconds for each node.\n","items":{"type":"integer"},"type":"array"}},"required":["cpuCounts","cpuUtilizations","memoryAvailables","memoryUseds","names","onlines","sslFingerprints","supportLevels","uptimes","id"],"type":"object"}},"proxmoxve:HA/getHAGroup:getHAGroup":{"description":"Retrieves information about a specific High Availability group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.HA.getHAGroups({});\nconst example = all.then(all =\u003e .map(([, ]) =\u003e (proxmoxve.HA.getHAGroup({\n group: __value,\n}))));\nexport const proxmoxVirtualEnvironmentHagroupsFull = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.HA.get_ha_groups()\nexample = [proxmoxve.HA.get_ha_group(group=__value) for __key, __value in all.group_ids]\npulumi.export(\"proxmoxVirtualEnvironmentHagroupsFull\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.HA.GetHAGroups.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.HA.GetHAGroup.Invoke(new()\n {\n Group = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentHagroupsFull\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := HA.GetHAGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"proxmoxVirtualEnvironmentHagroupsFull\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = HAFunctions.getHAGroups();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"proxmoxVirtualEnvironmentHagroupsFull\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHAGroup.\n","properties":{"group":{"type":"string","description":"The identifier of the High Availability group to read.\n"}},"type":"object","required":["group"]},"outputs":{"description":"A collection of values returned by getHAGroup.\n","properties":{"comment":{"description":"The comment associated with this group\n","type":"string"},"group":{"description":"The identifier of the High Availability group to read.\n","type":"string"},"id":{"description":"The unique identifier of this resource.\n","type":"string"},"noFailback":{"description":"A flag that indicates that failing back to a higher priority node is disabled for this HA group.\n","type":"boolean"},"nodes":{"additionalProperties":{"type":"integer"},"description":"The member nodes for this group. They are provided as a map, where the keys are the node names and the values represent their priority: integers for known priorities or `null` for unset priorities.\n","type":"object"},"restricted":{"description":"A flag that indicates that other nodes may not be used to run resources associated to this HA group.\n","type":"boolean"}},"required":["comment","group","id","noFailback","nodes","restricted"],"type":"object"}},"proxmoxve:HA/getHAGroups:getHAGroups":{"description":"Retrieves the list of High Availability groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.HA.getHAGroups({});\nexport const dataProxmoxVirtualEnvironmentHagroups = example.then(example =\u003e example.groupIds);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.HA.get_ha_groups()\npulumi.export(\"dataProxmoxVirtualEnvironmentHagroups\", example.group_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.HA.GetHAGroups.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHagroups\"] = example.Apply(getHAGroupsResult =\u003e getHAGroupsResult.GroupIds),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := HA.GetHAGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHagroups\", example.GroupIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = HAFunctions.getHAGroups();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHagroups\", example.applyValue(getHAGroupsResult -\u003e getHAGroupsResult.groupIds()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:HA:getHAGroups\n Arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentHagroups: ${example.groupIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getHAGroups.\n","properties":{"groupIds":{"description":"The identifiers of the High Availability groups.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The unique identifier of this resource.\n","type":"string"}},"required":["groupIds","id"],"type":"object"}},"proxmoxve:HA/getHAResource:getHAResource":{"description":"Retrieves the list of High Availability resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.HA.getHAResources({});\nconst example = all.then(all =\u003e .map(([, ]) =\u003e (proxmoxve.HA.getHAResource({\n resourceId: __value,\n}))));\nexport const proxmoxVirtualEnvironmentHaresourcesFull = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.HA.get_ha_resources()\nexample = [proxmoxve.HA.get_ha_resource(resource_id=__value) for __key, __value in all.resource_ids]\npulumi.export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.HA.GetHAResources.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.HA.GetHAResource.Invoke(new()\n {\n ResourceId = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentHaresourcesFull\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport com.pulumi.proxmoxve.HA.inputs.GetHAResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = HAFunctions.getHAResources();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHAResource.\n","properties":{"resourceId":{"type":"string","description":"The identifier of the Proxmox HA resource to read.\n"}},"type":"object","required":["resourceId"]},"outputs":{"description":"A collection of values returned by getHAResource.\n","properties":{"comment":{"description":"The comment associated with this resource.\n","type":"string"},"group":{"description":"The identifier of the High Availability group this resource is a member of.\n","type":"string"},"id":{"description":"The unique identifier of this resource.\n","type":"string"},"maxRelocate":{"description":"The maximal number of relocation attempts.\n","type":"integer"},"maxRestart":{"description":"The maximal number of restart attempts.\n","type":"integer"},"resourceId":{"description":"The identifier of the Proxmox HA resource to read.\n","type":"string"},"state":{"description":"The desired state of the resource.\n","type":"string"},"type":{"description":"The type of High Availability resource (`vm` or `ct`).\n","type":"string"}},"required":["comment","group","id","maxRelocate","maxRestart","resourceId","state","type"],"type":"object"}},"proxmoxve:HA/getHAResources:getHAResources":{"description":"Retrieves the list of High Availability resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst exampleAll = proxmoxve.HA.getHAResources({});\nconst exampleVm = proxmoxve.HA.getHAResources({\n type: \"vm\",\n});\nexport const dataProxmoxVirtualEnvironmentHaresources = {\n all: exampleAll.then(exampleAll =\u003e exampleAll.resourceIds),\n vms: exampleVm.then(exampleVm =\u003e exampleVm.resourceIds),\n};\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample_all = proxmoxve.HA.get_ha_resources()\nexample_vm = proxmoxve.HA.get_ha_resources(type=\"vm\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHaresources\", {\n \"all\": example_all.resource_ids,\n \"vms\": example_vm.resource_ids,\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleAll = ProxmoxVE.HA.GetHAResources.Invoke();\n\n var exampleVm = ProxmoxVE.HA.GetHAResources.Invoke(new()\n {\n Type = \"vm\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHaresources\"] = \n {\n { \"all\", exampleAll.Apply(getHAResourcesResult =\u003e getHAResourcesResult.ResourceIds) },\n { \"vms\", exampleVm.Apply(getHAResourcesResult =\u003e getHAResourcesResult.ResourceIds) },\n },\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleAll, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nexampleVm, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{\nType: pulumi.StringRef(\"vm\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"dataProxmoxVirtualEnvironmentHaresources\", interface{}Map{\n\"all\": exampleAll.ResourceIds,\n\"vms\": exampleVm.ResourceIds,\n})\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport com.pulumi.proxmoxve.HA.inputs.GetHAResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var exampleAll = HAFunctions.getHAResources();\n\n final var exampleVm = HAFunctions.getHAResources(GetHAResourcesArgs.builder()\n .type(\"vm\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHaresources\", %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));\n }\n}\n```\n```yaml\nvariables:\n exampleAll:\n fn::invoke:\n Function: proxmoxve:HA:getHAResources\n Arguments: {}\n exampleVm:\n fn::invoke:\n Function: proxmoxve:HA:getHAResources\n Arguments:\n type: vm\noutputs:\n dataProxmoxVirtualEnvironmentHaresources:\n all: ${exampleAll.resourceIds}\n vms: ${exampleVm.resourceIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHAResources.\n","properties":{"type":{"type":"string","description":"The type of High Availability resources to fetch (`vm` or `ct`). All resources will be fetched if this option is unset.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHAResources.\n","properties":{"id":{"description":"The unique identifier of this resource.\n","type":"string"},"resourceIds":{"description":"The identifiers of the High Availability resources.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The type of High Availability resources to fetch (`vm` or `ct`). All resources will be fetched if this option is unset.\n","type":"string"}},"required":["id","resourceIds"],"type":"object"}},"proxmoxve:Hardware/getMappings:getMappings":{"description":"Retrieves a list of hardware mapping resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example-pci = proxmoxve.Hardware.getMappings({\n checkNode: \"pve\",\n type: \"pci\",\n});\nconst example-usb = proxmoxve.Hardware.getMappings({\n checkNode: \"pve\",\n type: \"usb\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingsPci = example_pci;\nexport const dataProxmoxVirtualEnvironmentHardwareMappingsUsb = example_usb;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample_pci = proxmoxve.Hardware.get_mappings(check_node=\"pve\",\n type=\"pci\")\nexample_usb = proxmoxve.Hardware.get_mappings(check_node=\"pve\",\n type=\"usb\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci)\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example_pci = ProxmoxVE.Hardware.GetMappings.Invoke(new()\n {\n CheckNode = \"pve\",\n Type = \"pci\",\n });\n\n var example_usb = ProxmoxVE.Hardware.GetMappings.Invoke(new()\n {\n CheckNode = \"pve\",\n Type = \"usb\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\"] = example_pci,\n [\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\"] = example_usb,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample_pci, err := Hardware.GetMappings(ctx, \u0026hardware.GetMappingsArgs{\n\t\t\tCheckNode: pulumi.StringRef(\"pve\"),\n\t\t\tType: \"pci\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_usb, err := Hardware.GetMappings(ctx, \u0026hardware.GetMappingsArgs{\n\t\t\tCheckNode: pulumi.StringRef(\"pve\"),\n\t\t\tType: \"usb\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci)\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware.HardwareFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetMappingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example-pci = HardwareFunctions.getMappings(GetMappingsArgs.builder()\n .checkNode(\"pve\")\n .type(\"pci\")\n .build());\n\n final var example-usb = HardwareFunctions.getMappings(GetMappingsArgs.builder()\n .checkNode(\"pve\")\n .type(\"usb\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci);\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb);\n }\n}\n```\n```yaml\nvariables:\n example-pci:\n fn::invoke:\n Function: proxmoxve:Hardware:getMappings\n Arguments:\n checkNode: pve\n type: pci\n example-usb:\n fn::invoke:\n Function: proxmoxve:Hardware:getMappings\n Arguments:\n checkNode: pve\n type: usb\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingsPci: ${[\"example-pci\"]}\n dataProxmoxVirtualEnvironmentHardwareMappingsUsb: ${[\"example-usb\"]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMappings.\n","properties":{"checkNode":{"type":"string","description":"The name of the node whose configurations should be checked for correctness.\n"},"type":{"type":"string","description":"The type of the hardware mappings.\n"}},"type":"object","required":["type"]},"outputs":{"description":"A collection of values returned by getMappings.\n","properties":{"checkNode":{"description":"The name of the node whose configurations should be checked for correctness.\n","type":"string"},"checks":{"description":"Might contain relevant diagnostics about incorrect configurations.\n","items":{"$ref":"#/types/proxmoxve:Hardware/getMappingsCheck:getMappingsCheck"},"type":"array"},"id":{"description":"The unique identifier of this hardware mappings data source.\n","type":"string"},"ids":{"description":"The identifiers of the hardware mappings.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the hardware mappings.\n","type":"string"}},"required":["checks","id","ids","type"],"type":"object"}},"proxmoxve:Hardware/mapping/getPci:getPci":{"description":"Retrieves a PCI hardware mapping from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Hardware.mapping.getPci({\n name: \"example\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingPci = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Hardware.mapping.get_pci(name=\"example\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Hardware.Mapping.GetPci.Invoke(new()\n {\n Name = \"example\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingPci\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Hardware.GetPci(ctx, \u0026mapping.GetPciArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware_mapping.Hardware_mappingFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetPciArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Hardware/mappingFunctions.getPci(GetPciArgs.builder()\n .name(\"example\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example.applyValue(getPciResult -\u003e getPciResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Hardware/mapping:getPci\n Arguments:\n name: example\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingPci: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPci.\n","properties":{"name":{"type":"string","description":"The name of this PCI hardware mapping.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getPci.\n","properties":{"comment":{"description":"The comment of this PCI hardware mapping.\n","type":"string"},"id":{"description":"The unique identifier of this PCI hardware mapping data source.\n","type":"string"},"maps":{"description":"The actual map of devices for the hardware mapping.\n","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/getPciMap:getPciMap"},"type":"array"},"mediatedDevices":{"description":"Indicates whether to use with mediated devices.\n","type":"boolean"},"name":{"description":"The name of this PCI hardware mapping.\n","type":"string"}},"required":["comment","id","maps","mediatedDevices","name"],"type":"object"}},"proxmoxve:Hardware/mapping/getUsb:getUsb":{"description":"Retrieves a USB hardware mapping from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Hardware.mapping.getUsb({\n name: \"example\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingUsb = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Hardware.mapping.get_usb(name=\"example\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Hardware.Mapping.GetUsb.Invoke(new()\n {\n Name = \"example\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Hardware.GetUsb(ctx, \u0026mapping.GetUsbArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware_mapping.Hardware_mappingFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetUsbArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Hardware/mappingFunctions.getUsb(GetUsbArgs.builder()\n .name(\"example\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example.applyValue(getUsbResult -\u003e getUsbResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Hardware/mapping:getUsb\n Arguments:\n name: example\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingUsb: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUsb.\n","properties":{"name":{"type":"string","description":"The name of this USB hardware mapping.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getUsb.\n","properties":{"comment":{"description":"The comment of this USB hardware mapping.\n","type":"string"},"id":{"description":"The unique identifier of this USB hardware mapping data source.\n","type":"string"},"maps":{"description":"The actual map of devices for the hardware mapping.\n","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/getUsbMap:getUsbMap"},"type":"array"},"name":{"description":"The name of this USB hardware mapping.\n","type":"string"}},"required":["comment","id","maps","name"],"type":"object"}},"proxmoxve:Network/getDNS:getDNS":{"description":"Retrieves the DNS configuration for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNode = proxmoxve.Network.getDNS({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node = proxmoxve.Network.get_dns(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNode = ProxmoxVE.Network.GetDNS.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetDNS(ctx, \u0026network.GetDNSArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetDNSArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNode = NetworkFunctions.getDNS(GetDNSArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNode:\n fn::invoke:\n Function: proxmoxve:Network:getDNS\n Arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDNS.\n","properties":{"nodeName":{"type":"string","description":"A node name.\n"}},"type":"object","required":["nodeName"]},"outputs":{"description":"A collection of values returned by getDNS.\n","properties":{"domain":{"description":"The DNS search domain.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"nodeName":{"type":"string"},"servers":{"description":"The DNS servers.\n","items":{"type":"string"},"type":"array"}},"required":["domain","nodeName","servers","id"],"type":"object"}},"proxmoxve:Network/getHosts:getHosts":{"description":"Retrieves all the host entries from a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeHostEntries = proxmoxve.Network.getHosts({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_host_entries = proxmoxve.Network.get_hosts(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNodeHostEntries = ProxmoxVE.Network.GetHosts.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetHosts(ctx, \u0026network.GetHostsArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetHostsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNodeHostEntries = NetworkFunctions.getHosts(GetHostsArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeHostEntries:\n fn::invoke:\n Function: proxmoxve:Network:getHosts\n Arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHosts.\n","properties":{"nodeName":{"type":"string","description":"A node name.\n"}},"type":"object","required":["nodeName"]},"outputs":{"description":"A collection of values returned by getHosts.\n","properties":{"addresses":{"description":"The IP addresses.\n","items":{"type":"string"},"type":"array"},"digest":{"description":"The SHA1 digest.\n","type":"string"},"entries":{"description":"The host entries (conversion of `addresses` and `hostnames` into\nobjects).\n","items":{"$ref":"#/types/proxmoxve:Network/getHostsEntry:getHostsEntry"},"type":"array"},"hostnames":{"description":"The hostnames associated with each of the IP addresses.\n","items":{"items":{"type":"string"},"type":"array"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"nodeName":{"type":"string"}},"required":["addresses","digest","entries","hostnames","nodeName","id"],"type":"object"}},"proxmoxve:Network/getTime:getTime":{"description":"Retrieves the current time for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeTime = proxmoxve.Network.getTime({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_time = proxmoxve.Network.get_time(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNodeTime = ProxmoxVE.Network.GetTime.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetTime(ctx, \u0026network.GetTimeArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetTimeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNodeTime = NetworkFunctions.getTime(GetTimeArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeTime:\n fn::invoke:\n Function: proxmoxve:Network:getTime\n Arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTime.\n","properties":{"nodeName":{"type":"string","description":"A node name.\n"}},"type":"object","required":["nodeName"]},"outputs":{"description":"A collection of values returned by getTime.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"localTime":{"description":"The node's local time.\n","type":"string"},"nodeName":{"type":"string"},"timeZone":{"description":"The node's time zone.\n","type":"string"},"utcTime":{"description":"The node's local time formatted as UTC.\n","type":"string"}},"required":["localTime","nodeName","timeZone","utcTime","id"],"type":"object"}},"proxmoxve:Network/getVersion:getVersion":{"description":"Retrieves API version details.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Network.getVersion({});\nexport const dataProxmoxVirtualEnvironmentVersion = {\n release: example.then(example =\u003e example.release),\n repository_id: example.then(example =\u003e example.repositoryId),\n version: example.then(example =\u003e example.version),\n};\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Network.get_version()\npulumi.export(\"dataProxmoxVirtualEnvironmentVersion\", {\n \"release\": example.release,\n \"repository_id\": example.repository_id,\n \"version\": example.version,\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Network.GetVersion.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentVersion\"] = \n {\n { \"release\", example.Apply(getVersionResult =\u003e getVersionResult.Release) },\n { \"repository_id\", example.Apply(getVersionResult =\u003e getVersionResult.RepositoryId) },\n { \"version\", example.Apply(getVersionResult =\u003e getVersionResult.Version) },\n },\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Network.GetVersion(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentVersion\", pulumi.StringMap{\n\t\t\t\"release\": example.Release,\n\t\t\t\"repository_id\": example.RepositoryId,\n\t\t\t\"version\": example.Version,\n\t\t})\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = NetworkFunctions.getVersion();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentVersion\", %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Network:getVersion\n Arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentVersion:\n release: ${example.release}\n repository_id: ${example.repositoryId}\n version: ${example.version}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getVersion.\n","properties":{"id":{"description":"Placeholder identifier attribute.\n","type":"string"},"release":{"description":"The current Proxmox VE point release in `x.y` format.\n","type":"string"},"repositoryId":{"description":"The short git revision from which this version was build.\n","type":"string"},"version":{"description":"The full pve-manager package version of this node.\n","type":"string"}},"required":["id","release","repositoryId","version"],"type":"object"}},"proxmoxve:Permission/getGroup:getGroup":{"description":"Retrieves information about a specific user group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsTeam = proxmoxve.Permission.getGroup({\n groupId: \"operations-team\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_team = proxmoxve.Permission.get_group(group_id=\"operations-team\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsTeam = ProxmoxVE.Permission.GetGroup.Invoke(new()\n {\n GroupId = \"operations-team\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetGroup(ctx, \u0026permission.GetGroupArgs{\n\t\t\tGroupId: \"operations-team\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsTeam = PermissionFunctions.getGroup(GetGroupArgs.builder()\n .groupId(\"operations-team\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsTeam:\n fn::invoke:\n Function: proxmoxve:Permission:getGroup\n Arguments:\n groupId: operations-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroup.\n","properties":{"groupId":{"type":"string","description":"The group identifier.\n"}},"type":"object","required":["groupId"]},"outputs":{"description":"A collection of values returned by getGroup.\n","properties":{"acls":{"description":"The access control list.\n","items":{"$ref":"#/types/proxmoxve:Permission/getGroupAcl:getGroupAcl"},"type":"array"},"comment":{"description":"The group comment.\n","type":"string"},"groupId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"members":{"description":"The group members as a list with `username@realm` entries.\n","items":{"type":"string"},"type":"array"}},"required":["acls","comment","groupId","members","id"],"type":"object"}},"proxmoxve:Permission/getGroups:getGroups":{"description":"Retrieves basic information about all available user groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableGroups = proxmoxve.Permission.getGroups({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_groups = proxmoxve.Permission.get_groups()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableGroups = ProxmoxVE.Permission.GetGroups.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableGroups = PermissionFunctions.getGroups();\n\n }\n}\n```\n```yaml\nvariables:\n availableGroups:\n fn::invoke:\n Function: proxmoxve:Permission:getGroups\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"comments":{"description":"The group comments.\n","items":{"type":"string"},"type":"array"},"groupIds":{"description":"The group identifiers.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"}},"required":["comments","groupIds","id"],"type":"object"}},"proxmoxve:Permission/getPool:getPool":{"description":"Retrieves information about a specific resource pool.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsPool = proxmoxve.Permission.getPool({\n poolId: \"operations\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_pool = proxmoxve.Permission.get_pool(pool_id=\"operations\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsPool = ProxmoxVE.Permission.GetPool.Invoke(new()\n {\n PoolId = \"operations\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetPool(ctx, \u0026permission.GetPoolArgs{\n\t\t\tPoolId: \"operations\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsPool = PermissionFunctions.getPool(GetPoolArgs.builder()\n .poolId(\"operations\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsPool:\n fn::invoke:\n Function: proxmoxve:Permission:getPool\n Arguments:\n poolId: operations\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPool.\n","properties":{"poolId":{"type":"string","description":"The pool identifier.\n"}},"type":"object","required":["poolId"]},"outputs":{"description":"A collection of values returned by getPool.\n","properties":{"comment":{"description":"The pool comment.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"members":{"description":"The pool members.\n","items":{"$ref":"#/types/proxmoxve:Permission/getPoolMember:getPoolMember"},"type":"array"},"poolId":{"type":"string"}},"required":["comment","members","poolId","id"],"type":"object"}},"proxmoxve:Permission/getPools:getPools":{"description":"Retrieves the identifiers for all the available resource pools.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availablePools = proxmoxve.Permission.getPools({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_pools = proxmoxve.Permission.get_pools()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availablePools = ProxmoxVE.Permission.GetPools.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetPools(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availablePools = PermissionFunctions.getPools();\n\n }\n}\n```\n```yaml\nvariables:\n availablePools:\n fn::invoke:\n Function: proxmoxve:Permission:getPools\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getPools.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"poolIds":{"description":"The pool identifiers.\n","items":{"type":"string"},"type":"array"}},"required":["poolIds","id"],"type":"object"}},"proxmoxve:Permission/getRole:getRole":{"description":"Retrieves information about a specific role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsRole = proxmoxve.Permission.getRole({\n roleId: \"operations\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_role = proxmoxve.Permission.get_role(role_id=\"operations\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsRole = ProxmoxVE.Permission.GetRole.Invoke(new()\n {\n RoleId = \"operations\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetRole(ctx, \u0026permission.GetRoleArgs{\n\t\t\tRoleId: \"operations\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsRole = PermissionFunctions.getRole(GetRoleArgs.builder()\n .roleId(\"operations\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsRole:\n fn::invoke:\n Function: proxmoxve:Permission:getRole\n Arguments:\n roleId: operations\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRole.\n","properties":{"roleId":{"type":"string","description":"The role identifier.\n"}},"type":"object","required":["roleId"]},"outputs":{"description":"A collection of values returned by getRole.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"privileges":{"description":"The role privileges\n","items":{"type":"string"},"type":"array"},"roleId":{"type":"string"}},"required":["privileges","roleId","id"],"type":"object"}},"proxmoxve:Permission/getRoles:getRoles":{"description":"Retrieves information about all the available roles.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableRoles = proxmoxve.Permission.getRoles({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_roles = proxmoxve.Permission.get_roles()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableRoles = ProxmoxVE.Permission.GetRoles.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetRoles(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableRoles = PermissionFunctions.getRoles();\n\n }\n}\n```\n```yaml\nvariables:\n availableRoles:\n fn::invoke:\n Function: proxmoxve:Permission:getRoles\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getRoles.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"privileges":{"description":"The role privileges.\n","items":{"items":{"type":"string"},"type":"array"},"type":"array"},"roleIds":{"description":"The role identifiers.\n","items":{"type":"string"},"type":"array"},"specials":{"description":"Whether the role is special (built-in).\n","items":{"type":"boolean"},"type":"array"}},"required":["privileges","roleIds","specials","id"],"type":"object"}},"proxmoxve:Permission/getUser:getUser":{"description":"Retrieves information about a specific user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsUser = proxmoxve.Permission.getUser({\n userId: \"operation@pam\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_user = proxmoxve.Permission.get_user(user_id=\"operation@pam\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsUser = ProxmoxVE.Permission.GetUser.Invoke(new()\n {\n UserId = \"operation@pam\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetUser(ctx, \u0026permission.GetUserArgs{\n\t\t\tUserId: \"operation@pam\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsUser = PermissionFunctions.getUser(GetUserArgs.builder()\n .userId(\"operation@pam\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsUser:\n fn::invoke:\n Function: proxmoxve:Permission:getUser\n Arguments:\n userId: operation@pam\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUser.\n","properties":{"userId":{"type":"string","description":"The user identifier.\n"}},"type":"object","required":["userId"]},"outputs":{"description":"A collection of values returned by getUser.\n","properties":{"acls":{"description":"The access control list.\n","items":{"$ref":"#/types/proxmoxve:Permission/getUserAcl:getUserAcl"},"type":"array"},"comment":{"description":"The user comment.\n","type":"string"},"email":{"description":"The user's email address.\n","type":"string"},"enabled":{"description":"Whether the user account is enabled.\n","type":"boolean"},"expirationDate":{"description":"The user account's expiration date (RFC 3339).\n","type":"string"},"firstName":{"description":"The user's first name.\n","type":"string"},"groups":{"description":"The user's groups.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"keys":{"description":"The user's keys.\n","type":"string"},"lastName":{"description":"The user's last name.\n","type":"string"},"userId":{"type":"string"}},"required":["acls","comment","email","enabled","expirationDate","firstName","groups","keys","lastName","userId","id"],"type":"object"}},"proxmoxve:Permission/getUsers:getUsers":{"description":"Retrieves information about all the available users.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableUsers = proxmoxve.Permission.getUsers({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_users = proxmoxve.Permission.get_users()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableUsers = ProxmoxVE.Permission.GetUsers.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetUsers(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableUsers = PermissionFunctions.getUsers();\n\n }\n}\n```\n```yaml\nvariables:\n availableUsers:\n fn::invoke:\n Function: proxmoxve:Permission:getUsers\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"comments":{"description":"The user comments.\n","items":{"type":"string"},"type":"array"},"emails":{"description":"The users' email addresses.\n","items":{"type":"string"},"type":"array"},"enableds":{"description":"Whether a user account is enabled.\n","items":{"type":"boolean"},"type":"array"},"expirationDates":{"description":"The user accounts' expiration dates (RFC 3339).\n","items":{"type":"string"},"type":"array"},"firstNames":{"description":"The users' first names.\n","items":{"type":"string"},"type":"array"},"groups":{"description":"The users' groups.\n","items":{"items":{"type":"string"},"type":"array"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"keys":{"description":"The users' keys.\n","items":{"type":"string"},"type":"array"},"lastNames":{"description":"The users' last names.\n","items":{"type":"string"},"type":"array"},"userIds":{"description":"The user identifiers.\n","items":{"type":"string"},"type":"array"}},"required":["comments","emails","enableds","expirationDates","firstNames","groups","keys","lastNames","userIds","id"],"type":"object"}},"proxmoxve:Storage/getDatastores:getDatastores":{"description":"Retrieves information about all the datastores available to a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNode = proxmoxve.Storage.getDatastores({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node = proxmoxve.Storage.get_datastores(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNode = ProxmoxVE.Storage.GetDatastores.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Storage.GetDatastores(ctx, \u0026storage.GetDatastoresArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Storage.StorageFunctions;\nimport com.pulumi.proxmoxve.Storage.inputs.GetDatastoresArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNode = StorageFunctions.getDatastores(GetDatastoresArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNode:\n fn::invoke:\n Function: proxmoxve:Storage:getDatastores\n Arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatastores.\n","properties":{"nodeName":{"type":"string","description":"A node name.\n"}},"type":"object","required":["nodeName"]},"outputs":{"description":"A collection of values returned by getDatastores.\n","properties":{"actives":{"description":"Whether the datastore is active.\n","items":{"type":"boolean"},"type":"array"},"contentTypes":{"description":"The allowed content types.\n","items":{"items":{"type":"string"},"type":"array"},"type":"array"},"datastoreIds":{"description":"The datastore identifiers.\n","items":{"type":"string"},"type":"array"},"enableds":{"description":"Whether the datastore is enabled.\n","items":{"type":"boolean"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"nodeName":{"type":"string"},"shareds":{"description":"Whether the datastore is shared.\n","items":{"type":"boolean"},"type":"array"},"spaceAvailables":{"description":"The available space in bytes.\n","items":{"type":"integer"},"type":"array"},"spaceTotals":{"description":"The total space in bytes.\n","items":{"type":"integer"},"type":"array"},"spaceUseds":{"description":"The used space in bytes.\n","items":{"type":"integer"},"type":"array"},"types":{"description":"The storage types.\n","items":{"type":"string"},"type":"array"}},"required":["actives","contentTypes","datastoreIds","enableds","nodeName","shareds","spaceAvailables","spaceTotals","spaceUseds","types","id"],"type":"object"}},"proxmoxve:VM/getVirtualMachine:getVirtualMachine":{"description":"Retrieves information about a specific VM.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst testVm = proxmoxve.VM.getVirtualMachine({\n nodeName: \"test\",\n vmId: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\ntest_vm = proxmoxve.VM.get_virtual_machine(node_name=\"test\",\n vm_id=100)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testVm = ProxmoxVE.VM.GetVirtualMachine.Invoke(new()\n {\n NodeName = \"test\",\n VmId = 100,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/VM\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := VM.GetVirtualMachine(ctx, \u0026vm.GetVirtualMachineArgs{\n\t\t\tNodeName: \"test\",\n\t\t\tVmId: 100,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.VM.VMFunctions;\nimport com.pulumi.proxmoxve.VM.inputs.GetVirtualMachineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var testVm = VMFunctions.getVirtualMachine(GetVirtualMachineArgs.builder()\n .nodeName(\"test\")\n .vmId(100)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n testVm:\n fn::invoke:\n Function: proxmoxve:VM:getVirtualMachine\n Arguments:\n nodeName: test\n vmId: 100\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVirtualMachine.\n","properties":{"nodeName":{"type":"string","description":"The node name.\n"},"status":{"type":"string","description":"Status of the VM\n"},"template":{"type":"boolean","description":"Is VM a template (true) or a regular VM (false)\n"},"vmId":{"type":"integer","description":"The VM identifier.\n"}},"type":"object","required":["nodeName","vmId"]},"outputs":{"description":"A collection of values returned by getVirtualMachine.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"The virtual machine name.\n","type":"string"},"nodeName":{"type":"string"},"status":{"description":"Status of the VM\n","type":"string"},"tags":{"description":"A list of tags of the VM.\n","items":{"type":"string"},"type":"array"},"template":{"description":"Is VM a template (true) or a regular VM (false)\n","type":"boolean"},"vmId":{"type":"integer"}},"required":["name","nodeName","tags","vmId","id"],"type":"object"}},"proxmoxve:VM/getVirtualMachines:getVirtualMachines":{"description":"Retrieves information about all VMs in the Proxmox cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst ubuntuVms = proxmoxve.VM.getVirtualMachines({\n tags: [\"ubuntu\"],\n});\nconst ubuntuTemplates = proxmoxve.VM.getVirtualMachines({\n filters: [\n {\n name: \"template\",\n values: [\"true\"],\n },\n {\n name: \"status\",\n values: [\"stopped\"],\n },\n {\n name: \"name\",\n regex: true,\n values: [\"^ubuntu-20.*$\"],\n },\n {\n name: \"node_name\",\n regex: true,\n values: [\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n ],\n },\n ],\n tags: [\n \"template\",\n \"latest\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nubuntu_vms = proxmoxve.VM.get_virtual_machines(tags=[\"ubuntu\"])\nubuntu_templates = proxmoxve.VM.get_virtual_machines(filters=[\n {\n \"name\": \"template\",\n \"values\": [\"true\"],\n },\n {\n \"name\": \"status\",\n \"values\": [\"stopped\"],\n },\n {\n \"name\": \"name\",\n \"regex\": True,\n \"values\": [\"^ubuntu-20.*$\"],\n },\n {\n \"name\": \"node_name\",\n \"regex\": True,\n \"values\": [\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n ],\n },\n ],\n tags=[\n \"template\",\n \"latest\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ubuntuVms = ProxmoxVE.VM.GetVirtualMachines.Invoke(new()\n {\n Tags = new[]\n {\n \"ubuntu\",\n },\n });\n\n var ubuntuTemplates = ProxmoxVE.VM.GetVirtualMachines.Invoke(new()\n {\n Filters = new[]\n {\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"template\",\n Values = new[]\n {\n \"true\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"status\",\n Values = new[]\n {\n \"stopped\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"name\",\n Regex = true,\n Values = new[]\n {\n \"^ubuntu-20.*$\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"node_name\",\n Regex = true,\n Values = new[]\n {\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n },\n },\n },\n Tags = new[]\n {\n \"template\",\n \"latest\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/VM\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := VM.GetVirtualMachines(ctx, \u0026vm.GetVirtualMachinesArgs{\n\t\t\tTags: []string{\n\t\t\t\t\"ubuntu\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = VM.GetVirtualMachines(ctx, \u0026vm.GetVirtualMachinesArgs{\n\t\t\tFilters: []vm.GetVirtualMachinesFilter{\n\t\t\t\t{\n\t\t\t\t\tName: \"template\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"true\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"status\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"stopped\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"name\",\n\t\t\t\t\tRegex: pulumi.BoolRef(true),\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"^ubuntu-20.*$\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"node_name\",\n\t\t\t\t\tRegex: pulumi.BoolRef(true),\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"node_us_[1-3]\",\n\t\t\t\t\t\t\"node_eu_[1-3]\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: []string{\n\t\t\t\t\"template\",\n\t\t\t\t\"latest\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.VM.VMFunctions;\nimport com.pulumi.proxmoxve.VM.inputs.GetVirtualMachinesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var ubuntuVms = VMFunctions.getVirtualMachines(GetVirtualMachinesArgs.builder()\n .tags(\"ubuntu\")\n .build());\n\n final var ubuntuTemplates = VMFunctions.getVirtualMachines(GetVirtualMachinesArgs.builder()\n .filters( \n GetVirtualMachinesFilterArgs.builder()\n .name(\"template\")\n .values(true)\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"status\")\n .values(\"stopped\")\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"name\")\n .regex(true)\n .values(\"^ubuntu-20.*$\")\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"node_name\")\n .regex(true)\n .values( \n \"node_us_[1-3]\",\n \"node_eu_[1-3]\")\n .build())\n .tags( \n \"template\",\n \"latest\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n ubuntuVms:\n fn::invoke:\n Function: proxmoxve:VM:getVirtualMachines\n Arguments:\n tags:\n - ubuntu\n ubuntuTemplates:\n fn::invoke:\n Function: proxmoxve:VM:getVirtualMachines\n Arguments:\n filters:\n - name: template\n values:\n - true\n - name: status\n values:\n - stopped\n - name: name\n regex: true\n values:\n - ^ubuntu-20.*$\n - name: node_name\n regex: true\n values:\n - node_us_[1-3]\n - node_eu_[1-3]\n tags:\n - template\n - latest\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVirtualMachines.\n","properties":{"filters":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/getVirtualMachinesFilter:getVirtualMachinesFilter"},"description":"Filter blocks. The VM must satisfy all filter blocks to be included in the result.\n"},"nodeName":{"type":"string","description":"The node name. All cluster nodes will be queried in case this is omitted\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to filter the VMs. The VM must have all\nthe tags to be included in the result.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVirtualMachines.\n","properties":{"filters":{"items":{"$ref":"#/types/proxmoxve:VM/getVirtualMachinesFilter:getVirtualMachinesFilter"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"nodeName":{"description":"The node name.\n","type":"string"},"tags":{"description":"A list of tags of the VM.\n","items":{"type":"string"},"type":"array"},"vms":{"description":"The VMs list.\n","items":{"$ref":"#/types/proxmoxve:VM/getVirtualMachinesVm:getVirtualMachinesVm"},"type":"array"}},"required":["vms","id"],"type":"object"}},"proxmoxve:index/getNode:getNode":{"description":"Retrieves information about node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst node = proxmoxve.getNode({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nnode = proxmoxve.get_node()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var node = ProxmoxVE.GetNode.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := proxmoxve.GetNode(ctx, \u0026proxmoxve.GetNodeArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.ProxmoxveFunctions;\nimport com.pulumi.proxmoxve.inputs.GetNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var node = ProxmoxveFunctions.getNode();\n\n }\n}\n```\n```yaml\nvariables:\n node:\n fn::invoke:\n Function: proxmoxve:getNode\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNode.\n","properties":{"nodeName":{"type":"string","description":"The node name.\n"}},"type":"object","required":["nodeName"]},"outputs":{"description":"A collection of values returned by getNode.\n","properties":{"cpuCount":{"description":"The CPU count on the node.\n","type":"integer"},"cpuModel":{"description":"The CPU model on the node.\n","type":"string"},"cpuSockets":{"description":"The CPU utilization on the node.\n","type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"memoryAvailable":{"description":"The memory available on the node.\n","type":"integer"},"memoryTotal":{"description":"The total memory on the node.\n","type":"integer"},"memoryUsed":{"description":"The memory used on the node.\n","type":"integer"},"nodeName":{"type":"string"},"uptime":{"description":"The uptime in seconds on the node.\n","type":"integer"}},"required":["cpuCount","cpuModel","cpuSockets","memoryAvailable","memoryTotal","memoryUsed","nodeName","uptime","id"],"type":"object"}},"proxmoxve:index/getVm2:getVm2":{"description":"!\u003e **DO NOT USE**\nThis is an experimental implementation of a Proxmox VM datasource using Plugin Framework.\n","inputs":{"description":"A collection of arguments for invoking getVm2.\n","properties":{"clone":{"$ref":"#/types/proxmoxve:index/getVm2Clone:getVm2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:index/getVm2Cpu:getVm2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"id":{"type":"integer","description":"The unique identifier of the VM in the Proxmox cluster.\n"},"name":{"type":"string","description":"The name of the VM.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Whether the VM is a template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:index/getVm2Timeouts:getVm2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:index/getVm2Vga:getVm2Vga","description":"The VGA configuration.\n"}},"type":"object","required":["id","nodeName"]},"outputs":{"description":"A collection of values returned by getVm2.\n","properties":{"clone":{"$ref":"#/types/proxmoxve:index/getVm2Clone:getVm2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:index/getVm2Cpu:getVm2Cpu","description":"The CPU configuration.\n"},"description":{"description":"The description of the VM.\n","type":"string"},"id":{"description":"The unique identifier of the VM in the Proxmox cluster.\n","type":"integer"},"name":{"description":"The name of the VM.\n","type":"string"},"nodeName":{"description":"The name of the node where the VM is provisioned.\n","type":"string"},"tags":{"description":"The tags assigned to the VM.\n","items":{"type":"string"},"type":"array"},"template":{"description":"Whether the VM is a template.\n","type":"boolean"},"timeouts":{"$ref":"#/types/proxmoxve:index/getVm2Timeouts:getVm2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:index/getVm2Vga:getVm2Vga","description":"The VGA configuration.\n"}},"required":["cpu","id","nodeName","tags","vga"],"type":"object"}}}} \ No newline at end of file +{"name":"proxmoxve","displayName":"Proxmox Virtual Environment (Proxmox VE)","version":"6.18.0-alpha.1734504581+e9be4eba.dirty","description":"A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.","keywords":["pulumi","proxmox","proxmoxve"],"homepage":"https://github.com/muhlba91/pulumi-proxmoxve","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`proxmox` Terraform Provider](https://github.com/bpg/terraform-provider-proxmox).","repository":"https://github.com/muhlba91/pulumi-proxmoxve","logoUrl":"https://raw.githubusercontent.com/muhlba91/pulumi-proxmoxve/main/assets/proxmox-logo.png","pluginDownloadURL":"github://api.github.com/muhlba91/pulumi-proxmoxve","publisher":"Daniel Muehlbachler-Pietrzykowski","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"namespaces":{"proxmoxve":"ProxmoxVE"},"compatibility":"tfbridge20"},"go":{"importBasePath":"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve","generateResourceContainerTypes":true,"generateExtraInputTypes":true},"java":{"basePackage":"io.muehlbachler.pulumi","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"packageName":"@muhlba91/pulumi-proxmoxve","packageDescription":"A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/bpg/terraform-provider-proxmox)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-proxmoxve` repo](https://github.com/muhlba91/pulumi-proxmoxve/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-proxmox` repo](https://github.com/bpg/terraform-provider-proxmox/issues).","dependencies":{"@pulumi/pulumi":"^3.0.0"},"devDependencies":{"@types/mime":"^2.0.0","@types/node":"^10.0.0"},"compatibility":"tfbridge20","disableUnionOutputTypes":true},"python":{"packageName":"pulumi_proxmoxve","requires":{"pulumi":"\u003e=3.0.0,\u003c4.0.0"},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/bpg/terraform-provider-proxmox)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-proxmoxve` repo](https://github.com/muhlba91/pulumi-proxmoxve/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-proxmox` repo](https://github.com/bpg/terraform-provider-proxmox/issues).","compatibility":"tfbridge20","pyproject":{}}},"config":{"variables":{"apiToken":{"type":"string","description":"The API token for the Proxmox VE API.\n","secret":true},"authTicket":{"type":"string","description":"The pre-authenticated Ticket for the Proxmox VE API.\n","secret":true},"csrfPreventionToken":{"type":"string","description":"The pre-authenticated CSRF Prevention Token for the Proxmox VE API.\n","secret":true},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\n"},"minTls":{"type":"string","description":"The minimum required TLS version for API calls.Supported values: `1.0|1.1|1.2|1.3`. Defaults to `1.3`.\n"},"otp":{"type":"string","description":"The one-time password for the Proxmox VE API.\n","deprecationMessage":"The `otp` attribute is deprecated and will be removed in a future release. Please use the `api_token` attribute instead."},"password":{"type":"string","description":"The password for the Proxmox VE API.\n","secret":true},"randomVmIdEnd":{"type":"integer","description":"The ending number for random VM / Container IDs.\n"},"randomVmIdStart":{"type":"integer","description":"The starting number for random VM / Container IDs.\n"},"randomVmIds":{"type":"boolean","description":"Whether to generate random VM / Container IDs.\n"},"ssh":{"$ref":"#/types/proxmoxve:config/ssh:ssh","description":"The SSH configuration for the Proxmox nodes.\n"},"tmpDir":{"type":"string","description":"The alternative temporary directory.\n"},"username":{"type":"string","description":"The username for the Proxmox VE API.\n"}}},"types":{"proxmoxve:Acme/getAccountAccount:getAccountAccount":{"properties":{"contacts":{"type":"array","items":{"type":"string"},"description":"An array of contact email addresses.\n"},"createdAt":{"type":"string","description":"The timestamp of the account creation.\n"},"status":{"type":"string","description":"The status of the account. Can be one of `valid`, `deactivated` or `revoked`.\n"}},"type":"object","required":["contacts","createdAt","status"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Acme/getPluginsPlugin:getPluginsPlugin":{"properties":{"api":{"type":"string","description":"API plugin name.\n"},"data":{"type":"object","additionalProperties":{"type":"string"},"description":"DNS plugin data.\n"},"digest":{"type":"string","description":"Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.\n"},"plugin":{"type":"string","description":"ACME Plugin ID name.\n"},"type":{"type":"string","description":"ACME challenge type (dns, standalone).\n"},"validationDelay":{"type":"integer","description":"Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records (0 - 172800).\n"}},"type":"object","required":["api","data","digest","plugin","type","validationDelay"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:CT/ContainerClone:ContainerClone":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the target datastore.\n","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The name of the source node (leave blank, if\nequal to the `node_name` argument).\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The identifier for the source container.\n","willReplaceOnChanges":true}},"type":"object","required":["vmId"]},"proxmoxve:CT/ContainerConsole:ContainerConsole":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the console device (defaults\nto `true`).\n"},"ttyCount":{"type":"integer","description":"The number of available TTY (defaults to `2`).\n"},"type":{"type":"string","description":"The console mode (defaults to `tty`).\n"}},"type":"object"},"proxmoxve:CT/ContainerCpu:ContainerCpu":{"properties":{"architecture":{"type":"string","description":"The CPU architecture (defaults to `amd64`).\n"},"cores":{"type":"integer","description":"The number of CPU cores (defaults to `1`).\n"},"units":{"type":"integer","description":"The CPU units (defaults to `1024`).\n"}},"type":"object"},"proxmoxve:CT/ContainerDisk:ContainerDisk":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create the\ndisk in (defaults to `local`).\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The size of the root filesystem in gigabytes (defaults\nto `4`). Requires `datastore_id` to be set.\n","willReplaceOnChanges":true}},"type":"object"},"proxmoxve:CT/ContainerFeatures:ContainerFeatures":{"properties":{"fuse":{"type":"boolean","description":"Whether the container supports FUSE mounts (defaults\nto `false`)\n"},"keyctl":{"type":"boolean","description":"Whether the container supports `keyctl()` system\ncall (defaults to `false`)\n"},"mounts":{"type":"array","items":{"type":"string"},"description":"List of allowed mount types (`cifs` or `nfs`)\n"},"nesting":{"type":"boolean","description":"Whether the container is nested (defaults\nto `false`)\n"}},"type":"object"},"proxmoxve:CT/ContainerInitialization:ContainerInitialization":{"properties":{"dns":{"$ref":"#/types/proxmoxve:CT/ContainerInitializationDns:ContainerInitializationDns","description":"The DNS configuration.\n"},"hostname":{"type":"string","description":"The hostname.\n"},"ipConfigs":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerInitializationIpConfig:ContainerInitializationIpConfig"},"description":"The IP configuration (one block per network\ndevice).\n"},"userAccount":{"$ref":"#/types/proxmoxve:CT/ContainerInitializationUserAccount:ContainerInitializationUserAccount","description":"The user account configuration.\n","willReplaceOnChanges":true}},"type":"object"},"proxmoxve:CT/ContainerInitializationDns:ContainerInitializationDns":{"properties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"server":{"type":"string","description":"The DNS server. The `server` attribute is\ndeprecated and will be removed in a future release. Please use\nthe `servers` attribute instead.\n","deprecationMessage":"The `server` attribute is deprecated and will be removed in a future release. Please use the `servers` attribute instead."},"servers":{"type":"array","items":{"type":"string"},"description":"The list of DNS servers.\n"}},"type":"object"},"proxmoxve:CT/ContainerInitializationIpConfig:ContainerInitializationIpConfig":{"properties":{"ipv4":{"$ref":"#/types/proxmoxve:CT/ContainerInitializationIpConfigIpv4:ContainerInitializationIpConfigIpv4","description":"The IPv4 configuration.\n"},"ipv6":{"$ref":"#/types/proxmoxve:CT/ContainerInitializationIpConfigIpv6:ContainerInitializationIpConfigIpv6","description":"The IPv4 configuration.\n"}},"type":"object"},"proxmoxve:CT/ContainerInitializationIpConfigIpv4:ContainerInitializationIpConfigIpv4":{"properties":{"address":{"type":"string","description":"The IPv4 address (use `dhcp` for auto-discovery).\n"},"gateway":{"type":"string","description":"The IPv4 gateway (must be omitted\nwhen `dhcp` is used as the address).\n"}},"type":"object"},"proxmoxve:CT/ContainerInitializationIpConfigIpv6:ContainerInitializationIpConfigIpv6":{"properties":{"address":{"type":"string","description":"The IPv6 address (use `dhcp` for auto-discovery).\n"},"gateway":{"type":"string","description":"The IPv6 gateway (must be omitted\nwhen `dhcp` is used as the address).\n"}},"type":"object"},"proxmoxve:CT/ContainerInitializationUserAccount:ContainerInitializationUserAccount":{"properties":{"keys":{"type":"array","items":{"type":"string"},"description":"The SSH keys for the root account.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password for the root account.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"proxmoxve:CT/ContainerMemory:ContainerMemory":{"properties":{"dedicated":{"type":"integer","description":"The dedicated memory in megabytes (defaults\nto `512`).\n"},"swap":{"type":"integer","description":"The swap size in megabytes (defaults to `0`).\n"}},"type":"object"},"proxmoxve:CT/ContainerMountPoint:ContainerMountPoint":{"properties":{"acl":{"type":"boolean","description":"Explicitly enable or disable ACL support.\n"},"backup":{"type":"boolean","description":"Whether to include the mount point in backups (only\nused for volume mount points, defaults to `false`).\n"},"mountOptions":{"type":"array","items":{"type":"string"},"description":"List of extra mount options.\n"},"path":{"type":"string","description":"Path to the mount point as seen from inside the\ncontainer.\n"},"quota":{"type":"boolean","description":"Enable user quotas inside the container (not supported\nwith ZFS subvolumes).\n"},"readOnly":{"type":"boolean","description":"Read-only mount point.\n"},"replicate":{"type":"boolean","description":"Will include this volume to a storage replica job.\n"},"shared":{"type":"boolean","description":"Mark this non-volume mount point as available on all\nnodes.\n"},"size":{"type":"string","description":"Volume size (only for volume mount points).\nCan be specified with a unit suffix (e.g. `10G`).\n"},"volume":{"type":"string","description":"Volume, device or directory to mount into the\ncontainer.\n"}},"type":"object","required":["path","volume"]},"proxmoxve:CT/ContainerNetworkInterface:ContainerNetworkInterface":{"properties":{"bridge":{"type":"string","description":"The name of the network bridge (defaults\nto `vmbr0`).\n"},"enabled":{"type":"boolean","description":"Whether to enable the network device (defaults\nto `true`).\n"},"firewall":{"type":"boolean","description":"Whether this interface's firewall rules should be\nused (defaults to `false`).\n"},"macAddress":{"type":"string","description":"The MAC address.\n"},"mtu":{"type":"integer","description":"Maximum transfer unit of the interface. Cannot be\nlarger than the bridge's MTU.\n"},"name":{"type":"string","description":"The network interface name.\n"},"rateLimit":{"type":"number","description":"The rate limit in megabytes per second.\n"},"vlanId":{"type":"integer","description":"The VLAN identifier.\n"}},"type":"object","required":["name"]},"proxmoxve:CT/ContainerOperatingSystem:ContainerOperatingSystem":{"properties":{"templateFileId":{"type":"string","description":"The identifier for an OS template file.\nThe ID format is `\u003cdatastore_id\u003e:\u003ccontent_type\u003e/\u003cfile_name\u003e`, for example `local:iso/jammy-server-cloudimg-amd64.tar.gz`.\nCan be also taken from `proxmoxve.Download.File` resource, or from the output of `pvesm list \u003cstorage\u003e`.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type (defaults to `unmanaged`).\n"}},"type":"object","required":["templateFileId"]},"proxmoxve:CT/ContainerStartup:ContainerStartup":{"properties":{"downDelay":{"type":"integer","description":"A non-negative number defining the delay in\nseconds before the next container is shut down.\n"},"order":{"type":"integer","description":"A non-negative number defining the general startup\norder.\n"},"upDelay":{"type":"integer","description":"A non-negative number defining the delay in\nseconds before the next container is started.\n"}},"type":"object"},"proxmoxve:Cluster/OptionsNextId:OptionsNextId":{"properties":{"lower":{"type":"integer","description":"The minimum number for the next free VM ID. Must be higher or equal to 100\n"},"upper":{"type":"integer","description":"The maximum number for the next free VM ID. Must be less or equal to 999999999\n"}},"type":"object"},"proxmoxve:Cluster/OptionsNotify:OptionsNotify":{"properties":{"haFencingMode":{"type":"string","description":"Cluster-wide notification settings for the HA fencing mode. Must be `always` | `never`.\n"},"haFencingTarget":{"type":"string","description":"Cluster-wide notification settings for the HA fencing target.\n"},"packageUpdates":{"type":"string","description":"Cluster-wide notification settings for package updates. Must be `auto` | `always` | `never`.\n"},"packageUpdatesTarget":{"type":"string","description":"Cluster-wide notification settings for the package updates target.\n"},"replication":{"type":"string","description":"Cluster-wide notification settings for replication. Must be `always` | `never`.\n"},"replicationTarget":{"type":"string","description":"Cluster-wide notification settings for the replication target.\n"}},"type":"object"},"proxmoxve:Hardware/getMappingsCheck:getMappingsCheck":{"properties":{"mappingId":{"type":"string","description":"The corresponding hardware mapping ID of the node check diagnostic entry.\n"},"message":{"type":"string","description":"The message of the node check diagnostic entry.\n"},"severity":{"type":"string","description":"The severity of the node check diagnostic entry.\n"}},"type":"object","required":["mappingId","message","severity"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Hardware/mapping/PciMap:PciMap":{"properties":{"comment":{"type":"string","description":"The comment of the mapped PCI device.\n"},"id":{"type":"string","description":"The ID of the map.\n"},"iommuGroup":{"type":"integer","description":"The IOMMU group of the map. Not mandatory for the Proxmox VE API call, but causes a PCI hardware mapping to be incomplete when not set\n"},"node":{"type":"string","description":"The node name of the map.\n"},"path":{"type":"string","description":"The path of the map.\n"},"subsystemId":{"type":"string","description":"The subsystem ID group of the map. Not mandatory for the Proxmox VE API call, but causes a PCI hardware mapping to be incomplete when not set\n"}},"type":"object","required":["id","node","path"]},"proxmoxve:Hardware/mapping/UsbMap:UsbMap":{"properties":{"comment":{"type":"string","description":"The comment of the mapped USB device.\n"},"id":{"type":"string","description":"The ID of the map.\n"},"node":{"type":"string","description":"The node name of the map.\n"},"path":{"type":"string","description":"The path of the map. For hardware mappings of type USB the path is optional and indicates that the device is mapped through the device ID instead of ports.\n"}},"type":"object","required":["id","node"]},"proxmoxve:Hardware/mapping/getPciMap:getPciMap":{"properties":{"comment":{"type":"string","description":"The comment of the mapped PCI device.\n"},"id":{"type":"string","description":"The ID attribute of the map.\n"},"iommuGroup":{"type":"integer","description":"The IOMMU group attribute of the map.\n"},"node":{"type":"string","description":"The node name attribute of the map.\n"},"path":{"type":"string","description":"The path attribute of the map.\n"},"subsystemId":{"type":"string","description":"The subsystem ID attribute of the map.Not mandatory for the Proxmox VE API call, but causes a PCI hardware mapping to be incomplete when not set.\n"}},"type":"object","required":["comment","id","iommuGroup","node","path","subsystemId"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Hardware/mapping/getUsbMap:getUsbMap":{"properties":{"comment":{"type":"string","description":"The comment of the mapped USB device.\n"},"id":{"type":"string","description":"The ID attribute of the map.\n"},"node":{"type":"string","description":"The node name attribute of the map.\n"},"path":{"type":"string","description":"The path attribute of the map.\n"}},"type":"object","required":["comment","id","node","path"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Network/FirewallIPSetCidr:FirewallIPSetCidr":{"properties":{"comment":{"type":"string","description":"Arbitrary string annotation.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Network/IP specification in CIDR format.\n","willReplaceOnChanges":true},"nomatch":{"type":"boolean","description":"Entries marked as `nomatch` are skipped as if those\nwere not added to the set.\n","willReplaceOnChanges":true}},"type":"object","required":["name"]},"proxmoxve:Network/FirewallLogRatelimit:FirewallLogRatelimit":{"properties":{"burst":{"type":"integer","description":"Initial burst of packages which will always get\nlogged before the rate is applied (defaults to `5`).\n"},"enabled":{"type":"boolean","description":"Enable or disable the log rate limit.\n"},"rate":{"type":"string","description":"Frequency with which the burst bucket gets refilled\n(defaults to `1/second`).\n"}},"type":"object"},"proxmoxve:Network/FirewallRulesRule:FirewallRulesRule":{"properties":{"action":{"type":"string","description":"Rule action (`ACCEPT`, `DROP`, `REJECT`).\n"},"comment":{"type":"string","description":"Rule comment.\n"},"dest":{"type":"string","description":"Restrict packet destination address. This can\nrefer to a single IP address, an IP set ('+ipsetname') or an IP\nalias definition. You can also specify an address range\nlike `20.34.101.207-201.3.9.99`, or a list of IP addresses and\nnetworks (entries are separated by comma). Please do not mix IPv4\nand IPv6 addresses inside such lists.\n"},"dport":{"type":"string","description":"Restrict TCP/UDP destination port. You can use\nservice names or simple numbers (0-65535), as defined\nin `/etc/services`. Port ranges can be specified with '\\d+:\\d+', for\nexample `80:85`, and you can use comma separated list to match\nseveral ports or ranges.\n"},"enabled":{"type":"boolean","description":"Enable this rule. Defaults to `true`.\n"},"iface":{"type":"string","description":"Network interface name. You have to use network\nconfiguration key names for VMs and containers ('net\\d+'). Host\nrelated rules can use arbitrary strings.\n"},"log":{"type":"string","description":"Log level for this rule (`emerg`, `alert`, `crit`,\n`err`, `warning`, `notice`, `info`, `debug`, `nolog`).\n"},"macro":{"type":"string","description":"Macro name. Use predefined standard macro\nfrom \u003chttps://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions\u003e\n"},"pos":{"type":"integer","description":"Position of the rule in the list.\n"},"proto":{"type":"string","description":"Restrict packet protocol. You can use protocol\nnames as defined in '/etc/protocols'.\n"},"securityGroup":{"type":"string","description":"Security group name.\n","willReplaceOnChanges":true},"source":{"type":"string","description":"Restrict packet source address. This can refer\nto a single IP address, an IP set ('+ipsetname') or an IP alias\ndefinition. You can also specify an address range\nlike `20.34.101.207-201.3.9.99`, or a list of IP addresses and\nnetworks (entries are separated by comma). Please do not mix IPv4\nand IPv6 addresses inside such lists.\n"},"sport":{"type":"string","description":"Restrict TCP/UDP source port. You can use\nservice names or simple numbers (0-65535), as defined\nin `/etc/services`. Port ranges can be specified with '\\d+:\\d+', for\nexample `80:85`, and you can use comma separated list to match\nseveral ports or ranges.\n- a security group insertion block, which includes the following arguments:\n"},"type":{"type":"string","description":"Rule type (`in`, `out`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["pos"]}}},"proxmoxve:Network/FirewallSecurityGroupRule:FirewallSecurityGroupRule":{"properties":{"action":{"type":"string","description":"Rule action (`ACCEPT`, `DROP`, `REJECT`).\n"},"comment":{"type":"string","description":"Rule comment.\n"},"dest":{"type":"string","description":"Restrict packet destination address. This can refer to\na single IP address, an IP set ('+ipsetname') or an IP alias\ndefinition. You can also specify an address range like\n`20.34.101.207-201.3.9.99`, or a list of IP addresses and networks\n(entries are separated by comma). Please do not mix IPv4 and IPv6\naddresses inside such lists.\n"},"dport":{"type":"string","description":"Restrict TCP/UDP destination port. You can use\nservice names or simple numbers (0-65535), as defined in '/etc/\nservices'. Port ranges can be specified with '\\d+:\\d+', for example\n`80:85`, and you can use comma separated list to match several ports or\nranges.\n"},"enabled":{"type":"boolean","description":"Enable rule\n"},"iface":{"type":"string","description":"Network interface name. You have to use network\nconfiguration key names for VMs and containers ('net\\d+'). Host related\nrules can use arbitrary strings.\n"},"log":{"type":"string","description":"Log level for this rule (`emerg`, `alert`, `crit`,\n`err`, `warning`, `notice`, `info`, `debug`, `nolog`).\n"},"macro":{"type":"string","description":"Macro name. Use predefined standard macro\nfrom \u003chttps://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions\u003e\n"},"pos":{"type":"integer","description":"Position of the rule in the list.\n"},"proto":{"type":"string","description":"Restrict packet protocol. You can use protocol names\nas defined in '/etc/protocols'.\n"},"securityGroup":{"type":"string","description":"Security group name\n","willReplaceOnChanges":true},"source":{"type":"string","description":"Restrict packet source address. This can refer\nto a single IP address, an IP set ('+ipsetname') or an IP alias\ndefinition. You can also specify an address range like\n`20.34.101.207-201.3.9.99`, or a list of IP addresses and networks (\nentries are separated by comma). Please do not mix IPv4 and IPv6\naddresses inside such lists.\n"},"sport":{"type":"string","description":"Restrict TCP/UDP source port. You can use\nservice names or simple numbers (0-65535), as defined in '/etc/\nservices'. Port ranges can be specified with '\\d+:\\d+', for example\n`80:85`, and you can use comma separated list to match several ports or\nranges.\n"},"type":{"type":"string","description":"Rule type (`in`, `out`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["pos"]}}},"proxmoxve:Network/getHostsEntry:getHostsEntry":{"properties":{"address":{"type":"string","description":"The address\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"The hostnames associated with each of the IP addresses.\n"}},"type":"object","required":["address","hostnames"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Permission/GroupAcl:GroupAcl":{"properties":{"path":{"type":"string","description":"The path.\n"},"propagate":{"type":"boolean","description":"Whether to propagate to child paths.\n"},"roleId":{"type":"string","description":"The role identifier.\n"}},"type":"object","required":["path","roleId"]},"proxmoxve:Permission/PoolMember:PoolMember":{"properties":{"datastoreId":{"type":"string","description":"The datastore identifier.\n"},"id":{"type":"string","description":"The member identifier.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"type":{"type":"string","description":"The member type.\n"},"vmId":{"type":"integer","description":"The virtual machine identifier.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["datastoreId","id","nodeName","type","vmId"]}}},"proxmoxve:Permission/UserAcl:UserAcl":{"properties":{"path":{"type":"string","description":"The path.\n"},"propagate":{"type":"boolean","description":"Whether to propagate to child paths.\n"},"roleId":{"type":"string","description":"The role identifier.\n"}},"type":"object","required":["path","roleId"]},"proxmoxve:Permission/getGroupAcl:getGroupAcl":{"properties":{"path":{"type":"string","description":"The path.\n"},"propagate":{"type":"boolean","description":"Whether to propagate to child paths.\n"},"roleId":{"type":"string","description":"The role identifier.\n"}},"type":"object","required":["path","propagate","roleId"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Permission/getPoolMember:getPoolMember":{"properties":{"datastoreId":{"type":"string","description":"The datastore identifier.\n"},"id":{"type":"string","description":"The member identifier.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"type":{"type":"string","description":"The member type.\n"},"vmId":{"type":"integer","description":"The virtual machine identifier.\n"}},"type":"object","required":["datastoreId","id","nodeName","type","vmId"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Permission/getUserAcl:getUserAcl":{"properties":{"path":{"type":"string","description":"The path.\n"},"propagate":{"type":"boolean","description":"Whether to propagate to child paths.\n"},"roleId":{"type":"string","description":"The role identifier.\n"}},"type":"object","required":["path","propagate","roleId"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:Storage/FileSourceFile:FileSourceFile":{"properties":{"changed":{"type":"boolean","description":"Whether the source file has changed since the last run\n","willReplaceOnChanges":true},"checksum":{"type":"string","description":"The SHA256 checksum of the source file.\n","willReplaceOnChanges":true},"fileName":{"type":"string","description":"The file name to use instead of the source file\nname. Useful when the source file does not have a valid file extension,\nfor example when the source file is a URL referencing a `.qcow2` image.\n","willReplaceOnChanges":true},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step for\nHTTPS sources (defaults to `false`).\n","willReplaceOnChanges":true},"minTls":{"type":"string","description":"The minimum required TLS version for HTTPS\nsources. \"Supported values: `1.0|1.1|1.2|1.3` (defaults to `1.3`).\n","willReplaceOnChanges":true},"path":{"type":"string","description":"A path to a local file or a URL.\n","willReplaceOnChanges":true}},"type":"object","required":["path"]},"proxmoxve:Storage/FileSourceRaw:FileSourceRaw":{"properties":{"data":{"type":"string","description":"The raw data.\n","willReplaceOnChanges":true},"fileName":{"type":"string","description":"The file name.\n","willReplaceOnChanges":true},"resize":{"type":"integer","description":"The number of bytes to resize the file to.\n","willReplaceOnChanges":true}},"type":"object","required":["data","fileName"]},"proxmoxve:VM/VirtualMachine2Cdrom:VirtualMachine2Cdrom":{"properties":{"fileId":{"type":"string","description":"The file ID of the CD-ROM, or `cdrom|none`. Defaults to `none` to leave the CD-ROM empty. Use `cdrom` to connect to the physical drive.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["fileId"]}}},"proxmoxve:VM/VirtualMachine2Clone:VirtualMachine2Clone":{"properties":{"id":{"type":"integer","description":"The ID of the VM to clone.\n"},"retries":{"type":"integer","description":"The number of retries to perform when cloning the VM (default: 3).\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["id","retries"]}}},"proxmoxve:VM/VirtualMachine2Cpu:VirtualMachine2Cpu":{"properties":{"affinity":{"type":"string","description":"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.\n"},"architecture":{"type":"string","description":"The CPU architecture `\u003caarch64 | x86_64\u003e` (defaults to the host). Setting `affinity` is only allowed for `root@pam` authenticated user.\n"},"cores":{"type":"integer","description":"The number of CPU cores per socket (defaults to `1`).\n"},"flags":{"type":"array","items":{"type":"string"},"description":"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`.\n"},"hotplugged":{"type":"integer","description":"The number of hotplugged vCPUs (defaults to `0`).\n"},"limit":{"type":"integer","description":"Limit of CPU usage (defaults to `0` which means no limit).\n"},"numa":{"type":"boolean","description":"Enable NUMA (defaults to `false`).\n"},"sockets":{"type":"integer","description":"The number of CPU sockets (defaults to `1`).\n"},"type":{"type":"string","description":"Emulated CPU type, it's recommended to use `x86-64-v2-AES` or higher (defaults to `kvm64`). See https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm*virtual*machines_settings for more information.\n"},"units":{"type":"integer","description":"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.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["affinity","architecture","cores","flags","hotplugged","limit","numa","sockets","type","units"]}}},"proxmoxve:VM/VirtualMachine2Timeouts:VirtualMachine2Timeouts":{"properties":{"create":{"type":"string","description":"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).\n"},"delete":{"type":"string","description":"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.\n"},"read":{"type":"string","description":"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.\n"},"update":{"type":"string","description":"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).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachine2Vga:VirtualMachine2Vga":{"properties":{"clipboard":{"type":"string","description":"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.\n"},"memory":{"type":"integer","description":"The VGA memory in megabytes (4-512 MB). Has no effect with serial display.\n"},"type":{"type":"string","description":"The VGA type (defaults to `std`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clipboard","memory","type"]}}},"proxmoxve:VM/VirtualMachineAgent:VirtualMachineAgent":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the QEMU agent (defaults\nto `false`).\n"},"timeout":{"type":"string","description":"The maximum amount of time to wait for data from\nthe QEMU agent to become available ( defaults to `15m`).\n"},"trim":{"type":"boolean","description":"Whether to enable the FSTRIM feature in the QEMU agent\n(defaults to `false`).\n"},"type":{"type":"string","description":"The QEMU agent interface type (defaults to `virtio`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineAudioDevice:VirtualMachineAudioDevice":{"properties":{"device":{"type":"string","description":"The device (defaults to `intel-hda`).\n- `AC97` - Intel 82801AA AC97 Audio.\n- `ich9-intel-hda` - Intel HD Audio Controller (ich9).\n- `intel-hda` - Intel HD Audio.\n"},"driver":{"type":"string","description":"The driver (defaults to `spice`).\n"},"enabled":{"type":"boolean","description":"Whether to enable the audio device (defaults\nto `true`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineCdrom:VirtualMachineCdrom":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the CDROM drive (defaults\nto `false`).\n"},"fileId":{"type":"string","description":"A file ID for an ISO file (defaults to `cdrom` as\nin the physical drive). Use `none` to leave the CDROM drive empty.\n"},"interface":{"type":"string","description":"A hardware interface to connect CDROM drive to,\nmust be `ideN` (defaults to `ide3`). Note that `q35` machine type only\nsupports `ide0` and `ide2`.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineClone:VirtualMachineClone":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the target datastore.\n","willReplaceOnChanges":true},"full":{"type":"boolean","description":"Full or linked clone (defaults to `true`).\n","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The name of the source node (leave blank, if\nequal to the `node_name` argument).\n","willReplaceOnChanges":true},"retries":{"type":"integer","description":"Number of retries in Proxmox for clone vm.\nSometimes Proxmox errors with timeout when creating multiple clones at\nonce.\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The identifier for the source VM.\n","willReplaceOnChanges":true}},"type":"object","required":["vmId"]},"proxmoxve:VM/VirtualMachineCpu:VirtualMachineCpu":{"properties":{"affinity":{"type":"string","description":"The CPU cores that are used to run the VM’s vCPU. The\nvalue is a list of CPU IDs, separated by commas. The CPU IDs are zero-based.\nFor 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\nCPU cores. Setting `affinity` is only allowed for `root@pam` authenticated user.\n"},"architecture":{"type":"string","description":"The CPU architecture (defaults to `x86_64`).\n"},"cores":{"type":"integer","description":"The number of CPU cores (defaults to `1`).\n"},"flags":{"type":"array","items":{"type":"string"},"description":"The CPU flags.\n- `+aes`/`-aes` - Activate AES instruction set for HW acceleration.\n- `+amd-no-ssb`/`-amd-no-ssb` - Notifies guest OS that host is not\nvulnerable for Spectre on AMD CPUs.\n- `+amd-ssbd`/`-amd-ssbd` - Improves Spectre mitigation performance with\nAMD CPUs, best used with \"virt-ssbd\".\n- `+hv-evmcs`/`-hv-evmcs` - Improve performance for nested\nvirtualization (only supported on Intel CPUs).\n- `+hv-tlbflush`/`-hv-tlbflush` - Improve performance in overcommitted\nWindows guests (may lead to guest BSOD on old CPUs).\n- `+ibpb`/`-ibpb` - Allows improved Spectre mitigation on AMD CPUs.\n- `+md-clear`/`-md-clear` - Required to let the guest OS know if MDS is\nmitigated correctly.\n- `+pcid`/`-pcid` - Meltdown fix cost reduction on Westmere, Sandy- and\nIvy Bridge Intel CPUs.\n- `+pdpe1gb`/`-pdpe1gb` - Allows guest OS to use 1 GB size pages, if\nhost HW supports it.\n- `+spec-ctrl`/`-spec-ctrl` - Allows improved Spectre mitigation with\nIntel CPUs.\n- `+ssbd`/`-ssbd` - Protection for \"Speculative Store Bypass\" for Intel\nmodels.\n- `+virt-ssbd`/`-virt-ssbd` - Basis for \"Speculative Store Bypass\"\nprotection for AMD models.\n"},"hotplugged":{"type":"integer","description":"The number of hotplugged vCPUs (defaults\nto `0`).\n"},"limit":{"type":"integer","description":"Limit of CPU usage, `0...128`. (defaults to `0` -- no limit).\n"},"numa":{"type":"boolean","description":"Enable/disable NUMA. (default to `false`)\n"},"sockets":{"type":"integer","description":"The number of CPU sockets (defaults to `1`).\n"},"type":{"type":"string","description":"The emulated CPU type, it's recommended to\nuse `x86-64-v2-AES` (defaults to `qemu64`).\n"},"units":{"type":"integer","description":"The CPU units (defaults to `1024`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineDisk:VirtualMachineDisk":{"properties":{"aio":{"type":"string","description":"The disk AIO mode (defaults to `io_uring`).\n"},"backup":{"type":"boolean","description":"Whether the drive should be included when making backups (defaults to `true`).\n"},"cache":{"type":"string","description":"The cache type (defaults to `none`).\n"},"datastoreId":{"type":"string","description":"The identifier for the datastore to create\nthe disk in (defaults to `local-lvm`).\n"},"discard":{"type":"string","description":"Whether to pass discard/trim requests to the\nunderlying storage. Supported values are `on`/`ignore` (defaults\nto `ignore`).\n"},"fileFormat":{"type":"string","description":"The file format (defaults to `qcow2`).\n"},"fileId":{"type":"string","description":"The file ID for a disk image. The ID format is\n`\u003cdatastore_id\u003e:\u003ccontent_type\u003e/\u003cfile_name\u003e`, for example `local:iso/centos8.img`. Can be also taken from\n`proxmoxve.Download.File` resource.\n","willReplaceOnChanges":true},"interface":{"type":"string","description":"The disk interface for Proxmox, currently `scsi`,\n`sata` and `virtio` interfaces are supported. Append the disk index at\nthe end, for example, `virtio0` for the first virtio disk, `virtio1` for\nthe second, etc.\n"},"iothread":{"type":"boolean","description":"Whether to use iothreads for this disk (defaults\nto `false`).\n"},"pathInDatastore":{"type":"string","description":"The in-datastore path to the disk image.\n***Experimental.***Use to attach another VM's disks,\nor (as root only) host's filesystem paths (`datastore_id` empty string).\nSee \"*Example: Attached disks*\".\n"},"replicate":{"type":"boolean","description":"Whether the drive should be considered for replication jobs (defaults to `true`).\n"},"serial":{"type":"string","description":"The serial number of the disk, up to 20 bytes long.\n"},"size":{"type":"integer","description":"The disk size in gigabytes (defaults to `8`).\n"},"speed":{"$ref":"#/types/proxmoxve:VM/VirtualMachineDiskSpeed:VirtualMachineDiskSpeed","description":"The speed limits.\n"},"ssd":{"type":"boolean","description":"Whether to use an SSD emulation option for this disk (\ndefaults to `false`). Note that SSD emulation is not supported on VirtIO\nBlock drives.\n"}},"type":"object","required":["interface"],"language":{"nodejs":{"requiredOutputs":["fileFormat","interface","pathInDatastore"]}}},"proxmoxve:VM/VirtualMachineDiskSpeed:VirtualMachineDiskSpeed":{"properties":{"iopsRead":{"type":"integer","description":"The maximum read I/O in operations per second.\n"},"iopsReadBurstable":{"type":"integer","description":"The maximum unthrottled read I/O pool in operations per second.\n"},"iopsWrite":{"type":"integer","description":"The maximum write I/O in operations per second.\n"},"iopsWriteBurstable":{"type":"integer","description":"The maximum unthrottled write I/O pool in operations per second.\n"},"read":{"type":"integer","description":"The maximum read speed in megabytes per second.\n"},"readBurstable":{"type":"integer","description":"The maximum burstable read speed in\nmegabytes per second.\n"},"write":{"type":"integer","description":"The maximum write speed in megabytes per second.\n"},"writeBurstable":{"type":"integer","description":"The maximum burstable write speed in\nmegabytes per second.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create\nthe disk in (defaults to `local-lvm`).\n"},"fileFormat":{"type":"string","description":"The file format (defaults to `raw`).\n","willReplaceOnChanges":true},"preEnrolledKeys":{"type":"boolean","description":"Use am EFI vars template with\ndistribution-specific and Microsoft Standard keys enrolled, if used with\nEFI type=`4m`. Ignored for VMs with cpu.architecture=`aarch64` (defaults\nto `false`).\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Size and type of the OVMF EFI disk. `4m` is newer and\nrecommended, and required for Secure Boot. For backwards compatibility\nuse `2m`. Ignored for VMs with cpu.architecture=`aarch64` (defaults\nto `2m`).\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["fileFormat"]}}},"proxmoxve:VM/VirtualMachineHostpci:VirtualMachineHostpci":{"properties":{"device":{"type":"string","description":"The PCI device name for Proxmox, in form\nof `hostpciX` where `X` is a sequential number from 0 to 15.\n"},"id":{"type":"string","description":"The PCI device ID. This parameter is not compatible\nwith `api_token` and requires the root `username` and `password`\nconfigured in the proxmox provider. Use either this or `mapping`.\n"},"mapping":{"type":"string","description":"The resource mapping name of the device, for\nexample gpu. Use either this or `id`.\n"},"mdev":{"type":"string","description":"The mediated device ID to use.\n"},"pcie":{"type":"boolean","description":"Tells Proxmox to use a PCIe or PCI port. Some\nguests/device combination require PCIe rather than PCI. PCIe is only\navailable for q35 machine types.\n"},"romFile":{"type":"string","description":"A path to a ROM file for the device to use. This\nis a relative path under `/usr/share/kvm/`.\n"},"rombar":{"type":"boolean","description":"Makes the firmware ROM visible for the VM (defaults\nto `true`).\n"},"xvga":{"type":"boolean","description":"Marks the PCI(e) device as the primary GPU of the VM.\nWith this enabled the `vga` configuration argument will be ignored.\n"}},"type":"object","required":["device"]},"proxmoxve:VM/VirtualMachineInitialization:VirtualMachineInitialization":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create the\ncloud-init disk in (defaults to `local-lvm`).\n"},"dns":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitializationDns:VirtualMachineInitializationDns","description":"The DNS configuration.\n"},"interface":{"type":"string","description":"The hardware interface to connect the cloud-init\nimage to. Must be one of `ide0..3`, `sata0..5`, `scsi0..30`. Will be\ndetected if the setting is missing but a cloud-init image is present,\notherwise defaults to `ide2`.\n"},"ipConfigs":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitializationIpConfig:VirtualMachineInitializationIpConfig"},"description":"The IP configuration (one block per network\ndevice).\n"},"metaDataFileId":{"type":"string","description":"The identifier for a file containing\nall meta data passed to the VM via cloud-init.\n","willReplaceOnChanges":true},"networkDataFileId":{"type":"string","description":"The identifier for a file containing\nnetwork configuration data passed to the VM via cloud-init (conflicts\nwith `ip_config`).\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The cloud-init configuration format\n","willReplaceOnChanges":true},"upgrade":{"type":"boolean","description":"Whether to do an automatic package upgrade after the first boot\n","deprecationMessage":"The `upgrade` attribute is deprecated and will be removed in a future release."},"userAccount":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitializationUserAccount:VirtualMachineInitializationUserAccount","description":"The user account configuration (conflicts\nwith `user_data_file_id`).\n","willReplaceOnChanges":true},"userDataFileId":{"type":"string","description":"The identifier for a file containing\ncustom user data (conflicts with `user_account`).\n","willReplaceOnChanges":true},"vendorDataFileId":{"type":"string","description":"The identifier for a file containing\nall vendor data passed to the VM via cloud-init.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["upgrade"]}}},"proxmoxve:VM/VirtualMachineInitializationDns:VirtualMachineInitializationDns":{"properties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"server":{"type":"string","description":"The DNS server. The `server` attribute is\ndeprecated and will be removed in a future release. Please use the\n`servers` attribute instead.\n","deprecationMessage":"The `server` attribute is deprecated and will be removed in a future release. Please use the `servers` attribute instead."},"servers":{"type":"array","items":{"type":"string"},"description":"The list of DNS servers.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineInitializationIpConfig:VirtualMachineInitializationIpConfig":{"properties":{"ipv4":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitializationIpConfigIpv4:VirtualMachineInitializationIpConfigIpv4","description":"The IPv4 configuration.\n"},"ipv6":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitializationIpConfigIpv6:VirtualMachineInitializationIpConfigIpv6","description":"The IPv6 configuration.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineInitializationIpConfigIpv4:VirtualMachineInitializationIpConfigIpv4":{"properties":{"address":{"type":"string","description":"The IPv4 address in CIDR notation\n(e.g. 192.168.2.2/24). Alternatively, set this to `dhcp` for\nautodiscovery.\n"},"gateway":{"type":"string","description":"The IPv4 gateway (must be omitted\nwhen `dhcp` is used as the address).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineInitializationIpConfigIpv6:VirtualMachineInitializationIpConfigIpv6":{"properties":{"address":{"type":"string","description":"The IPv6 address in CIDR notation\n(e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this\nto `dhcp` for autodiscovery.\n"},"gateway":{"type":"string","description":"The IPv6 gateway (must be omitted\nwhen `dhcp` is used as the address).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineInitializationUserAccount:VirtualMachineInitializationUserAccount":{"properties":{"keys":{"type":"array","items":{"type":"string"},"description":"The SSH keys.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The SSH password.\n","secret":true,"willReplaceOnChanges":true},"username":{"type":"string","description":"The SSH username.\n","willReplaceOnChanges":true}},"type":"object"},"proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory":{"properties":{"dedicated":{"type":"integer","description":"The dedicated memory in megabytes (defaults to `512`).\n"},"floating":{"type":"integer","description":"The floating memory in megabytes. The default is `0`, which disables \"ballooning device\" for the VM.\nPlease note that Proxmox has ballooning enabled by default. To enable it, set `floating` to the same value as `dedicated`.\nSee [Proxmox documentation](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_memory) section 10.2.6 for more information.\n"},"hugepages":{"type":"string","description":"Enable/disable hugepages memory (defaults to disable).\n"},"keepHugepages":{"type":"boolean","description":"Keep hugepages memory after the VM is stopped (defaults to `false`).\n\nSettings `hugepages` and `keep_hugepages` are only allowed for `root@pam` authenticated user.\nAnd required `cpu.numa` to be enabled.\n"},"shared":{"type":"integer","description":"The shared memory in megabytes (defaults to `0`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineNetworkDevice:VirtualMachineNetworkDevice":{"properties":{"bridge":{"type":"string","description":"The name of the network bridge (defaults to `vmbr0`).\n"},"disconnected":{"type":"boolean","description":"Whether to disconnect the network device from the network (defaults to `false`).\n"},"enabled":{"type":"boolean","description":"Whether to enable the network device (defaults to `true`).\n"},"firewall":{"type":"boolean","description":"Whether this interface's firewall rules should be used (defaults to `false`).\n"},"macAddress":{"type":"string","description":"The MAC address.\n"},"model":{"type":"string","description":"The network device model (defaults to `virtio`).\n"},"mtu":{"type":"integer","description":"Force MTU, for VirtIO only. Set to 1 to use the bridge MTU. Cannot be larger than the bridge MTU.\n"},"queues":{"type":"integer","description":"The number of queues for VirtIO (1..64).\n"},"rateLimit":{"type":"number","description":"The rate limit in megabytes per second.\n"},"trunks":{"type":"string","description":"String containing a `;` separated list of VLAN trunks\n(\"10;20;30\"). Note that the VLAN-aware feature need to be enabled on the PVE\nLinux Bridge to use trunks.\n"},"vlanId":{"type":"integer","description":"The VLAN identifier.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["macAddress"]}}},"proxmoxve:VM/VirtualMachineNuma:VirtualMachineNuma":{"properties":{"cpus":{"type":"string","description":"The CPU cores to assign to the NUMA node (format is `0-7;16-31`).\n"},"device":{"type":"string","description":"The NUMA device name for Proxmox, in form\nof `numaX` where `X` is a sequential number from 0 to 7.\n"},"hostnodes":{"type":"string","description":"The NUMA host nodes.\n"},"memory":{"type":"integer","description":"The memory in megabytes to assign to the NUMA node.\n"},"policy":{"type":"string","description":"The NUMA policy (defaults to `preferred`).\n"}},"type":"object","required":["cpus","device","memory"]},"proxmoxve:VM/VirtualMachineOperatingSystem:VirtualMachineOperatingSystem":{"properties":{"type":{"type":"string","description":"The type (defaults to `other`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineSerialDevice:VirtualMachineSerialDevice":{"properties":{"device":{"type":"string","description":"The device (defaults to `socket`).\n- `/dev/*` - A host serial device.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineSmbios:VirtualMachineSmbios":{"properties":{"family":{"type":"string","description":"The family string.\n"},"manufacturer":{"type":"string","description":"The manufacturer.\n"},"product":{"type":"string","description":"The product ID.\n"},"serial":{"type":"string","description":"The serial number.\n"},"sku":{"type":"string","description":"The SKU number.\n"},"uuid":{"type":"string","description":"The UUID (defaults to randomly generated UUID).\n"},"version":{"type":"string","description":"The version.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["uuid"]}}},"proxmoxve:VM/VirtualMachineStartup:VirtualMachineStartup":{"properties":{"downDelay":{"type":"integer","description":"A non-negative number defining the delay in\nseconds before the next VM is shut down.\n"},"order":{"type":"integer","description":"A non-negative number defining the general startup\norder.\n"},"upDelay":{"type":"integer","description":"A non-negative number defining the delay in\nseconds before the next VM is started.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineTpmState:VirtualMachineTpmState":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create\nthe disk in (defaults to `local-lvm`).\n"},"version":{"type":"string","description":"TPM state device version. Can be `v1.2` or `v2.0`.\n(defaults to `v2.0`).\n","willReplaceOnChanges":true}},"type":"object"},"proxmoxve:VM/VirtualMachineUsb:VirtualMachineUsb":{"properties":{"host":{"type":"string","description":"The Host USB device or port or the value `spice`. Use either this or `mapping`.\n"},"mapping":{"type":"string","description":"The cluster-wide resource mapping name of the device, for example \"usbdevice\". Use either this or `host`.\n"},"usb3":{"type":"boolean","description":"Makes the USB device a USB3 device for the VM\n(defaults to `false`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineVga:VirtualMachineVga":{"properties":{"clipboard":{"type":"string","description":"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.\n"},"memory":{"type":"integer","description":"The VGA memory in megabytes (defaults to `16`).\n"},"type":{"type":"string","description":"The VGA type (defaults to `std`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineWatchdog:VirtualMachineWatchdog":{"properties":{"action":{"type":"string","description":"The action to perform if after activation the guest fails to poll the watchdog in time (defaults to `none`).\n"},"enabled":{"type":"boolean","description":"Whether the watchdog is enabled (defaults to `false`).\n"},"model":{"type":"string","description":"The watchdog type to emulate (defaults to `i6300esb`).\n"}},"type":"object"},"proxmoxve:VM/getVirtualMachinesFilter:getVirtualMachinesFilter":{"properties":{"name":{"type":"string","description":"Name of the VM attribute to filter on. One of [`name`, `template`, `status`, `node_name`]\n"},"regex":{"type":"boolean","description":"Treat values as regex patterns\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of values to pass the filter. VM's attribute should match at least one value in the list.\n"}},"type":"object","required":["name","values"]},"proxmoxve:VM/getVirtualMachinesVm:getVirtualMachinesVm":{"properties":{"name":{"type":"string","description":"The virtual machine name.\n"},"nodeName":{"type":"string","description":"The node name. All cluster nodes will be queried in case this is omitted\n"},"status":{"type":"string","description":"Status of the VM\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to filter the VMs. The VM must have all\nthe tags to be included in the result.\n"},"template":{"type":"boolean","description":"Is VM a template (true) or a regular VM (false)\n"},"vmId":{"type":"integer","description":"The VM identifier.\n"}},"type":"object","required":["name","nodeName","tags","vmId"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:config/ssh:ssh":{"properties":{"agent":{"type":"boolean","description":"Whether to use the SSH agent for authentication. Takes precedence over the `private_key` and `password` fields. Defaults to the value of the `PROXMOX_VE_SSH_AGENT` environment variable, or `false` if not set.\n"},"agentSocket":{"type":"string","description":"The path to the SSH agent socket. Defaults to the value of the `SSH_AUTH_SOCK` environment variable.\n"},"nodes":{"type":"array","items":{"$ref":"#/types/proxmoxve:config/sshNode:sshNode"},"description":"Overrides for SSH connection configuration for a Proxmox VE node.\n"},"password":{"type":"string","description":"The password used for the SSH connection. Defaults to the value of the `password` field of the `provider` block.\n","secret":true},"privateKey":{"type":"string","description":"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.\n","secret":true},"socks5Password":{"type":"string","description":"The password for the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_PASSWORD` environment variable.\n","secret":true},"socks5Server":{"type":"string","description":"The address:port of the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_SERVER` environment variable.\n"},"socks5Username":{"type":"string","description":"The username for the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_USERNAME` environment variable.\n"},"username":{"type":"string","description":"The username used for the SSH connection. Defaults to the value of the `username` field of the `provider` block.\n"}},"type":"object"},"proxmoxve:config/sshNode:sshNode":{"properties":{"address":{"type":"string","description":"The address of the Proxmox VE node.\n"},"name":{"type":"string","description":"The name of the Proxmox VE node.\n"},"port":{"type":"integer","description":"The port of the Proxmox VE node.\n"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:index/HostsEntry:HostsEntry":{"properties":{"address":{"type":"string","description":"The IP address.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"The hostnames.\n"}},"type":"object","required":["address","hostnames"]},"proxmoxve:index/ProviderSsh:ProviderSsh":{"properties":{"agent":{"type":"boolean","description":"Whether to use the SSH agent for authentication. Takes precedence over the `private_key` and `password` fields. Defaults to the value of the `PROXMOX_VE_SSH_AGENT` environment variable, or `false` if not set.\n"},"agentSocket":{"type":"string","description":"The path to the SSH agent socket. Defaults to the value of the `SSH_AUTH_SOCK` environment variable.\n"},"nodes":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/ProviderSshNode:ProviderSshNode"},"description":"Overrides for SSH connection configuration for a Proxmox VE node.\n"},"password":{"type":"string","description":"The password used for the SSH connection. Defaults to the value of the `password` field of the `provider` block.\n","secret":true},"privateKey":{"type":"string","description":"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.\n","secret":true},"socks5Password":{"type":"string","description":"The password for the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_PASSWORD` environment variable.\n","secret":true},"socks5Server":{"type":"string","description":"The address:port of the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_SERVER` environment variable.\n"},"socks5Username":{"type":"string","description":"The username for the SOCKS5 proxy server. Defaults to the value of the `PROXMOX_VE_SSH_SOCKS5_USERNAME` environment variable.\n"},"username":{"type":"string","description":"The username used for the SSH connection. Defaults to the value of the `username` field of the `provider` block.\n"}},"type":"object"},"proxmoxve:index/ProviderSshNode:ProviderSshNode":{"properties":{"address":{"type":"string","description":"The address of the Proxmox VE node.\n"},"name":{"type":"string","description":"The name of the Proxmox VE node.\n"},"port":{"type":"integer","description":"The port of the Proxmox VE node.\n"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredOutputs":[]}}},"proxmoxve:index/Vm2Cdrom:Vm2Cdrom":{"properties":{"fileId":{"type":"string","description":"The file ID of the CD-ROM, or `cdrom|none`. Defaults to `none` to leave the CD-ROM empty. Use `cdrom` to connect to the physical drive.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["fileId"]}}},"proxmoxve:index/Vm2Clone:Vm2Clone":{"properties":{"id":{"type":"integer","description":"The ID of the VM to clone.\n"},"retries":{"type":"integer","description":"The number of retries to perform when cloning the VM (default: 3).\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["id","retries"]}}},"proxmoxve:index/Vm2Cpu:Vm2Cpu":{"properties":{"affinity":{"type":"string","description":"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.\n"},"architecture":{"type":"string","description":"The CPU architecture `\u003caarch64 | x86_64\u003e` (defaults to the host). Setting `affinity` is only allowed for `root@pam` authenticated user.\n"},"cores":{"type":"integer","description":"The number of CPU cores per socket (defaults to `1`).\n"},"flags":{"type":"array","items":{"type":"string"},"description":"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`.\n"},"hotplugged":{"type":"integer","description":"The number of hotplugged vCPUs (defaults to `0`).\n"},"limit":{"type":"integer","description":"Limit of CPU usage (defaults to `0` which means no limit).\n"},"numa":{"type":"boolean","description":"Enable NUMA (defaults to `false`).\n"},"sockets":{"type":"integer","description":"The number of CPU sockets (defaults to `1`).\n"},"type":{"type":"string","description":"Emulated CPU type, it's recommended to use `x86-64-v2-AES` or higher (defaults to `kvm64`). See https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm*virtual*machines_settings for more information.\n"},"units":{"type":"integer","description":"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.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["affinity","architecture","cores","flags","hotplugged","limit","numa","sockets","type","units"]}}},"proxmoxve:index/Vm2Timeouts:Vm2Timeouts":{"properties":{"create":{"type":"string","description":"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).\n"},"delete":{"type":"string","description":"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.\n"},"read":{"type":"string","description":"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.\n"},"update":{"type":"string","description":"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).\n"}},"type":"object"},"proxmoxve:index/Vm2Vga:Vm2Vga":{"properties":{"clipboard":{"type":"string","description":"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.\n"},"memory":{"type":"integer","description":"The VGA memory in megabytes (4-512 MB). Has no effect with serial display.\n"},"type":{"type":"string","description":"The VGA type (defaults to `std`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clipboard","memory","type"]}}},"proxmoxve:index/getVm2Clone:getVm2Clone":{"properties":{"id":{"type":"integer","description":"The ID of the VM to clone.\n"},"retries":{"type":"integer","description":"The number of retries to perform when cloning the VM (default: 3).\n"}},"type":"object","required":["id","retries"],"language":{"nodejs":{"requiredInputs":["id"]}}},"proxmoxve:index/getVm2Cpu:getVm2Cpu":{"properties":{"affinity":{"type":"string","description":"List of host cores used to execute guest processes, for example: '0,5,8-11'\n"},"architecture":{"type":"string","description":"The CPU architecture.\n"},"cores":{"type":"integer","description":"The number of CPU cores per socket.\n"},"flags":{"type":"array","items":{"type":"string"},"description":"Set of additional CPU flags.\n"},"hotplugged":{"type":"integer","description":"The number of hotplugged vCPUs.\n"},"limit":{"type":"integer","description":"Limit of CPU usage.\n"},"numa":{"type":"boolean","description":"Enable NUMA.\n"},"sockets":{"type":"integer","description":"The number of CPU sockets.\n"},"type":{"type":"string","description":"Emulated CPU type.\n"},"units":{"type":"integer","description":"CPU weight for a VM\n"}},"type":"object","required":["affinity","architecture","cores","flags","hotplugged","limit","numa","sockets","type","units"],"language":{"nodejs":{"requiredInputs":[]}}},"proxmoxve:index/getVm2Timeouts:getVm2Timeouts":{"properties":{"read":{"type":"string","description":"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.\n"}},"type":"object"},"proxmoxve:index/getVm2Vga:getVm2Vga":{"properties":{"clipboard":{"type":"string","description":"Enable a specific clipboard.\n"},"memory":{"type":"integer","description":"The VGA memory in megabytes (4-512 MB). Has no effect with serial display.\n"},"type":{"type":"string","description":"The VGA type.\n"}},"type":"object","required":["clipboard","memory","type"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the proxmox package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"apiToken":{"type":"string","description":"The API token for the Proxmox VE API.\n","secret":true},"authTicket":{"type":"string","description":"The pre-authenticated Ticket for the Proxmox VE API.\n","secret":true},"csrfPreventionToken":{"type":"string","description":"The pre-authenticated CSRF Prevention Token for the Proxmox VE API.\n","secret":true},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\n"},"minTls":{"type":"string","description":"The minimum required TLS version for API calls.Supported values: `1.0|1.1|1.2|1.3`. Defaults to `1.3`.\n"},"otp":{"type":"string","description":"The one-time password for the Proxmox VE API.\n","deprecationMessage":"The `otp` attribute is deprecated and will be removed in a future release. Please use the `api_token` attribute instead."},"password":{"type":"string","description":"The password for the Proxmox VE API.\n","secret":true},"randomVmIdEnd":{"type":"integer","description":"The ending number for random VM / Container IDs.\n"},"randomVmIdStart":{"type":"integer","description":"The starting number for random VM / Container IDs.\n"},"randomVmIds":{"type":"boolean","description":"Whether to generate random VM / Container IDs.\n"},"ssh":{"$ref":"#/types/proxmoxve:index/ProviderSsh:ProviderSsh","description":"The SSH configuration for the Proxmox nodes.\n"},"tmpDir":{"type":"string","description":"The alternative temporary directory.\n"},"username":{"type":"string","description":"The username for the Proxmox VE API.\n"}},"inputProperties":{"apiToken":{"type":"string","description":"The API token for the Proxmox VE API.\n","secret":true},"authTicket":{"type":"string","description":"The pre-authenticated Ticket for the Proxmox VE API.\n","secret":true},"csrfPreventionToken":{"type":"string","description":"The pre-authenticated CSRF Prevention Token for the Proxmox VE API.\n","secret":true},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\n"},"minTls":{"type":"string","description":"The minimum required TLS version for API calls.Supported values: `1.0|1.1|1.2|1.3`. Defaults to `1.3`.\n"},"otp":{"type":"string","description":"The one-time password for the Proxmox VE API.\n","deprecationMessage":"The `otp` attribute is deprecated and will be removed in a future release. Please use the `api_token` attribute instead."},"password":{"type":"string","description":"The password for the Proxmox VE API.\n","secret":true},"randomVmIdEnd":{"type":"integer","description":"The ending number for random VM / Container IDs.\n"},"randomVmIdStart":{"type":"integer","description":"The starting number for random VM / Container IDs.\n"},"randomVmIds":{"type":"boolean","description":"Whether to generate random VM / Container IDs.\n"},"ssh":{"$ref":"#/types/proxmoxve:index/ProviderSsh:ProviderSsh","description":"The SSH configuration for the Proxmox nodes.\n"},"tmpDir":{"type":"string","description":"The alternative temporary directory.\n"},"username":{"type":"string","description":"The username for the Proxmox VE API.\n"}}},"resources":{"proxmoxve:Apt/repository:Repository":{"description":"Manages an APT repository of a Proxmox VE node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.apt.Repository(\"example\", {\n enabled: true,\n filePath: \"/etc/apt/sources.list\",\n index: 0,\n node: \"pve\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.apt.Repository(\"example\",\n enabled=True,\n file_path=\"/etc/apt/sources.list\",\n index=0,\n node=\"pve\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.Apt.Repository(\"example\", new()\n {\n Enabled = true,\n FilePath = \"/etc/apt/sources.list\",\n Index = 0,\n Node = \"pve\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Apt.NewRepository(ctx, \"example\", \u0026Apt.RepositoryArgs{\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tFilePath: pulumi.String(\"/etc/apt/sources.list\"),\n\t\t\tIndex: pulumi.Int(0),\n\t\t\tNode: pulumi.String(\"pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt.Repository;\nimport com.pulumi.proxmoxve.Apt.RepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Repository(\"example\", RepositoryArgs.builder()\n .enabled(true)\n .filePath(\"/etc/apt/sources.list\")\n .index(0)\n .node(\"pve\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Apt:Repository\n properties:\n enabled: true\n filePath: /etc/apt/sources.list\n index: 0\n node: pve\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nAn APT repository can be imported using a comma-separated list consisting of the name of the Proxmox VE node,\n\nthe absolute source list file path, and the index in the exact same order, e.g.:\n\n```sh\n$ pulumi import proxmoxve:Apt/repository:Repository example pve,/etc/apt/sources.list,0\n```\n\n","properties":{"comment":{"type":"string","description":"The associated comment.\n"},"components":{"type":"array","items":{"type":"string"},"description":"The list of components.\n"},"enabled":{"type":"boolean","description":"Indicates the activation status.\n"},"filePath":{"type":"string","description":"The absolute path of the source list file that contains this repository.\n"},"fileType":{"type":"string","description":"The format of the defining source list file.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"},"packageTypes":{"type":"array","items":{"type":"string"},"description":"The list of package types.\n"},"suites":{"type":"array","items":{"type":"string"},"description":"The list of package distributions.\n"},"uris":{"type":"array","items":{"type":"string"},"description":"The list of repository URIs.\n"}},"required":["comment","components","enabled","filePath","fileType","index","node","packageTypes","suites","uris"],"inputProperties":{"enabled":{"type":"boolean","description":"Indicates the activation status.\n"},"filePath":{"type":"string","description":"The absolute path of the source list file that contains this repository.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"}},"requiredInputs":["filePath","index","node"],"stateInputs":{"description":"Input properties used for looking up and filtering Repository resources.\n","properties":{"comment":{"type":"string","description":"The associated comment.\n"},"components":{"type":"array","items":{"type":"string"},"description":"The list of components.\n"},"enabled":{"type":"boolean","description":"Indicates the activation status.\n"},"filePath":{"type":"string","description":"The absolute path of the source list file that contains this repository.\n"},"fileType":{"type":"string","description":"The format of the defining source list file.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"},"packageTypes":{"type":"array","items":{"type":"string"},"description":"The list of package types.\n"},"suites":{"type":"array","items":{"type":"string"},"description":"The list of package distributions.\n"},"uris":{"type":"array","items":{"type":"string"},"description":"The list of repository URIs.\n"}},"type":"object"}},"proxmoxve:Apt/standard/repository:Repository":{"description":"Manages an APT standard repository of a Proxmox VE node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst exampleRepository = new proxmoxve.apt.standard.Repository(\"exampleRepository\", {\n handle: \"no-subscription\",\n node: \"pve\",\n});\nconst exampleApt_repositoryRepository = new proxmoxve.apt.Repository(\"exampleApt/repositoryRepository\", {\n enabled: true,\n filePath: exampleRepository.filePath,\n index: exampleRepository.index,\n node: exampleRepository.node,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample_repository = proxmoxve.apt.standard.Repository(\"exampleRepository\",\n handle=\"no-subscription\",\n node=\"pve\")\nexample_apt_repository_repository = proxmoxve.apt.Repository(\"exampleApt/repositoryRepository\",\n enabled=True,\n file_path=example_repository.file_path,\n index=example_repository.index,\n node=example_repository.node)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleRepository = new ProxmoxVE.Apt.Standard.Repository(\"exampleRepository\", new()\n {\n Handle = \"no-subscription\",\n Node = \"pve\",\n });\n\n var exampleApt_repositoryRepository = new ProxmoxVE.Apt.Repository(\"exampleApt/repositoryRepository\", new()\n {\n Enabled = true,\n FilePath = exampleRepository.FilePath,\n Index = exampleRepository.Index,\n Node = exampleRepository.Node,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleRepository, err := Apt.NewRepository(ctx, \"exampleRepository\", \u0026Apt.RepositoryArgs{\n\t\t\tHandle: pulumi.String(\"no-subscription\"),\n\t\t\tNode: pulumi.String(\"pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Apt.NewRepository(ctx, \"exampleApt/repositoryRepository\", \u0026Apt.RepositoryArgs{\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tFilePath: exampleRepository.FilePath,\n\t\t\tIndex: exampleRepository.Index,\n\t\t\tNode: exampleRepository.Node,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt.Repository;\nimport com.pulumi.proxmoxve.Apt.RepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleRepository = new Repository(\"exampleRepository\", RepositoryArgs.builder()\n .handle(\"no-subscription\")\n .node(\"pve\")\n .build());\n\n var exampleApt_repositoryRepository = new Repository(\"exampleApt/repositoryRepository\", RepositoryArgs.builder()\n .enabled(true)\n .filePath(exampleRepository.filePath())\n .index(exampleRepository.index())\n .node(exampleRepository.node())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleRepository:\n type: proxmoxve:Apt/standard:Repository\n properties:\n handle: no-subscription\n node: pve\n exampleApt/repositoryRepository:\n type: proxmoxve:Apt:Repository\n properties:\n enabled: true\n filePath: ${exampleRepository.filePath}\n index: ${exampleRepository.index}\n node: ${exampleRepository.node}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nAn APT standard repository can be imported using a comma-separated list consisting of the name of the Proxmox VE node,\n\nand the standard repository handle in the exact same order, e.g.:\n\n```sh\n$ pulumi import proxmoxve:Apt/standard/repository:Repository example pve,no-subscription\n```\n\n","properties":{"description":{"type":"string","description":"The description of the APT standard repository.\n"},"filePath":{"type":"string","description":"The absolute path of the source list file that contains this standard repository.\n"},"handle":{"type":"string","description":"The handle of the APT standard repository. Must be `ceph-quincy-enterprise` | `ceph-quincy-no-subscription` | `ceph-quincy-test` | `ceph-reef-enterprise` | `ceph-reef-no-subscription` | `ceph-reef-test` | `enterprise` | `no-subscription` | `test`.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"name":{"type":"string","description":"The name of the APT standard repository.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"},"status":{"type":"integer","description":"Indicates the activation status.\n"}},"required":["description","filePath","handle","index","name","node","status"],"inputProperties":{"handle":{"type":"string","description":"The handle of the APT standard repository. Must be `ceph-quincy-enterprise` | `ceph-quincy-no-subscription` | `ceph-quincy-test` | `ceph-reef-enterprise` | `ceph-reef-no-subscription` | `ceph-reef-test` | `enterprise` | `no-subscription` | `test`.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"}},"requiredInputs":["handle","node"],"stateInputs":{"description":"Input properties used for looking up and filtering Repository resources.\n","properties":{"description":{"type":"string","description":"The description of the APT standard repository.\n"},"filePath":{"type":"string","description":"The absolute path of the source list file that contains this standard repository.\n"},"handle":{"type":"string","description":"The handle of the APT standard repository. Must be `ceph-quincy-enterprise` | `ceph-quincy-no-subscription` | `ceph-quincy-test` | `ceph-reef-enterprise` | `ceph-reef-no-subscription` | `ceph-reef-test` | `enterprise` | `no-subscription` | `test`.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"name":{"type":"string","description":"The name of the APT standard repository.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"},"status":{"type":"integer","description":"Indicates the activation status.\n"}},"type":"object"}},"proxmoxve:CT/container:Container":{"description":"Manages a container.\n\n## Import\n\nInstances can be imported using the `node_name` and the `vm_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:CT/container:Container ubuntu_container first-node/1234\n```\n\n","properties":{"clone":{"$ref":"#/types/proxmoxve:CT/ContainerClone:ContainerClone","description":"The cloning configuration.\n"},"console":{"$ref":"#/types/proxmoxve:CT/ContainerConsole:ContainerConsole","description":"The console configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:CT/ContainerCpu:ContainerCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disk":{"$ref":"#/types/proxmoxve:CT/ContainerDisk:ContainerDisk","description":"The disk configuration.\n"},"features":{"$ref":"#/types/proxmoxve:CT/ContainerFeatures:ContainerFeatures","description":"The container feature flags. Changing flags (except nesting) is only allowed for `root@pam` authenticated user.\n"},"hookScriptFileId":{"type":"string","description":"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).\n"},"initialization":{"$ref":"#/types/proxmoxve:CT/ContainerInitialization:ContainerInitialization","description":"The initialization configuration.\n"},"memory":{"$ref":"#/types/proxmoxve:CT/ContainerMemory:ContainerMemory","description":"The memory configuration.\n"},"mountPoints":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerMountPoint:ContainerMountPoint"},"description":"A mount point\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerNetworkInterface:ContainerNetworkInterface"},"description":"A network interface (multiple blocks\nsupported).\n"},"nodeName":{"type":"string","description":"The name of the node to assign the container to.\n"},"operatingSystem":{"$ref":"#/types/proxmoxve:CT/ContainerOperatingSystem:ContainerOperatingSystem","description":"The Operating System configuration.\n"},"poolId":{"type":"string","description":"The identifier for a pool to assign the container to.\n"},"protection":{"type":"boolean","description":"Whether to set the protection flag of the container (defaults to `false`). This will prevent the container itself and its disk for remove/update operations.\n"},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host\nsystem boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:CT/ContainerStartup:ContainerStartup","description":"Defines startup and shutdown behavior of the container.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags the container tags. This is only meta\ninformation (defaults to `[]`). Note: Proxmox always sorts the container tags.\nIf the list in template is not sorted, then Proxmox will always report a\ndifference on the resource. You may use the `ignore_changes` lifecycle\nmeta-argument to ignore changes to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n"},"timeoutClone":{"type":"integer","description":"Timeout for cloning a container in seconds (defaults to 1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a container in seconds (defaults to 1800).\n"},"timeoutDelete":{"type":"integer","description":"Timeout for deleting a container in seconds (defaults to 60).\n"},"timeoutStart":{"type":"integer","description":"Start container timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (`timeout_create` / `timeout_clone`) is used instead."},"timeoutUpdate":{"type":"integer","description":"Timeout for updating a container in seconds (defaults to 1800).\n"},"unprivileged":{"type":"boolean","description":"Whether the container runs as unprivileged on\nthe host (defaults to `false`).\n"},"vmId":{"type":"integer","description":"The container identifier\n"}},"required":["nodeName","vmId"],"inputProperties":{"clone":{"$ref":"#/types/proxmoxve:CT/ContainerClone:ContainerClone","description":"The cloning configuration.\n"},"console":{"$ref":"#/types/proxmoxve:CT/ContainerConsole:ContainerConsole","description":"The console configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:CT/ContainerCpu:ContainerCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disk":{"$ref":"#/types/proxmoxve:CT/ContainerDisk:ContainerDisk","description":"The disk configuration.\n","willReplaceOnChanges":true},"features":{"$ref":"#/types/proxmoxve:CT/ContainerFeatures:ContainerFeatures","description":"The container feature flags. Changing flags (except nesting) is only allowed for `root@pam` authenticated user.\n"},"hookScriptFileId":{"type":"string","description":"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).\n"},"initialization":{"$ref":"#/types/proxmoxve:CT/ContainerInitialization:ContainerInitialization","description":"The initialization configuration.\n"},"memory":{"$ref":"#/types/proxmoxve:CT/ContainerMemory:ContainerMemory","description":"The memory configuration.\n"},"mountPoints":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerMountPoint:ContainerMountPoint"},"description":"A mount point\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerNetworkInterface:ContainerNetworkInterface"},"description":"A network interface (multiple blocks\nsupported).\n"},"nodeName":{"type":"string","description":"The name of the node to assign the container to.\n","willReplaceOnChanges":true},"operatingSystem":{"$ref":"#/types/proxmoxve:CT/ContainerOperatingSystem:ContainerOperatingSystem","description":"The Operating System configuration.\n","willReplaceOnChanges":true},"poolId":{"type":"string","description":"The identifier for a pool to assign the container to.\n","willReplaceOnChanges":true},"protection":{"type":"boolean","description":"Whether to set the protection flag of the container (defaults to `false`). This will prevent the container itself and its disk for remove/update operations.\n"},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host\nsystem boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:CT/ContainerStartup:ContainerStartup","description":"Defines startup and shutdown behavior of the container.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags the container tags. This is only meta\ninformation (defaults to `[]`). Note: Proxmox always sorts the container tags.\nIf the list in template is not sorted, then Proxmox will always report a\ndifference on the resource. You may use the `ignore_changes` lifecycle\nmeta-argument to ignore changes to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n","willReplaceOnChanges":true},"timeoutClone":{"type":"integer","description":"Timeout for cloning a container in seconds (defaults to 1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a container in seconds (defaults to 1800).\n"},"timeoutDelete":{"type":"integer","description":"Timeout for deleting a container in seconds (defaults to 60).\n"},"timeoutStart":{"type":"integer","description":"Start container timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (`timeout_create` / `timeout_clone`) is used instead."},"timeoutUpdate":{"type":"integer","description":"Timeout for updating a container in seconds (defaults to 1800).\n"},"unprivileged":{"type":"boolean","description":"Whether the container runs as unprivileged on\nthe host (defaults to `false`).\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The container identifier\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering Container resources.\n","properties":{"clone":{"$ref":"#/types/proxmoxve:CT/ContainerClone:ContainerClone","description":"The cloning configuration.\n"},"console":{"$ref":"#/types/proxmoxve:CT/ContainerConsole:ContainerConsole","description":"The console configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:CT/ContainerCpu:ContainerCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disk":{"$ref":"#/types/proxmoxve:CT/ContainerDisk:ContainerDisk","description":"The disk configuration.\n","willReplaceOnChanges":true},"features":{"$ref":"#/types/proxmoxve:CT/ContainerFeatures:ContainerFeatures","description":"The container feature flags. Changing flags (except nesting) is only allowed for `root@pam` authenticated user.\n"},"hookScriptFileId":{"type":"string","description":"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).\n"},"initialization":{"$ref":"#/types/proxmoxve:CT/ContainerInitialization:ContainerInitialization","description":"The initialization configuration.\n"},"memory":{"$ref":"#/types/proxmoxve:CT/ContainerMemory:ContainerMemory","description":"The memory configuration.\n"},"mountPoints":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerMountPoint:ContainerMountPoint"},"description":"A mount point\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/proxmoxve:CT/ContainerNetworkInterface:ContainerNetworkInterface"},"description":"A network interface (multiple blocks\nsupported).\n"},"nodeName":{"type":"string","description":"The name of the node to assign the container to.\n","willReplaceOnChanges":true},"operatingSystem":{"$ref":"#/types/proxmoxve:CT/ContainerOperatingSystem:ContainerOperatingSystem","description":"The Operating System configuration.\n","willReplaceOnChanges":true},"poolId":{"type":"string","description":"The identifier for a pool to assign the container to.\n","willReplaceOnChanges":true},"protection":{"type":"boolean","description":"Whether to set the protection flag of the container (defaults to `false`). This will prevent the container itself and its disk for remove/update operations.\n"},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host\nsystem boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:CT/ContainerStartup:ContainerStartup","description":"Defines startup and shutdown behavior of the container.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags the container tags. This is only meta\ninformation (defaults to `[]`). Note: Proxmox always sorts the container tags.\nIf the list in template is not sorted, then Proxmox will always report a\ndifference on the resource. You may use the `ignore_changes` lifecycle\nmeta-argument to ignore changes to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n","willReplaceOnChanges":true},"timeoutClone":{"type":"integer","description":"Timeout for cloning a container in seconds (defaults to 1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a container in seconds (defaults to 1800).\n"},"timeoutDelete":{"type":"integer","description":"Timeout for deleting a container in seconds (defaults to 60).\n"},"timeoutStart":{"type":"integer","description":"Start container timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (`timeout_create` / `timeout_clone`) is used instead."},"timeoutUpdate":{"type":"integer","description":"Timeout for updating a container in seconds (defaults to 1800).\n"},"unprivileged":{"type":"boolean","description":"Whether the container runs as unprivileged on\nthe host (defaults to `false`).\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The container identifier\n"}},"type":"object"}},"proxmoxve:Cluster/options:Options":{"description":"Manages Proxmox VE Cluster Datacenter options.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Cluster.Options;\nimport com.pulumi.proxmoxve.Cluster.OptionsArgs;\nimport com.pulumi.proxmoxve.Cluster.inputs.OptionsNextIdArgs;\nimport com.pulumi.proxmoxve.Cluster.inputs.OptionsNotifyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var options = new Options(\"options\", OptionsArgs.builder()\n .bandwidthLimitDefault(666666)\n .bandwidthLimitMigration(555555)\n .emailFrom(\"ged@gont.earthsea\")\n .keyboard(\"pl\")\n .language(\"en\")\n .maxWorkers(5)\n .migrationCidr(\"10.0.0.0/8\")\n .migrationType(\"secure\")\n .nextId(OptionsNextIdArgs.builder()\n .lower(100)\n .upper(999999999)\n .build())\n .notify(OptionsNotifyArgs.builder()\n .ha_fencing_mode(\"never\")\n .ha_fencing_target(\"default-matcher\")\n .package_replication(\"always\")\n .package_replication_target(\"default-matcher\")\n .package_updates(\"always\")\n .package_updates_target(\"default-matcher\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n options:\n type: proxmoxve:Cluster:Options\n properties:\n bandwidthLimitDefault: 666666\n bandwidthLimitMigration: 555555\n emailFrom: ged@gont.earthsea\n keyboard: pl\n language: en\n maxWorkers: 5\n migrationCidr: 10.0.0.0/8\n migrationType: secure\n nextId:\n lower: 100\n upper: 9.99999999e+08\n notify:\n ha_fencing_mode: never\n ha_fencing_target: default-matcher\n package_replication: always\n package_replication_target: default-matcher\n package_updates: always\n package_updates_target: default-matcher\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nCluster options are global and can be imported using e.g.:\n\n```sh\n$ pulumi import proxmoxve:Cluster/options:Options options cluster\n```\n\n","properties":{"bandwidthLimitClone":{"type":"integer","description":"Clone I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitDefault":{"type":"integer","description":"Default I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMigration":{"type":"integer","description":"Migration I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMove":{"type":"integer","description":"Move I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitRestore":{"type":"integer","description":"Restore I/O bandwidth limit in KiB/s.\n"},"console":{"type":"string","description":"Select the default Console viewer. Must be `applet` | `vv`| `html5` | `xtermjs`. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer compatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.\n"},"crsHa":{"type":"string","description":"Cluster resource scheduling setting for HA. Must be `static` | `basic` (default is `basic`).\n"},"crsHaRebalanceOnStart":{"type":"boolean","description":"Cluster resource scheduling setting for HA rebalance on start.\n"},"description":{"type":"string","description":"Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.\n"},"emailFrom":{"type":"string","description":"email address to send notification from (default is root@$hostname).\n"},"haShutdownPolicy":{"type":"string","description":"Cluster wide HA shutdown policy (). Must be `freeze` | `failover` | `migrate` | `conditional` (default is `conditional`).\n"},"httpProxy":{"type":"string","description":"Specify external http proxy which is used for downloads (example: `http://username:password@host:port/`).\n"},"keyboard":{"type":"string","description":"Default keyboard layout for vnc server. Must be `de` | `de-ch` | `da` | `en-gb` | `en-us` | `es` | `fi` | `fr` | `fr-be` | `fr-ca` | `fr-ch` | `hu` | `is` | `it` | `ja` | `lt` | `mk` | `nl` | `no` | `pl` | `pt` | `pt-br` | `sv` | `sl` | `tr`.\n"},"language":{"type":"string","description":"Default GUI language. Must be `ca` | `da` | `de` | `en` | `es` | `eu` | `fa` | `fr` | `he` | `it` | `ja` | `nb` | `nn` | `pl` | `pt_BR` | `ru` | `sl` | `sv` | `tr` | `zh_CN` | `zh_TW`.\n"},"macPrefix":{"type":"string","description":"Prefix for autogenerated MAC addresses.\n"},"maxWorkers":{"type":"integer","description":"Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.\n"},"migrationCidr":{"type":"string","description":"Cluster wide migration network CIDR.\n"},"migrationType":{"type":"string","description":"Cluster wide migration type. Must be `secure` | `insecure` (default is `secure`).\n"},"nextId":{"$ref":"#/types/proxmoxve:Cluster/OptionsNextId:OptionsNextId","description":"The ranges for the next free VM ID auto-selection pool.\n"},"notify":{"$ref":"#/types/proxmoxve:Cluster/OptionsNotify:OptionsNotify","description":"Cluster-wide notification settings.\n"}},"required":["crsHa","macPrefix"],"inputProperties":{"bandwidthLimitClone":{"type":"integer","description":"Clone I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitDefault":{"type":"integer","description":"Default I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMigration":{"type":"integer","description":"Migration I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMove":{"type":"integer","description":"Move I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitRestore":{"type":"integer","description":"Restore I/O bandwidth limit in KiB/s.\n"},"console":{"type":"string","description":"Select the default Console viewer. Must be `applet` | `vv`| `html5` | `xtermjs`. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer compatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.\n"},"crsHa":{"type":"string","description":"Cluster resource scheduling setting for HA. Must be `static` | `basic` (default is `basic`).\n"},"crsHaRebalanceOnStart":{"type":"boolean","description":"Cluster resource scheduling setting for HA rebalance on start.\n"},"description":{"type":"string","description":"Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.\n"},"emailFrom":{"type":"string","description":"email address to send notification from (default is root@$hostname).\n"},"haShutdownPolicy":{"type":"string","description":"Cluster wide HA shutdown policy (). Must be `freeze` | `failover` | `migrate` | `conditional` (default is `conditional`).\n"},"httpProxy":{"type":"string","description":"Specify external http proxy which is used for downloads (example: `http://username:password@host:port/`).\n"},"keyboard":{"type":"string","description":"Default keyboard layout for vnc server. Must be `de` | `de-ch` | `da` | `en-gb` | `en-us` | `es` | `fi` | `fr` | `fr-be` | `fr-ca` | `fr-ch` | `hu` | `is` | `it` | `ja` | `lt` | `mk` | `nl` | `no` | `pl` | `pt` | `pt-br` | `sv` | `sl` | `tr`.\n"},"language":{"type":"string","description":"Default GUI language. Must be `ca` | `da` | `de` | `en` | `es` | `eu` | `fa` | `fr` | `he` | `it` | `ja` | `nb` | `nn` | `pl` | `pt_BR` | `ru` | `sl` | `sv` | `tr` | `zh_CN` | `zh_TW`.\n"},"macPrefix":{"type":"string","description":"Prefix for autogenerated MAC addresses.\n"},"maxWorkers":{"type":"integer","description":"Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.\n"},"migrationCidr":{"type":"string","description":"Cluster wide migration network CIDR.\n"},"migrationType":{"type":"string","description":"Cluster wide migration type. Must be `secure` | `insecure` (default is `secure`).\n"},"nextId":{"$ref":"#/types/proxmoxve:Cluster/OptionsNextId:OptionsNextId","description":"The ranges for the next free VM ID auto-selection pool.\n"},"notify":{"$ref":"#/types/proxmoxve:Cluster/OptionsNotify:OptionsNotify","description":"Cluster-wide notification settings.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Options resources.\n","properties":{"bandwidthLimitClone":{"type":"integer","description":"Clone I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitDefault":{"type":"integer","description":"Default I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMigration":{"type":"integer","description":"Migration I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitMove":{"type":"integer","description":"Move I/O bandwidth limit in KiB/s.\n"},"bandwidthLimitRestore":{"type":"integer","description":"Restore I/O bandwidth limit in KiB/s.\n"},"console":{"type":"string","description":"Select the default Console viewer. Must be `applet` | `vv`| `html5` | `xtermjs`. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer compatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.\n"},"crsHa":{"type":"string","description":"Cluster resource scheduling setting for HA. Must be `static` | `basic` (default is `basic`).\n"},"crsHaRebalanceOnStart":{"type":"boolean","description":"Cluster resource scheduling setting for HA rebalance on start.\n"},"description":{"type":"string","description":"Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.\n"},"emailFrom":{"type":"string","description":"email address to send notification from (default is root@$hostname).\n"},"haShutdownPolicy":{"type":"string","description":"Cluster wide HA shutdown policy (). Must be `freeze` | `failover` | `migrate` | `conditional` (default is `conditional`).\n"},"httpProxy":{"type":"string","description":"Specify external http proxy which is used for downloads (example: `http://username:password@host:port/`).\n"},"keyboard":{"type":"string","description":"Default keyboard layout for vnc server. Must be `de` | `de-ch` | `da` | `en-gb` | `en-us` | `es` | `fi` | `fr` | `fr-be` | `fr-ca` | `fr-ch` | `hu` | `is` | `it` | `ja` | `lt` | `mk` | `nl` | `no` | `pl` | `pt` | `pt-br` | `sv` | `sl` | `tr`.\n"},"language":{"type":"string","description":"Default GUI language. Must be `ca` | `da` | `de` | `en` | `es` | `eu` | `fa` | `fr` | `he` | `it` | `ja` | `nb` | `nn` | `pl` | `pt_BR` | `ru` | `sl` | `sv` | `tr` | `zh_CN` | `zh_TW`.\n"},"macPrefix":{"type":"string","description":"Prefix for autogenerated MAC addresses.\n"},"maxWorkers":{"type":"integer","description":"Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.\n"},"migrationCidr":{"type":"string","description":"Cluster wide migration network CIDR.\n"},"migrationType":{"type":"string","description":"Cluster wide migration type. Must be `secure` | `insecure` (default is `secure`).\n"},"nextId":{"$ref":"#/types/proxmoxve:Cluster/OptionsNextId:OptionsNextId","description":"The ranges for the next free VM ID auto-selection pool.\n"},"notify":{"$ref":"#/types/proxmoxve:Cluster/OptionsNotify:OptionsNotify","description":"Cluster-wide notification settings.\n"}},"type":"object"}},"proxmoxve:Download/file:File":{"description":"Manages files upload using PVE download-url API. It can be fully compatible and faster replacement for image files created using `proxmoxve.Storage.File`. Supports images for VMs (ISO images) and LXC (CT Templates).\n\n\u003e Besides the `Datastore.AllocateTemplate` privilege, this resource requires both the `Sys.Audit` and `Sys.Modify` privileges.\u003cbr\u003e\u003cbr\u003e\nFor more details, see the [`download-url`](https://pve.proxmox.com/pve-docs/api-viewer/index.html#/nodes/{node}/storage/{storage}/download-url) API documentation under the \"Required permissions\" section.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst release20231228Debian12BookwormQcow2Img = new proxmoxve.download.File(\"release20231228Debian12BookwormQcow2Img\", {\n checksum: \"d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\",\n checksumAlgorithm: \"sha512\",\n contentType: \"iso\",\n datastoreId: \"local\",\n fileName: \"debian-12-generic-amd64-20231228-1609.img\",\n nodeName: \"pve\",\n url: \"https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\",\n});\nconst latestDebian12BookwormQcow2Img = new proxmoxve.download.File(\"latestDebian12BookwormQcow2Img\", {\n contentType: \"iso\",\n datastoreId: \"local\",\n fileName: \"debian-12-generic-amd64.qcow2.img\",\n nodeName: \"pve\",\n url: \"https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\",\n});\nconst latestUbuntu22JammyQcow2Img = new proxmoxve.download.File(\"latestUbuntu22JammyQcow2Img\", {\n contentType: \"iso\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n url: \"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\",\n});\nconst latestStaticUbuntu24NobleQcow2Img = new proxmoxve.download.File(\"latestStaticUbuntu24NobleQcow2Img\", {\n contentType: \"iso\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n overwrite: false,\n url: \"https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\",\n});\nconst release20231211Ubuntu22JammyLxcImg = new proxmoxve.download.File(\"release20231211Ubuntu22JammyLxcImg\", {\n checksum: \"c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\",\n checksumAlgorithm: \"sha256\",\n contentType: \"vztmpl\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n uploadTimeout: 4444,\n url: \"https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\",\n});\nconst latestUbuntu22JammyLxcImg = new proxmoxve.download.File(\"latestUbuntu22JammyLxcImg\", {\n contentType: \"vztmpl\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n url: \"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nrelease20231228_debian12_bookworm_qcow2_img = proxmoxve.download.File(\"release20231228Debian12BookwormQcow2Img\",\n checksum=\"d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\",\n checksum_algorithm=\"sha512\",\n content_type=\"iso\",\n datastore_id=\"local\",\n file_name=\"debian-12-generic-amd64-20231228-1609.img\",\n node_name=\"pve\",\n url=\"https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\")\nlatest_debian12_bookworm_qcow2_img = proxmoxve.download.File(\"latestDebian12BookwormQcow2Img\",\n content_type=\"iso\",\n datastore_id=\"local\",\n file_name=\"debian-12-generic-amd64.qcow2.img\",\n node_name=\"pve\",\n url=\"https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\")\nlatest_ubuntu22_jammy_qcow2_img = proxmoxve.download.File(\"latestUbuntu22JammyQcow2Img\",\n content_type=\"iso\",\n datastore_id=\"local\",\n node_name=\"pve\",\n url=\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\")\nlatest_static_ubuntu24_noble_qcow2_img = proxmoxve.download.File(\"latestStaticUbuntu24NobleQcow2Img\",\n content_type=\"iso\",\n datastore_id=\"local\",\n node_name=\"pve\",\n overwrite=False,\n url=\"https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\")\nrelease20231211_ubuntu22_jammy_lxc_img = proxmoxve.download.File(\"release20231211Ubuntu22JammyLxcImg\",\n checksum=\"c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\",\n checksum_algorithm=\"sha256\",\n content_type=\"vztmpl\",\n datastore_id=\"local\",\n node_name=\"pve\",\n upload_timeout=4444,\n url=\"https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\")\nlatest_ubuntu22_jammy_lxc_img = proxmoxve.download.File(\"latestUbuntu22JammyLxcImg\",\n content_type=\"vztmpl\",\n datastore_id=\"local\",\n node_name=\"pve\",\n url=\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var release20231228Debian12BookwormQcow2Img = new ProxmoxVE.Download.File(\"release20231228Debian12BookwormQcow2Img\", new()\n {\n Checksum = \"d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\",\n ChecksumAlgorithm = \"sha512\",\n ContentType = \"iso\",\n DatastoreId = \"local\",\n FileName = \"debian-12-generic-amd64-20231228-1609.img\",\n NodeName = \"pve\",\n Url = \"https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\",\n });\n\n var latestDebian12BookwormQcow2Img = new ProxmoxVE.Download.File(\"latestDebian12BookwormQcow2Img\", new()\n {\n ContentType = \"iso\",\n DatastoreId = \"local\",\n FileName = \"debian-12-generic-amd64.qcow2.img\",\n NodeName = \"pve\",\n Url = \"https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\",\n });\n\n var latestUbuntu22JammyQcow2Img = new ProxmoxVE.Download.File(\"latestUbuntu22JammyQcow2Img\", new()\n {\n ContentType = \"iso\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n Url = \"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\",\n });\n\n var latestStaticUbuntu24NobleQcow2Img = new ProxmoxVE.Download.File(\"latestStaticUbuntu24NobleQcow2Img\", new()\n {\n ContentType = \"iso\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n Overwrite = false,\n Url = \"https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\",\n });\n\n var release20231211Ubuntu22JammyLxcImg = new ProxmoxVE.Download.File(\"release20231211Ubuntu22JammyLxcImg\", new()\n {\n Checksum = \"c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\",\n ChecksumAlgorithm = \"sha256\",\n ContentType = \"vztmpl\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n UploadTimeout = 4444,\n Url = \"https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\",\n });\n\n var latestUbuntu22JammyLxcImg = new ProxmoxVE.Download.File(\"latestUbuntu22JammyLxcImg\", new()\n {\n ContentType = \"vztmpl\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n Url = \"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Download\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Download.NewFile(ctx, \"release20231228Debian12BookwormQcow2Img\", \u0026Download.FileArgs{\n\t\t\tChecksum: pulumi.String(\"d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\"),\n\t\t\tChecksumAlgorithm: pulumi.String(\"sha512\"),\n\t\t\tContentType: pulumi.String(\"iso\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tFileName: pulumi.String(\"debian-12-generic-amd64-20231228-1609.img\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tUrl: pulumi.String(\"https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Download.NewFile(ctx, \"latestDebian12BookwormQcow2Img\", \u0026Download.FileArgs{\n\t\t\tContentType: pulumi.String(\"iso\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tFileName: pulumi.String(\"debian-12-generic-amd64.qcow2.img\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tUrl: pulumi.String(\"https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Download.NewFile(ctx, \"latestUbuntu22JammyQcow2Img\", \u0026Download.FileArgs{\n\t\t\tContentType: pulumi.String(\"iso\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tUrl: pulumi.String(\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Download.NewFile(ctx, \"latestStaticUbuntu24NobleQcow2Img\", \u0026Download.FileArgs{\n\t\t\tContentType: pulumi.String(\"iso\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tOverwrite: pulumi.Bool(false),\n\t\t\tUrl: pulumi.String(\"https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Download.NewFile(ctx, \"release20231211Ubuntu22JammyLxcImg\", \u0026Download.FileArgs{\n\t\t\tChecksum: pulumi.String(\"c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\"),\n\t\t\tChecksumAlgorithm: pulumi.String(\"sha256\"),\n\t\t\tContentType: pulumi.String(\"vztmpl\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tUploadTimeout: pulumi.Int(4444),\n\t\t\tUrl: pulumi.String(\"https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Download.NewFile(ctx, \"latestUbuntu22JammyLxcImg\", \u0026Download.FileArgs{\n\t\t\tContentType: pulumi.String(\"vztmpl\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tUrl: pulumi.String(\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Download.File;\nimport com.pulumi.proxmoxve.Download.FileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var release20231228Debian12BookwormQcow2Img = new File(\"release20231228Debian12BookwormQcow2Img\", FileArgs.builder()\n .checksum(\"d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\")\n .checksumAlgorithm(\"sha512\")\n .contentType(\"iso\")\n .datastoreId(\"local\")\n .fileName(\"debian-12-generic-amd64-20231228-1609.img\")\n .nodeName(\"pve\")\n .url(\"https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\")\n .build());\n\n var latestDebian12BookwormQcow2Img = new File(\"latestDebian12BookwormQcow2Img\", FileArgs.builder()\n .contentType(\"iso\")\n .datastoreId(\"local\")\n .fileName(\"debian-12-generic-amd64.qcow2.img\")\n .nodeName(\"pve\")\n .url(\"https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\")\n .build());\n\n var latestUbuntu22JammyQcow2Img = new File(\"latestUbuntu22JammyQcow2Img\", FileArgs.builder()\n .contentType(\"iso\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .url(\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\")\n .build());\n\n var latestStaticUbuntu24NobleQcow2Img = new File(\"latestStaticUbuntu24NobleQcow2Img\", FileArgs.builder()\n .contentType(\"iso\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .overwrite(false)\n .url(\"https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\")\n .build());\n\n var release20231211Ubuntu22JammyLxcImg = new File(\"release20231211Ubuntu22JammyLxcImg\", FileArgs.builder()\n .checksum(\"c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\")\n .checksumAlgorithm(\"sha256\")\n .contentType(\"vztmpl\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .uploadTimeout(4444)\n .url(\"https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\")\n .build());\n\n var latestUbuntu22JammyLxcImg = new File(\"latestUbuntu22JammyLxcImg\", FileArgs.builder()\n .contentType(\"vztmpl\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .url(\"https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n release20231228Debian12BookwormQcow2Img:\n type: proxmoxve:Download:File\n properties:\n checksum: d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b\n checksumAlgorithm: sha512\n contentType: iso\n datastoreId: local\n fileName: debian-12-generic-amd64-20231228-1609.img\n nodeName: pve\n url: https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2\n latestDebian12BookwormQcow2Img:\n type: proxmoxve:Download:File\n properties:\n contentType: iso\n datastoreId: local\n fileName: debian-12-generic-amd64.qcow2.img\n nodeName: pve\n url: https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2\n latestUbuntu22JammyQcow2Img:\n type: proxmoxve:Download:File\n properties:\n contentType: iso\n datastoreId: local\n nodeName: pve\n url: https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\n latestStaticUbuntu24NobleQcow2Img:\n type: proxmoxve:Download:File\n properties:\n contentType: iso\n datastoreId: local\n nodeName: pve\n overwrite: false\n url: https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img\n release20231211Ubuntu22JammyLxcImg:\n type: proxmoxve:Download:File\n properties:\n checksum: c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e\n checksumAlgorithm: sha256\n contentType: vztmpl\n datastoreId: local\n nodeName: pve\n uploadTimeout: 4444\n url: https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz\n latestUbuntu22JammyLxcImg:\n type: proxmoxve:Download:File\n properties:\n contentType: vztmpl\n datastoreId: local\n nodeName: pve\n url: https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"checksum":{"type":"string","description":"The expected checksum of the file.\n"},"checksumAlgorithm":{"type":"string","description":"The algorithm to calculate the checksum of the file. Must be `md5` | `sha1` | `sha224` | `sha256` | `sha384` | `sha512`.\n"},"contentType":{"type":"string","description":"The file content type. Must be `iso` for VM images or `vztmpl` for LXC images.\n"},"datastoreId":{"type":"string","description":"The identifier for the target datastore.\n"},"decompressionAlgorithm":{"type":"string","description":"Decompress the downloaded file using the specified compression algorithm. Must be one of `gz` | `lzo` | `zst` | `bz2`.\n"},"fileName":{"type":"string","description":"The file name. If not provided, it is calculated using `url`. PVE will raise 'wrong file extension' error for some popular extensions file `.raw` or `.qcow2`. Workaround is to use e.g. `.img` instead.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"overwrite":{"type":"boolean","description":"If `true` and size of uploaded file is different, than size from `url` Content-Length header, file will be downloaded again. If `false`, there will be no checks.\n"},"overwriteUnmanaged":{"type":"boolean","description":"If `true` and a file with the same name already exists in the datastore, it will be deleted and the new file will be downloaded. If `false` and the file already exists, an error will be returned.\n"},"size":{"type":"integer","description":"The file size.\n"},"uploadTimeout":{"type":"integer","description":"The file download timeout seconds. Default is 600 (10min).\n"},"url":{"type":"string","description":"The URL to download the file from. Format `https?://.*`.\n"},"verify":{"type":"boolean","description":"By default `true`. If `false`, no SSL/TLS certificates will be verified.\n"}},"required":["contentType","datastoreId","fileName","nodeName","overwrite","overwriteUnmanaged","size","uploadTimeout","url","verify"],"inputProperties":{"checksum":{"type":"string","description":"The expected checksum of the file.\n"},"checksumAlgorithm":{"type":"string","description":"The algorithm to calculate the checksum of the file. Must be `md5` | `sha1` | `sha224` | `sha256` | `sha384` | `sha512`.\n"},"contentType":{"type":"string","description":"The file content type. Must be `iso` for VM images or `vztmpl` for LXC images.\n"},"datastoreId":{"type":"string","description":"The identifier for the target datastore.\n"},"decompressionAlgorithm":{"type":"string","description":"Decompress the downloaded file using the specified compression algorithm. Must be one of `gz` | `lzo` | `zst` | `bz2`.\n"},"fileName":{"type":"string","description":"The file name. If not provided, it is calculated using `url`. PVE will raise 'wrong file extension' error for some popular extensions file `.raw` or `.qcow2`. Workaround is to use e.g. `.img` instead.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"overwrite":{"type":"boolean","description":"If `true` and size of uploaded file is different, than size from `url` Content-Length header, file will be downloaded again. If `false`, there will be no checks.\n"},"overwriteUnmanaged":{"type":"boolean","description":"If `true` and a file with the same name already exists in the datastore, it will be deleted and the new file will be downloaded. If `false` and the file already exists, an error will be returned.\n"},"uploadTimeout":{"type":"integer","description":"The file download timeout seconds. Default is 600 (10min).\n"},"url":{"type":"string","description":"The URL to download the file from. Format `https?://.*`.\n"},"verify":{"type":"boolean","description":"By default `true`. If `false`, no SSL/TLS certificates will be verified.\n"}},"requiredInputs":["contentType","datastoreId","nodeName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering File resources.\n","properties":{"checksum":{"type":"string","description":"The expected checksum of the file.\n"},"checksumAlgorithm":{"type":"string","description":"The algorithm to calculate the checksum of the file. Must be `md5` | `sha1` | `sha224` | `sha256` | `sha384` | `sha512`.\n"},"contentType":{"type":"string","description":"The file content type. Must be `iso` for VM images or `vztmpl` for LXC images.\n"},"datastoreId":{"type":"string","description":"The identifier for the target datastore.\n"},"decompressionAlgorithm":{"type":"string","description":"Decompress the downloaded file using the specified compression algorithm. Must be one of `gz` | `lzo` | `zst` | `bz2`.\n"},"fileName":{"type":"string","description":"The file name. If not provided, it is calculated using `url`. PVE will raise 'wrong file extension' error for some popular extensions file `.raw` or `.qcow2`. Workaround is to use e.g. `.img` instead.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"overwrite":{"type":"boolean","description":"If `true` and size of uploaded file is different, than size from `url` Content-Length header, file will be downloaded again. If `false`, there will be no checks.\n"},"overwriteUnmanaged":{"type":"boolean","description":"If `true` and a file with the same name already exists in the datastore, it will be deleted and the new file will be downloaded. If `false` and the file already exists, an error will be returned.\n"},"size":{"type":"integer","description":"The file size.\n"},"uploadTimeout":{"type":"integer","description":"The file download timeout seconds. Default is 600 (10min).\n"},"url":{"type":"string","description":"The URL to download the file from. Format `https?://.*`.\n"},"verify":{"type":"boolean","description":"By default `true`. If `false`, no SSL/TLS certificates will be verified.\n"}},"type":"object"}},"proxmoxve:HA/hAGroup:HAGroup":{"description":"Manages a High Availability group in a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.ha.HAGroup(\"example\", {\n group: \"example\",\n comment: \"This is a comment.\",\n nodes: {\n node1: undefined,\n node2: 2,\n node3: 1,\n },\n restricted: true,\n noFailback: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.ha.HAGroup(\"example\",\n group=\"example\",\n comment=\"This is a comment.\",\n nodes={\n \"node1\": None,\n \"node2\": 2,\n \"node3\": 1,\n },\n restricted=True,\n no_failback=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.HA.HAGroup(\"example\", new()\n {\n Group = \"example\",\n Comment = \"This is a comment.\",\n Nodes = \n {\n { \"node1\", null },\n { \"node2\", 2 },\n { \"node3\", 1 },\n },\n Restricted = true,\n NoFailback = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := HA.NewHAGroup(ctx, \"example\", \u0026HA.HAGroupArgs{\n\t\t\tGroup: pulumi.String(\"example\"),\n\t\t\tComment: pulumi.String(\"This is a comment.\"),\n\t\t\tNodes: pulumi.IntMap{\n\t\t\t\t\"node1\": nil,\n\t\t\t\t\"node2\": pulumi.Int(2),\n\t\t\t\t\"node3\": pulumi.Int(1),\n\t\t\t},\n\t\t\tRestricted: pulumi.Bool(true),\n\t\t\tNoFailback: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAGroup;\nimport com.pulumi.proxmoxve.HA.HAGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new HAGroup(\"example\", HAGroupArgs.builder()\n .group(\"example\")\n .comment(\"This is a comment.\")\n .nodes(Map.ofEntries(\n Map.entry(\"node1\", null),\n Map.entry(\"node2\", 2),\n Map.entry(\"node3\", 1)\n ))\n .restricted(true)\n .noFailback(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:HA:HAGroup\n properties:\n group: example\n comment: This is a comment.\n # Member nodes, with or without priority.\n nodes:\n node1: null\n node2: 2\n node3: 1\n restricted: true\n noFailback: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nHA groups can be imported using their name, e.g.:\n\n```sh\n$ pulumi import proxmoxve:HA/hAGroup:HAGroup example example\n```\n\n","properties":{"comment":{"type":"string","description":"The comment associated with this group\n"},"group":{"type":"string","description":"The identifier of the High Availability group to manage.\n"},"noFailback":{"type":"boolean","description":"A flag that indicates that failing back to a higher priority node is disabled for this HA group. Defaults to `false`.\n"},"nodes":{"type":"object","additionalProperties":{"type":"integer"},"description":"The member nodes for this group. They are provided as a map, where the keys are the node names and the values represent their priority: integers for known priorities or `null` for unset priorities.\n"},"restricted":{"type":"boolean","description":"A flag that indicates that other nodes may not be used to run resources associated to this HA group. Defaults to `false`.\n"}},"required":["group","noFailback","nodes","restricted"],"inputProperties":{"comment":{"type":"string","description":"The comment associated with this group\n"},"group":{"type":"string","description":"The identifier of the High Availability group to manage.\n"},"noFailback":{"type":"boolean","description":"A flag that indicates that failing back to a higher priority node is disabled for this HA group. Defaults to `false`.\n"},"nodes":{"type":"object","additionalProperties":{"type":"integer"},"description":"The member nodes for this group. They are provided as a map, where the keys are the node names and the values represent their priority: integers for known priorities or `null` for unset priorities.\n"},"restricted":{"type":"boolean","description":"A flag that indicates that other nodes may not be used to run resources associated to this HA group. Defaults to `false`.\n"}},"requiredInputs":["group","nodes"],"stateInputs":{"description":"Input properties used for looking up and filtering HAGroup resources.\n","properties":{"comment":{"type":"string","description":"The comment associated with this group\n"},"group":{"type":"string","description":"The identifier of the High Availability group to manage.\n"},"noFailback":{"type":"boolean","description":"A flag that indicates that failing back to a higher priority node is disabled for this HA group. Defaults to `false`.\n"},"nodes":{"type":"object","additionalProperties":{"type":"integer"},"description":"The member nodes for this group. They are provided as a map, where the keys are the node names and the values represent their priority: integers for known priorities or `null` for unset priorities.\n"},"restricted":{"type":"boolean","description":"A flag that indicates that other nodes may not be used to run resources associated to this HA group. Defaults to `false`.\n"}},"type":"object"}},"proxmoxve:HA/hAResource:HAResource":{"description":"Manages Proxmox HA resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.ha.HAResource(\"example\", {\n resourceId: \"vm:123\",\n state: \"started\",\n group: \"example\",\n comment: \"Managed by Pulumi\",\n}, {\n dependsOn: [proxmox_virtual_environment_hagroup.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.ha.HAResource(\"example\",\n resource_id=\"vm:123\",\n state=\"started\",\n group=\"example\",\n comment=\"Managed by Pulumi\",\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_hagroup[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.HA.HAResource(\"example\", new()\n {\n ResourceId = \"vm:123\",\n State = \"started\",\n Group = \"example\",\n Comment = \"Managed by Pulumi\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_hagroup.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := HA.NewHAResource(ctx, \"example\", \u0026HA.HAResourceArgs{\n\t\t\tResourceId: pulumi.String(\"vm:123\"),\n\t\t\tState: pulumi.String(\"started\"),\n\t\t\tGroup: pulumi.String(\"example\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_hagroup.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAResource;\nimport com.pulumi.proxmoxve.HA.HAResourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new HAResource(\"example\", HAResourceArgs.builder()\n .resourceId(\"vm:123\")\n .state(\"started\")\n .group(\"example\")\n .comment(\"Managed by Pulumi\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_hagroup.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:HA:HAResource\n properties:\n resourceId: vm:123\n state: started\n group: example\n comment: Managed by Pulumi\n options:\n dependsOn:\n - ${proxmox_virtual_environment_hagroup.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nHA resources can be imported using their identifiers, e.g.:\n\n```sh\n$ pulumi import proxmoxve:HA/hAResource:HAResource example vm:123\n```\n\n","properties":{"comment":{"type":"string","description":"The comment associated with this resource.\n"},"group":{"type":"string","description":"The identifier of the High Availability group this resource is a member of.\n"},"maxRelocate":{"type":"integer","description":"The maximal number of relocation attempts.\n"},"maxRestart":{"type":"integer","description":"The maximal number of restart attempts.\n"},"resourceId":{"type":"string","description":"The Proxmox HA resource identifier\n"},"state":{"type":"string","description":"The desired state of the resource.\n"},"type":{"type":"string","description":"The type of HA resources to create. If unset, it will be deduced from the `resource_id`.\n"}},"required":["resourceId","state","type"],"inputProperties":{"comment":{"type":"string","description":"The comment associated with this resource.\n"},"group":{"type":"string","description":"The identifier of the High Availability group this resource is a member of.\n"},"maxRelocate":{"type":"integer","description":"The maximal number of relocation attempts.\n"},"maxRestart":{"type":"integer","description":"The maximal number of restart attempts.\n"},"resourceId":{"type":"string","description":"The Proxmox HA resource identifier\n"},"state":{"type":"string","description":"The desired state of the resource.\n"},"type":{"type":"string","description":"The type of HA resources to create. If unset, it will be deduced from the `resource_id`.\n"}},"requiredInputs":["resourceId"],"stateInputs":{"description":"Input properties used for looking up and filtering HAResource resources.\n","properties":{"comment":{"type":"string","description":"The comment associated with this resource.\n"},"group":{"type":"string","description":"The identifier of the High Availability group this resource is a member of.\n"},"maxRelocate":{"type":"integer","description":"The maximal number of relocation attempts.\n"},"maxRestart":{"type":"integer","description":"The maximal number of restart attempts.\n"},"resourceId":{"type":"string","description":"The Proxmox HA resource identifier\n"},"state":{"type":"string","description":"The desired state of the resource.\n"},"type":{"type":"string","description":"The type of HA resources to create. If unset, it will be deduced from the `resource_id`.\n"}},"type":"object"}},"proxmoxve:Hardware/mapping/pci:Pci":{"description":"Manages a PCI hardware mapping in a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware.Pci;\nimport com.pulumi.proxmoxve.Hardware.PciArgs;\nimport com.pulumi.proxmoxve.Hardware.inputs.PciMapArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Pci(\"example\", PciArgs.builder()\n .comment(\"This is a comment\")\n .maps(PciMapArgs.builder()\n .comment(\"This is a device specific comment\")\n .id(\"8086:5916\")\n .iommu_group(0)\n .node(\"pve\")\n .path(\"0000:00:02.0\")\n .subsystem_id(\"8086:2068\")\n .build())\n .mediatedDevices(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Hardware/mapping:Pci\n properties:\n comment: This is a comment\n # The actual map of devices.\n maps:\n - comment: This is a device specific comment\n id: 8086:5916\n iommu_group: 0\n node: pve\n path: 0000:00:02.0\n subsystem_id: 8086:2068\n mediatedDevices: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nA PCI hardware mapping can be imported using their name, e.g.:\n\n```sh\n$ pulumi import proxmoxve:Hardware/mapping/pci:Pci example example\n```\n\n","properties":{"comment":{"type":"string","description":"The comment of this PCI hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/PciMap:PciMap"},"description":"The actual map of devices for the PCI hardware mapping.\n"},"mediatedDevices":{"type":"boolean","description":"Indicates whether to enable mediated devices.\n"},"name":{"type":"string","description":"The name of this PCI hardware mapping.\n"}},"required":["maps","mediatedDevices","name"],"inputProperties":{"comment":{"type":"string","description":"The comment of this PCI hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/PciMap:PciMap"},"description":"The actual map of devices for the PCI hardware mapping.\n"},"mediatedDevices":{"type":"boolean","description":"Indicates whether to enable mediated devices.\n"},"name":{"type":"string","description":"The name of this PCI hardware mapping.\n"}},"requiredInputs":["maps"],"stateInputs":{"description":"Input properties used for looking up and filtering Pci resources.\n","properties":{"comment":{"type":"string","description":"The comment of this PCI hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/PciMap:PciMap"},"description":"The actual map of devices for the PCI hardware mapping.\n"},"mediatedDevices":{"type":"boolean","description":"Indicates whether to enable mediated devices.\n"},"name":{"type":"string","description":"The name of this PCI hardware mapping.\n"}},"type":"object"}},"proxmoxve:Hardware/mapping/usb:Usb":{"description":"Manages a USB hardware mapping in a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.hardware.mapping.Usb(\"example\", {\n comment: \"This is a comment\",\n maps: [{\n comment: \"This is a device specific comment\",\n id: \"8087:0a2b\",\n node: \"pve\",\n path: \"1-8.2\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.hardware.mapping.Usb(\"example\",\n comment=\"This is a comment\",\n maps=[{\n \"comment\": \"This is a device specific comment\",\n \"id\": \"8087:0a2b\",\n \"node\": \"pve\",\n \"path\": \"1-8.2\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.Hardware.Mapping.Usb(\"example\", new()\n {\n Comment = \"This is a comment\",\n Maps = new[]\n {\n new ProxmoxVE.Hardware.Mapping.Inputs.UsbMapArgs\n {\n Comment = \"This is a device specific comment\",\n Id = \"8087:0a2b\",\n Node = \"pve\",\n Path = \"1-8.2\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Hardware.NewUsb(ctx, \"example\", \u0026Hardware.UsbArgs{\n\t\t\tComment: pulumi.String(\"This is a comment\"),\n\t\t\tMaps: mapping.UsbMapTypeArray{\n\t\t\t\t\u0026mapping.UsbMapTypeArgs{\n\t\t\t\t\tComment: pulumi.String(\"This is a device specific comment\"),\n\t\t\t\t\tId: pulumi.String(\"8087:0a2b\"),\n\t\t\t\t\tNode: pulumi.String(\"pve\"),\n\t\t\t\t\tPath: pulumi.String(\"1-8.2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware.Usb;\nimport com.pulumi.proxmoxve.Hardware.UsbArgs;\nimport com.pulumi.proxmoxve.Hardware.inputs.UsbMapArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Usb(\"example\", UsbArgs.builder()\n .comment(\"This is a comment\")\n .maps(UsbMapArgs.builder()\n .comment(\"This is a device specific comment\")\n .id(\"8087:0a2b\")\n .node(\"pve\")\n .path(\"1-8.2\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Hardware/mapping:Usb\n properties:\n comment: This is a comment\n # The actual map of devices.\n maps:\n - comment: This is a device specific comment\n id: 8087:0a2b\n node: pve\n path: 1-8.2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nA USB hardware mapping can be imported using their name, e.g.:\n\n```sh\n$ pulumi import proxmoxve:Hardware/mapping/usb:Usb example example\n```\n\n","properties":{"comment":{"type":"string","description":"The comment of this USB hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/UsbMap:UsbMap"},"description":"The actual map of devices for the hardware mapping.\n"},"name":{"type":"string","description":"The name of this hardware mapping.\n"}},"required":["maps","name"],"inputProperties":{"comment":{"type":"string","description":"The comment of this USB hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/UsbMap:UsbMap"},"description":"The actual map of devices for the hardware mapping.\n"},"name":{"type":"string","description":"The name of this hardware mapping.\n"}},"requiredInputs":["maps"],"stateInputs":{"description":"Input properties used for looking up and filtering Usb resources.\n","properties":{"comment":{"type":"string","description":"The comment of this USB hardware mapping.\n"},"maps":{"type":"array","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/UsbMap:UsbMap"},"description":"The actual map of devices for the hardware mapping.\n"},"name":{"type":"string","description":"The name of this hardware mapping.\n"}},"type":"object"}},"proxmoxve:Network/firewall:Firewall":{"description":"Manages firewall options on the cluster level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.network.Firewall(\"example\", {\n ebtables: false,\n enabled: false,\n inputPolicy: \"DROP\",\n logRatelimit: {\n burst: 10,\n enabled: false,\n rate: \"5/second\",\n },\n outputPolicy: \"ACCEPT\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.network.Firewall(\"example\",\n ebtables=False,\n enabled=False,\n input_policy=\"DROP\",\n log_ratelimit={\n \"burst\": 10,\n \"enabled\": False,\n \"rate\": \"5/second\",\n },\n output_policy=\"ACCEPT\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.Network.Firewall(\"example\", new()\n {\n Ebtables = false,\n Enabled = false,\n InputPolicy = \"DROP\",\n LogRatelimit = new ProxmoxVE.Network.Inputs.FirewallLogRatelimitArgs\n {\n Burst = 10,\n Enabled = false,\n Rate = \"5/second\",\n },\n OutputPolicy = \"ACCEPT\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewall(ctx, \"example\", \u0026Network.FirewallArgs{\n\t\t\tEbtables: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t\tInputPolicy: pulumi.String(\"DROP\"),\n\t\t\tLogRatelimit: \u0026network.FirewallLogRatelimitArgs{\n\t\t\t\tBurst: pulumi.Int(10),\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\tRate: pulumi.String(\"5/second\"),\n\t\t\t},\n\t\t\tOutputPolicy: pulumi.String(\"ACCEPT\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.Firewall;\nimport com.pulumi.proxmoxve.Network.FirewallArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallLogRatelimitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Firewall(\"example\", FirewallArgs.builder()\n .ebtables(false)\n .enabled(false)\n .inputPolicy(\"DROP\")\n .logRatelimit(FirewallLogRatelimitArgs.builder()\n .burst(10)\n .enabled(false)\n .rate(\"5/second\")\n .build())\n .outputPolicy(\"ACCEPT\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Network:Firewall\n properties:\n ebtables: false\n enabled: false\n inputPolicy: DROP\n logRatelimit:\n burst: 10\n enabled: false\n rate: 5/second\n outputPolicy: ACCEPT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Important Notes\n\nBe careful not to use this resource multiple times for the same node.\n\n## Import\n\nInstances can be imported without an ID, but you still need to pass one, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Network/firewall:Firewall example example\n```\n\n","properties":{"ebtables":{"type":"boolean","description":"Enable ebtables rules cluster wide.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall cluster wide.\n"},"inputPolicy":{"type":"string","description":"The default input policy (`ACCEPT`, `DROP`, `REJECT`).\n"},"logRatelimit":{"$ref":"#/types/proxmoxve:Network/FirewallLogRatelimit:FirewallLogRatelimit","description":"The log rate limit.\n"},"outputPolicy":{"type":"string","description":"The default output policy (`ACCEPT`, `DROP`, `REJECT`).\n"}},"inputProperties":{"ebtables":{"type":"boolean","description":"Enable ebtables rules cluster wide.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall cluster wide.\n"},"inputPolicy":{"type":"string","description":"The default input policy (`ACCEPT`, `DROP`, `REJECT`).\n"},"logRatelimit":{"$ref":"#/types/proxmoxve:Network/FirewallLogRatelimit:FirewallLogRatelimit","description":"The log rate limit.\n"},"outputPolicy":{"type":"string","description":"The default output policy (`ACCEPT`, `DROP`, `REJECT`).\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Firewall resources.\n","properties":{"ebtables":{"type":"boolean","description":"Enable ebtables rules cluster wide.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall cluster wide.\n"},"inputPolicy":{"type":"string","description":"The default input policy (`ACCEPT`, `DROP`, `REJECT`).\n"},"logRatelimit":{"$ref":"#/types/proxmoxve:Network/FirewallLogRatelimit:FirewallLogRatelimit","description":"The log rate limit.\n"},"outputPolicy":{"type":"string","description":"The default output policy (`ACCEPT`, `DROP`, `REJECT`).\n"}},"type":"object"}},"proxmoxve:Network/firewallAlias:FirewallAlias":{"description":"Aliases are used to see what devices or group of devices are affected by a rule.\nWe can create aliases to identify an IP address or a network. Aliases can be\ncreated on the cluster level, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst localNetwork = new proxmoxve.network.FirewallAlias(\"localNetwork\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n cidr: \"192.168.0.0/23\",\n comment: \"Managed by Pulumi\",\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\nconst ubuntuVm = new proxmoxve.network.FirewallAlias(\"ubuntuVm\", {\n cidr: \"192.168.0.1\",\n comment: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nlocal_network = proxmoxve.network.FirewallAlias(\"localNetwork\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n cidr=\"192.168.0.0/23\",\n comment=\"Managed by Pulumi\",\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\nubuntu_vm = proxmoxve.network.FirewallAlias(\"ubuntuVm\",\n cidr=\"192.168.0.1\",\n comment=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var localNetwork = new ProxmoxVE.Network.FirewallAlias(\"localNetwork\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Cidr = \"192.168.0.0/23\",\n Comment = \"Managed by Pulumi\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n var ubuntuVm = new ProxmoxVE.Network.FirewallAlias(\"ubuntuVm\", new()\n {\n Cidr = \"192.168.0.1\",\n Comment = \"Managed by Pulumi\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallAlias(ctx, \"localNetwork\", \u0026Network.FirewallAliasArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tCidr: pulumi.String(\"192.168.0.0/23\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Network.NewFirewallAlias(ctx, \"ubuntuVm\", \u0026Network.FirewallAliasArgs{\n\t\t\tCidr: pulumi.String(\"192.168.0.1\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallAlias;\nimport com.pulumi.proxmoxve.Network.FirewallAliasArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var localNetwork = new FirewallAlias(\"localNetwork\", FirewallAliasArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .cidr(\"192.168.0.0/23\")\n .comment(\"Managed by Pulumi\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n var ubuntuVm = new FirewallAlias(\"ubuntuVm\", FirewallAliasArgs.builder()\n .cidr(\"192.168.0.1\")\n .comment(\"Managed by Pulumi\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n localNetwork:\n type: proxmoxve:Network:FirewallAlias\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n cidr: 192.168.0.0/23\n comment: Managed by Pulumi\n options:\n dependsOn:\n - ${proxmox_virtual_environment_vm.example}\n ubuntuVm:\n type: proxmoxve:Network:FirewallAlias\n properties:\n cidr: 192.168.0.1\n comment: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"cidr":{"type":"string","description":"Network/IP specification in CIDR format.\n"},"comment":{"type":"string","description":"Alias comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Alias name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"required":["cidr","name"],"inputProperties":{"cidr":{"type":"string","description":"Network/IP specification in CIDR format.\n"},"comment":{"type":"string","description":"Alias comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Alias name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"requiredInputs":["cidr"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallAlias resources.\n","properties":{"cidr":{"type":"string","description":"Network/IP specification in CIDR format.\n"},"comment":{"type":"string","description":"Alias comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Alias name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"type":"object"}},"proxmoxve:Network/firewallIPSet:FirewallIPSet":{"description":"An IPSet allows us to group multiple IP addresses, IP subnets and aliases. Aliases can be\ncreated on the cluster level, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst ipset = new proxmoxve.network.FirewallIPSet(\"ipset\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n comment: \"Managed by Pulumi\",\n cidrs: [\n {\n name: \"192.168.0.0/23\",\n comment: \"Local network 1\",\n },\n {\n name: \"192.168.0.1\",\n comment: \"Server 1\",\n nomatch: true,\n },\n {\n name: \"192.168.2.1\",\n comment: \"Server 1\",\n },\n ],\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nipset = proxmoxve.network.FirewallIPSet(\"ipset\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n comment=\"Managed by Pulumi\",\n cidrs=[\n {\n \"name\": \"192.168.0.0/23\",\n \"comment\": \"Local network 1\",\n },\n {\n \"name\": \"192.168.0.1\",\n \"comment\": \"Server 1\",\n \"nomatch\": True,\n },\n {\n \"name\": \"192.168.2.1\",\n \"comment\": \"Server 1\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ipset = new ProxmoxVE.Network.FirewallIPSet(\"ipset\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Comment = \"Managed by Pulumi\",\n Cidrs = new[]\n {\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.0.0/23\",\n Comment = \"Local network 1\",\n },\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.0.1\",\n Comment = \"Server 1\",\n Nomatch = true,\n },\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.2.1\",\n Comment = \"Server 1\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallIPSet(ctx, \"ipset\", \u0026Network.FirewallIPSetArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tCidrs: network.FirewallIPSetCidrArray{\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.0.0/23\"),\n\t\t\t\t\tComment: pulumi.String(\"Local network 1\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.0.1\"),\n\t\t\t\t\tComment: pulumi.String(\"Server 1\"),\n\t\t\t\t\tNomatch: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.2.1\"),\n\t\t\t\t\tComment: pulumi.String(\"Server 1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallIPSet;\nimport com.pulumi.proxmoxve.Network.FirewallIPSetArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallIPSetCidrArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ipset = new FirewallIPSet(\"ipset\", FirewallIPSetArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .comment(\"Managed by Pulumi\")\n .cidrs( \n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.0.0/23\")\n .comment(\"Local network 1\")\n .build(),\n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.0.1\")\n .comment(\"Server 1\")\n .nomatch(true)\n .build(),\n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.2.1\")\n .comment(\"Server 1\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ipset:\n type: proxmoxve:Network:FirewallIPSet\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n comment: Managed by Pulumi\n cidrs:\n - name: 192.168.0.0/23\n comment: Local network 1\n - name: 192.168.0.1\n comment: Server 1\n nomatch: true\n - name: 192.168.2.1\n comment: Server 1\n options:\n dependsOn:\n - ${proxmox_virtual_environment_vm.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"cidrs":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallIPSetCidr:FirewallIPSetCidr"},"description":"IP/CIDR block (multiple blocks supported).\n"},"comment":{"type":"string","description":"IPSet comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"IPSet name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"required":["name"],"inputProperties":{"cidrs":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallIPSetCidr:FirewallIPSetCidr"},"description":"IP/CIDR block (multiple blocks supported).\n","willReplaceOnChanges":true},"comment":{"type":"string","description":"IPSet comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"IPSet name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering FirewallIPSet resources.\n","properties":{"cidrs":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallIPSetCidr:FirewallIPSetCidr"},"description":"IP/CIDR block (multiple blocks supported).\n","willReplaceOnChanges":true},"comment":{"type":"string","description":"IPSet comment.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"IPSet name.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level aliases.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"type":"object"}},"proxmoxve:Network/firewallOptions:FirewallOptions":{"description":"Manages firewall options on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.network.FirewallOptions(\"example\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n dhcp: true,\n enabled: false,\n ipfilter: true,\n logLevelIn: \"info\",\n logLevelOut: \"info\",\n macfilter: false,\n ndp: true,\n inputPolicy: \"ACCEPT\",\n outputPolicy: \"ACCEPT\",\n radv: true,\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.network.FirewallOptions(\"example\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n dhcp=True,\n enabled=False,\n ipfilter=True,\n log_level_in=\"info\",\n log_level_out=\"info\",\n macfilter=False,\n ndp=True,\n input_policy=\"ACCEPT\",\n output_policy=\"ACCEPT\",\n radv=True,\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.Network.FirewallOptions(\"example\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Dhcp = true,\n Enabled = false,\n Ipfilter = true,\n LogLevelIn = \"info\",\n LogLevelOut = \"info\",\n Macfilter = false,\n Ndp = true,\n InputPolicy = \"ACCEPT\",\n OutputPolicy = \"ACCEPT\",\n Radv = true,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallOptions(ctx, \"example\", \u0026Network.FirewallOptionsArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tDhcp: pulumi.Bool(true),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t\tIpfilter: pulumi.Bool(true),\n\t\t\tLogLevelIn: pulumi.String(\"info\"),\n\t\t\tLogLevelOut: pulumi.String(\"info\"),\n\t\t\tMacfilter: pulumi.Bool(false),\n\t\t\tNdp: pulumi.Bool(true),\n\t\t\tInputPolicy: pulumi.String(\"ACCEPT\"),\n\t\t\tOutputPolicy: pulumi.String(\"ACCEPT\"),\n\t\t\tRadv: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallOptions;\nimport com.pulumi.proxmoxve.Network.FirewallOptionsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new FirewallOptions(\"example\", FirewallOptionsArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .dhcp(true)\n .enabled(false)\n .ipfilter(true)\n .logLevelIn(\"info\")\n .logLevelOut(\"info\")\n .macfilter(false)\n .ndp(true)\n .inputPolicy(\"ACCEPT\")\n .outputPolicy(\"ACCEPT\")\n .radv(true)\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Network:FirewallOptions\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n dhcp: true\n enabled: false\n ipfilter: true\n logLevelIn: info\n logLevelOut: info\n macfilter: false\n ndp: true\n inputPolicy: ACCEPT\n outputPolicy: ACCEPT\n radv: true\n options:\n dependsOn:\n - ${proxmox_virtual_environment_vm.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"dhcp":{"type":"boolean","description":"Enable DHCP.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall.\n"},"inputPolicy":{"type":"string","description":"The default input\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"ipfilter":{"type":"boolean","description":"Enable default IP filters. This is equivalent to\nadding an empty `ipfilter-net\u003cid\u003e` ipset for every interface. Such ipsets\nimplicitly contain sane default restrictions such as restricting IPv6 link\nlocal addresses to the one derived from the interface's MAC address. For\ncontainers the configured IP addresses will be implicitly added.\n"},"logLevelIn":{"type":"string","description":"Log level for incoming\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"macfilter":{"type":"boolean","description":"Enable/disable MAC address filter.\n"},"ndp":{"type":"boolean","description":"Enable NDP (Neighbor Discovery Protocol).\n"},"nodeName":{"type":"string","description":"Node name.\n"},"outputPolicy":{"type":"string","description":"The default output\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"radv":{"type":"boolean","description":"Enable Router Advertisement.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"required":["nodeName"],"inputProperties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"dhcp":{"type":"boolean","description":"Enable DHCP.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall.\n"},"inputPolicy":{"type":"string","description":"The default input\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"ipfilter":{"type":"boolean","description":"Enable default IP filters. This is equivalent to\nadding an empty `ipfilter-net\u003cid\u003e` ipset for every interface. Such ipsets\nimplicitly contain sane default restrictions such as restricting IPv6 link\nlocal addresses to the one derived from the interface's MAC address. For\ncontainers the configured IP addresses will be implicitly added.\n"},"logLevelIn":{"type":"string","description":"Log level for incoming\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"macfilter":{"type":"boolean","description":"Enable/disable MAC address filter.\n"},"ndp":{"type":"boolean","description":"Enable NDP (Neighbor Discovery Protocol).\n"},"nodeName":{"type":"string","description":"Node name.\n"},"outputPolicy":{"type":"string","description":"The default output\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"radv":{"type":"boolean","description":"Enable Router Advertisement.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallOptions resources.\n","properties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"dhcp":{"type":"boolean","description":"Enable DHCP.\n"},"enabled":{"type":"boolean","description":"Enable or disable the firewall.\n"},"inputPolicy":{"type":"string","description":"The default input\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"ipfilter":{"type":"boolean","description":"Enable default IP filters. This is equivalent to\nadding an empty `ipfilter-net\u003cid\u003e` ipset for every interface. Such ipsets\nimplicitly contain sane default restrictions such as restricting IPv6 link\nlocal addresses to the one derived from the interface's MAC address. For\ncontainers the configured IP addresses will be implicitly added.\n"},"logLevelIn":{"type":"string","description":"Log level for incoming\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,\n`debug`, `nolog`).\n"},"macfilter":{"type":"boolean","description":"Enable/disable MAC address filter.\n"},"ndp":{"type":"boolean","description":"Enable NDP (Neighbor Discovery Protocol).\n"},"nodeName":{"type":"string","description":"Node name.\n"},"outputPolicy":{"type":"string","description":"The default output\npolicy (`ACCEPT`, `DROP`, `REJECT`).\n"},"radv":{"type":"boolean","description":"Enable Router Advertisement.\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level aliases.\n"}},"type":"object"}},"proxmoxve:Network/firewallRules:FirewallRules":{"description":"A security group is a collection of rules, defined at cluster level, which can\nbe used in all VMs' rules. For example, you can define a group named “webserver”\nwith rules to open the http and https ports. Rules can be created on the cluster\nlevel, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst inbound = new proxmoxve.network.FirewallRules(\"inbound\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n rules: [\n {\n type: \"in\",\n action: \"ACCEPT\",\n comment: \"Allow HTTP\",\n dest: \"192.168.1.5\",\n dport: \"80\",\n proto: \"tcp\",\n log: \"info\",\n },\n {\n type: \"in\",\n action: \"ACCEPT\",\n comment: \"Allow HTTPS\",\n dest: \"192.168.1.5\",\n dport: \"443\",\n proto: \"tcp\",\n log: \"info\",\n },\n {\n securityGroup: proxmox_virtual_environment_cluster_firewall_security_group.example.name,\n comment: \"From security group\",\n iface: \"net0\",\n },\n ],\n}, {\n dependsOn: [\n proxmox_virtual_environment_vm.example,\n proxmox_virtual_environment_cluster_firewall_security_group.example,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\ninbound = proxmoxve.network.FirewallRules(\"inbound\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n rules=[\n {\n \"type\": \"in\",\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTP\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"80\",\n \"proto\": \"tcp\",\n \"log\": \"info\",\n },\n {\n \"type\": \"in\",\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTPS\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"443\",\n \"proto\": \"tcp\",\n \"log\": \"info\",\n },\n {\n \"security_group\": proxmox_virtual_environment_cluster_firewall_security_group[\"example\"][\"name\"],\n \"comment\": \"From security group\",\n \"iface\": \"net0\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[\n proxmox_virtual_environment_vm[\"example\"],\n proxmox_virtual_environment_cluster_firewall_security_group[\"example\"],\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var inbound = new ProxmoxVE.Network.FirewallRules(\"inbound\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Rules = new[]\n {\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n Type = \"in\",\n Action = \"ACCEPT\",\n Comment = \"Allow HTTP\",\n Dest = \"192.168.1.5\",\n Dport = \"80\",\n Proto = \"tcp\",\n Log = \"info\",\n },\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n Type = \"in\",\n Action = \"ACCEPT\",\n Comment = \"Allow HTTPS\",\n Dest = \"192.168.1.5\",\n Dport = \"443\",\n Proto = \"tcp\",\n Log = \"info\",\n },\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n SecurityGroup = proxmox_virtual_environment_cluster_firewall_security_group.Example.Name,\n Comment = \"From security group\",\n Iface = \"net0\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n proxmox_virtual_environment_cluster_firewall_security_group.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallRules(ctx, \"inbound\", \u0026Network.FirewallRulesArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tRules: network.FirewallRulesRuleArray{\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTP\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"80\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTPS\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"443\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tSecurityGroup: pulumi.Any(proxmox_virtual_environment_cluster_firewall_security_group.Example.Name),\n\t\t\t\t\tComment: pulumi.String(\"From security group\"),\n\t\t\t\t\tIface: pulumi.String(\"net0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t\tproxmox_virtual_environment_cluster_firewall_security_group.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallRules;\nimport com.pulumi.proxmoxve.Network.FirewallRulesArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallRulesRuleArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var inbound = new FirewallRules(\"inbound\", FirewallRulesArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .rules( \n FirewallRulesRuleArgs.builder()\n .type(\"in\")\n .action(\"ACCEPT\")\n .comment(\"Allow HTTP\")\n .dest(\"192.168.1.5\")\n .dport(\"80\")\n .proto(\"tcp\")\n .log(\"info\")\n .build(),\n FirewallRulesRuleArgs.builder()\n .type(\"in\")\n .action(\"ACCEPT\")\n .comment(\"Allow HTTPS\")\n .dest(\"192.168.1.5\")\n .dport(\"443\")\n .proto(\"tcp\")\n .log(\"info\")\n .build(),\n FirewallRulesRuleArgs.builder()\n .securityGroup(proxmox_virtual_environment_cluster_firewall_security_group.example().name())\n .comment(\"From security group\")\n .iface(\"net0\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n proxmox_virtual_environment_vm.example(),\n proxmox_virtual_environment_cluster_firewall_security_group.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n inbound:\n type: proxmoxve:Network:FirewallRules\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n rules:\n - type: in\n action: ACCEPT\n comment: Allow HTTP\n dest: 192.168.1.5\n dport: '80'\n proto: tcp\n log: info\n - type: in\n action: ACCEPT\n comment: Allow HTTPS\n dest: 192.168.1.5\n dport: '443'\n proto: tcp\n log: info\n - securityGroup: ${proxmox_virtual_environment_cluster_firewall_security_group.example.name}\n comment: From security group\n iface: net0\n options:\n dependsOn:\n - ${proxmox_virtual_environment_vm.example}\n - ${proxmox_virtual_environment_cluster_firewall_security_group.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level\nrules.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level rules.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallRulesRule:FirewallRulesRule"},"description":"Firewall rule block (multiple blocks supported).\nThe provider supports two types of the `rule` blocks:\n- A rule definition block, which includes the following arguments:\n"},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level rules.\n"}},"required":["rules"],"inputProperties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level\nrules.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level rules.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallRulesRule:FirewallRulesRule"},"description":"Firewall rule block (multiple blocks supported).\nThe provider supports two types of the `rule` blocks:\n- A rule definition block, which includes the following arguments:\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level rules.\n"}},"requiredInputs":["rules"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallRules resources.\n","properties":{"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level\nrules.\n"},"nodeName":{"type":"string","description":"Node name. Leave empty for cluster level rules.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallRulesRule:FirewallRulesRule"},"description":"Firewall rule block (multiple blocks supported).\nThe provider supports two types of the `rule` blocks:\n- A rule definition block, which includes the following arguments:\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"VM ID. Leave empty for cluster level rules.\n"}},"type":"object"}},"proxmoxve:Network/firewallSecurityGroup:FirewallSecurityGroup":{"description":"A security group is a collection of rules, defined at cluster level, which can\nbe used in all VMs' rules. For example, you can define a group named “webserver”\nwith rules to open the http and https ports.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst webserver = new proxmoxve.network.FirewallSecurityGroup(\"webserver\", {\n comment: \"Managed by Pulumi\",\n rules: [\n {\n action: \"ACCEPT\",\n comment: \"Allow HTTP\",\n dest: \"192.168.1.5\",\n dport: \"80\",\n log: \"info\",\n proto: \"tcp\",\n type: \"in\",\n },\n {\n action: \"ACCEPT\",\n comment: \"Allow HTTPS\",\n dest: \"192.168.1.5\",\n dport: \"443\",\n log: \"info\",\n proto: \"tcp\",\n type: \"in\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nwebserver = proxmoxve.network.FirewallSecurityGroup(\"webserver\",\n comment=\"Managed by Pulumi\",\n rules=[\n {\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTP\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"80\",\n \"log\": \"info\",\n \"proto\": \"tcp\",\n \"type\": \"in\",\n },\n {\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTPS\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"443\",\n \"log\": \"info\",\n \"proto\": \"tcp\",\n \"type\": \"in\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var webserver = new ProxmoxVE.Network.FirewallSecurityGroup(\"webserver\", new()\n {\n Comment = \"Managed by Pulumi\",\n Rules = new[]\n {\n new ProxmoxVE.Network.Inputs.FirewallSecurityGroupRuleArgs\n {\n Action = \"ACCEPT\",\n Comment = \"Allow HTTP\",\n Dest = \"192.168.1.5\",\n Dport = \"80\",\n Log = \"info\",\n Proto = \"tcp\",\n Type = \"in\",\n },\n new ProxmoxVE.Network.Inputs.FirewallSecurityGroupRuleArgs\n {\n Action = \"ACCEPT\",\n Comment = \"Allow HTTPS\",\n Dest = \"192.168.1.5\",\n Dport = \"443\",\n Log = \"info\",\n Proto = \"tcp\",\n Type = \"in\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallSecurityGroup(ctx, \"webserver\", \u0026Network.FirewallSecurityGroupArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tRules: network.FirewallSecurityGroupRuleArray{\n\t\t\t\t\u0026network.FirewallSecurityGroupRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTP\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"80\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallSecurityGroupRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTPS\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"443\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallSecurityGroup;\nimport com.pulumi.proxmoxve.Network.FirewallSecurityGroupArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallSecurityGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var webserver = new FirewallSecurityGroup(\"webserver\", FirewallSecurityGroupArgs.builder()\n .comment(\"Managed by Pulumi\")\n .rules( \n FirewallSecurityGroupRuleArgs.builder()\n .action(\"ACCEPT\")\n .comment(\"Allow HTTP\")\n .dest(\"192.168.1.5\")\n .dport(\"80\")\n .log(\"info\")\n .proto(\"tcp\")\n .type(\"in\")\n .build(),\n FirewallSecurityGroupRuleArgs.builder()\n .action(\"ACCEPT\")\n .comment(\"Allow HTTPS\")\n .dest(\"192.168.1.5\")\n .dport(\"443\")\n .log(\"info\")\n .proto(\"tcp\")\n .type(\"in\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n webserver:\n type: proxmoxve:Network:FirewallSecurityGroup\n properties:\n comment: Managed by Pulumi\n rules:\n - action: ACCEPT\n comment: Allow HTTP\n dest: 192.168.1.5\n dport: '80'\n log: info\n proto: tcp\n type: in\n - action: ACCEPT\n comment: Allow HTTPS\n dest: 192.168.1.5\n dport: '443'\n log: info\n proto: tcp\n type: in\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `name`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Network/firewallSecurityGroup:FirewallSecurityGroup webserver webserver\n```\n\n","properties":{"comment":{"type":"string","description":"Security group comment.\n"},"containerId":{"type":"integer","description":"The ID of the container to manage the firewall for.\n"},"name":{"type":"string","description":"Security group name.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallSecurityGroupRule:FirewallSecurityGroupRule"},"description":"Firewall rule block (multiple blocks supported).\n"},"vmId":{"type":"integer","description":"The ID of the VM to manage the firewall for.\n"}},"required":["name","rules"],"inputProperties":{"comment":{"type":"string","description":"Security group comment.\n"},"containerId":{"type":"integer","description":"The ID of the container to manage the firewall for.\n"},"name":{"type":"string","description":"Security group name.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallSecurityGroupRule:FirewallSecurityGroupRule"},"description":"Firewall rule block (multiple blocks supported).\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The ID of the VM to manage the firewall for.\n"}},"requiredInputs":["rules"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallSecurityGroup resources.\n","properties":{"comment":{"type":"string","description":"Security group comment.\n"},"containerId":{"type":"integer","description":"The ID of the container to manage the firewall for.\n"},"name":{"type":"string","description":"Security group name.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"rules":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallSecurityGroupRule:FirewallSecurityGroupRule"},"description":"Firewall rule block (multiple blocks supported).\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The ID of the VM to manage the firewall for.\n"}},"type":"object"}},"proxmoxve:Network/networkBridge:NetworkBridge":{"description":"Manages a Linux Bridge network interface in a Proxmox VE node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst vlan99 = new proxmoxve.network.NetworkVlan(\"vlan99\", {nodeName: \"pve\"});\n//# or alternatively, use custom name:\n// name = \"vlan_lab\"\n// interface = \"eno0\"\n// vlan = 98\nconst vmbr99 = new proxmoxve.network.NetworkBridge(\"vmbr99\", {\n nodeName: \"pve\",\n address: \"99.99.99.99/16\",\n comment: \"vmbr99 comment\",\n ports: [\"ens18.99\"],\n}, {\n dependsOn: [vlan99],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nvlan99 = proxmoxve.network.NetworkVlan(\"vlan99\", node_name=\"pve\")\n## or alternatively, use custom name:\n# name = \"vlan_lab\"\n# interface = \"eno0\"\n# vlan = 98\nvmbr99 = proxmoxve.network.NetworkBridge(\"vmbr99\",\n node_name=\"pve\",\n address=\"99.99.99.99/16\",\n comment=\"vmbr99 comment\",\n ports=[\"ens18.99\"],\n opts = pulumi.ResourceOptions(depends_on=[vlan99]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vlan99 = new ProxmoxVE.Network.NetworkVlan(\"vlan99\", new()\n {\n NodeName = \"pve\",\n });\n\n //# or alternatively, use custom name:\n // name = \"vlan_lab\"\n // interface = \"eno0\"\n // vlan = 98\n var vmbr99 = new ProxmoxVE.Network.NetworkBridge(\"vmbr99\", new()\n {\n NodeName = \"pve\",\n Address = \"99.99.99.99/16\",\n Comment = \"vmbr99 comment\",\n Ports = new[]\n {\n \"ens18.99\",\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n vlan99,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvlan99, err := Network.NewNetworkVlan(ctx, \"vlan99\", \u0026Network.NetworkVlanArgs{\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Network.NewNetworkBridge(ctx, \"vmbr99\", \u0026Network.NetworkBridgeArgs{\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tAddress: pulumi.String(\"99.99.99.99/16\"),\n\t\t\tComment: pulumi.String(\"vmbr99 comment\"),\n\t\t\tPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ens18.99\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvlan99,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkVlan;\nimport com.pulumi.proxmoxve.Network.NetworkVlanArgs;\nimport com.pulumi.proxmoxve.Network.NetworkBridge;\nimport com.pulumi.proxmoxve.Network.NetworkBridgeArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vlan99 = new NetworkVlan(\"vlan99\", NetworkVlanArgs.builder()\n .nodeName(\"pve\")\n .build());\n\n //# or alternatively, use custom name:\n // name = \"vlan_lab\"\n // interface = \"eno0\"\n // vlan = 98\n var vmbr99 = new NetworkBridge(\"vmbr99\", NetworkBridgeArgs.builder()\n .nodeName(\"pve\")\n .address(\"99.99.99.99/16\")\n .comment(\"vmbr99 comment\")\n .ports(\"ens18.99\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(vlan99)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vmbr99:\n type: proxmoxve:Network:NetworkBridge\n properties:\n nodeName: pve\n address: 99.99.99.99/16\n comment: vmbr99 comment\n ports:\n - ens18.99\n options:\n dependsOn:\n - ${vlan99}\n vlan99:\n type: proxmoxve:Network:NetworkVlan\n properties:\n nodeName: pve\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\n#Interfaces can be imported using the `node_name:iface` format, e.g.\n\n```sh\n$ pulumi import proxmoxve:Network/networkBridge:NetworkBridge vmbr99 pve:vmbr99\n```\n\n","properties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Must be `vmbrN`, where N is a number between 0 and 9999.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"The interface bridge ports.\n"},"vlanAware":{"type":"boolean","description":"Whether the interface bridge is VLAN aware (defaults to `false`).\n"}},"required":["autostart","name","nodeName","vlanAware"],"inputProperties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Must be `vmbrN`, where N is a number between 0 and 9999.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"The interface bridge ports.\n"},"vlanAware":{"type":"boolean","description":"Whether the interface bridge is VLAN aware (defaults to `false`).\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkBridge resources.\n","properties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Must be `vmbrN`, where N is a number between 0 and 9999.\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"The interface bridge ports.\n"},"vlanAware":{"type":"boolean","description":"Whether the interface bridge is VLAN aware (defaults to `false`).\n"}},"type":"object"}},"proxmoxve:Network/networkVlan:NetworkVlan":{"description":"Manages a Linux VLAN network interface in a Proxmox VE node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\n// using VLAN tag\nconst vlan99 = new proxmoxve.network.NetworkVlan(\"vlan99\", {\n comment: \"VLAN 99\",\n nodeName: \"pve\",\n});\n// using custom network interface name\nconst vlan98 = new proxmoxve.network.NetworkVlan(\"vlan98\", {\n comment: \"VLAN 98\",\n \"interface\": \"eno0\",\n nodeName: \"pve\",\n vlan: 98,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\n# using VLAN tag\nvlan99 = proxmoxve.network.NetworkVlan(\"vlan99\",\n comment=\"VLAN 99\",\n node_name=\"pve\")\n# using custom network interface name\nvlan98 = proxmoxve.network.NetworkVlan(\"vlan98\",\n comment=\"VLAN 98\",\n interface=\"eno0\",\n node_name=\"pve\",\n vlan=98)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // using VLAN tag\n var vlan99 = new ProxmoxVE.Network.NetworkVlan(\"vlan99\", new()\n {\n Comment = \"VLAN 99\",\n NodeName = \"pve\",\n });\n\n // using custom network interface name\n var vlan98 = new ProxmoxVE.Network.NetworkVlan(\"vlan98\", new()\n {\n Comment = \"VLAN 98\",\n Interface = \"eno0\",\n NodeName = \"pve\",\n Vlan = 98,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// using VLAN tag\n\t\t_, err := Network.NewNetworkVlan(ctx, \"vlan99\", \u0026Network.NetworkVlanArgs{\n\t\t\tComment: pulumi.String(\"VLAN 99\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// using custom network interface name\n\t\t_, err = Network.NewNetworkVlan(ctx, \"vlan98\", \u0026Network.NetworkVlanArgs{\n\t\t\tComment: pulumi.String(\"VLAN 98\"),\n\t\t\tInterface: pulumi.String(\"eno0\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tVlan: pulumi.Int(98),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkVlan;\nimport com.pulumi.proxmoxve.Network.NetworkVlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // using VLAN tag\n var vlan99 = new NetworkVlan(\"vlan99\", NetworkVlanArgs.builder()\n .comment(\"VLAN 99\")\n .nodeName(\"pve\")\n .build());\n\n // using custom network interface name\n var vlan98 = new NetworkVlan(\"vlan98\", NetworkVlanArgs.builder()\n .comment(\"VLAN 98\")\n .interface_(\"eno0\")\n .nodeName(\"pve\")\n .vlan(98)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # using VLAN tag\n vlan99:\n type: proxmoxve:Network:NetworkVlan\n properties:\n comment: VLAN 99\n nodeName: pve\n # using custom network interface name\n vlan98:\n type: proxmoxve:Network:NetworkVlan\n properties:\n comment: VLAN 98\n interface: eno0\n nodeName: pve\n vlan: 98\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\n#Interfaces can be imported using the `node_name:iface` format, e.g.\n\n```sh\n$ pulumi import proxmoxve:Network/networkVlan:NetworkVlan vlan99 pve:vlan99\n```\n\n","properties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"interface":{"type":"string","description":"The VLAN raw device. See also `name`.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Either add the VLAN tag number to an existing interface name, e.g. `ens18.21` (and do not set `interface` and `vlan`), or use custom name, e.g. `vlan_lab` (`interface` and `vlan` are then required).\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"vlan":{"type":"integer","description":"The VLAN tag. See also `name`.\n"}},"required":["autostart","interface","name","nodeName","vlan"],"inputProperties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"interface":{"type":"string","description":"The VLAN raw device. See also `name`.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Either add the VLAN tag number to an existing interface name, e.g. `ens18.21` (and do not set `interface` and `vlan`), or use custom name, e.g. `vlan_lab` (`interface` and `vlan` are then required).\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"vlan":{"type":"integer","description":"The VLAN tag. See also `name`.\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkVlan resources.\n","properties":{"address":{"type":"string","description":"The interface IPv4/CIDR address.\n"},"address6":{"type":"string","description":"The interface IPv6/CIDR address.\n"},"autostart":{"type":"boolean","description":"Automatically start interface on boot (defaults to `true`).\n"},"comment":{"type":"string","description":"Comment for the interface.\n"},"gateway":{"type":"string","description":"Default gateway address.\n"},"gateway6":{"type":"string","description":"Default IPv6 gateway address.\n"},"interface":{"type":"string","description":"The VLAN raw device. See also `name`.\n"},"mtu":{"type":"integer","description":"The interface MTU.\n"},"name":{"type":"string","description":"The interface name. Either add the VLAN tag number to an existing interface name, e.g. `ens18.21` (and do not set `interface` and `vlan`), or use custom name, e.g. `vlan_lab` (`interface` and `vlan` are then required).\n"},"nodeName":{"type":"string","description":"The name of the node.\n"},"vlan":{"type":"integer","description":"The VLAN tag. See also `name`.\n"}},"type":"object"}},"proxmoxve:Permission/group:Group":{"description":"Manages a user group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst operationsTeam = new proxmoxve.permission.Group(\"operationsTeam\", {\n comment: \"Managed by Pulumi\",\n groupId: \"operations-team\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_team = proxmoxve.permission.Group(\"operationsTeam\",\n comment=\"Managed by Pulumi\",\n group_id=\"operations-team\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsTeam = new ProxmoxVE.Permission.Group(\"operationsTeam\", new()\n {\n Comment = \"Managed by Pulumi\",\n GroupId = \"operations-team\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.NewGroup(ctx, \"operationsTeam\", \u0026Permission.GroupArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tGroupId: pulumi.String(\"operations-team\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.Group;\nimport com.pulumi.proxmoxve.Permission.GroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var operationsTeam = new Group(\"operationsTeam\", GroupArgs.builder()\n .comment(\"Managed by Pulumi\")\n .groupId(\"operations-team\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n operationsTeam:\n type: proxmoxve:Permission:Group\n properties:\n comment: Managed by Pulumi\n groupId: operations-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `group_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Permission/group:Group operations_team operations-team\n```\n\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/GroupAcl:GroupAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The group comment.\n"},"groupId":{"type":"string","description":"The group identifier.\n"},"members":{"type":"array","items":{"type":"string"},"description":"The group members as a list of `username@realm` entries\n"}},"required":["groupId","members"],"inputProperties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/GroupAcl:GroupAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The group comment.\n"},"groupId":{"type":"string","description":"The group identifier.\n","willReplaceOnChanges":true}},"requiredInputs":["groupId"],"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/GroupAcl:GroupAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The group comment.\n"},"groupId":{"type":"string","description":"The group identifier.\n","willReplaceOnChanges":true},"members":{"type":"array","items":{"type":"string"},"description":"The group members as a list of `username@realm` entries\n"}},"type":"object"}},"proxmoxve:Permission/pool:Pool":{"description":"Manages a resource pool.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst operationsPool = new proxmoxve.permission.Pool(\"operationsPool\", {\n comment: \"Managed by Pulumi\",\n poolId: \"operations-pool\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_pool = proxmoxve.permission.Pool(\"operationsPool\",\n comment=\"Managed by Pulumi\",\n pool_id=\"operations-pool\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsPool = new ProxmoxVE.Permission.Pool(\"operationsPool\", new()\n {\n Comment = \"Managed by Pulumi\",\n PoolId = \"operations-pool\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.NewPool(ctx, \"operationsPool\", \u0026Permission.PoolArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tPoolId: pulumi.String(\"operations-pool\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.Pool;\nimport com.pulumi.proxmoxve.Permission.PoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var operationsPool = new Pool(\"operationsPool\", PoolArgs.builder()\n .comment(\"Managed by Pulumi\")\n .poolId(\"operations-pool\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n operationsPool:\n type: proxmoxve:Permission:Pool\n properties:\n comment: Managed by Pulumi\n poolId: operations-pool\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `pool_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Permission/pool:Pool operations_pool operations-pool\n```\n\n","properties":{"comment":{"type":"string","description":"The pool comment.\n"},"members":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/PoolMember:PoolMember"},"description":"The pool members.\n"},"poolId":{"type":"string","description":"The pool identifier.\n"}},"required":["members","poolId"],"inputProperties":{"comment":{"type":"string","description":"The pool comment.\n"},"poolId":{"type":"string","description":"The pool identifier.\n","willReplaceOnChanges":true}},"requiredInputs":["poolId"],"stateInputs":{"description":"Input properties used for looking up and filtering Pool resources.\n","properties":{"comment":{"type":"string","description":"The pool comment.\n"},"members":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/PoolMember:PoolMember"},"description":"The pool members.\n"},"poolId":{"type":"string","description":"The pool identifier.\n","willReplaceOnChanges":true}},"type":"object"}},"proxmoxve:Permission/role:Role":{"description":"Manages a role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst operationsMonitoring = new proxmoxve.permission.Role(\"operationsMonitoring\", {\n privileges: [\"VM.Monitor\"],\n roleId: \"operations-monitoring\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_monitoring = proxmoxve.permission.Role(\"operationsMonitoring\",\n privileges=[\"VM.Monitor\"],\n role_id=\"operations-monitoring\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsMonitoring = new ProxmoxVE.Permission.Role(\"operationsMonitoring\", new()\n {\n Privileges = new[]\n {\n \"VM.Monitor\",\n },\n RoleId = \"operations-monitoring\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.NewRole(ctx, \"operationsMonitoring\", \u0026Permission.RoleArgs{\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"VM.Monitor\"),\n\t\t\t},\n\t\t\tRoleId: pulumi.String(\"operations-monitoring\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.Role;\nimport com.pulumi.proxmoxve.Permission.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var operationsMonitoring = new Role(\"operationsMonitoring\", RoleArgs.builder()\n .privileges(\"VM.Monitor\")\n .roleId(\"operations-monitoring\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n operationsMonitoring:\n type: proxmoxve:Permission:Role\n properties:\n privileges:\n - VM.Monitor\n roleId: operations-monitoring\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `role_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Permission/role:Role operations_monitoring operations-monitoring\n```\n\n","properties":{"privileges":{"type":"array","items":{"type":"string"},"description":"The role privileges.\n"},"roleId":{"type":"string","description":"The role identifier.\n"}},"required":["privileges","roleId"],"inputProperties":{"privileges":{"type":"array","items":{"type":"string"},"description":"The role privileges.\n"},"roleId":{"type":"string","description":"The role identifier.\n","willReplaceOnChanges":true}},"requiredInputs":["privileges","roleId"],"stateInputs":{"description":"Input properties used for looking up and filtering Role resources.\n","properties":{"privileges":{"type":"array","items":{"type":"string"},"description":"The role privileges.\n"},"roleId":{"type":"string","description":"The role identifier.\n","willReplaceOnChanges":true}},"type":"object"}},"proxmoxve:Permission/user:User":{"description":"Manages a user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst operationsMonitoring = new proxmoxve.permission.Role(\"operationsMonitoring\", {\n roleId: \"operations-monitoring\",\n privileges: [\"VM.Monitor\"],\n});\nconst operationsAutomation = new proxmoxve.permission.User(\"operationsAutomation\", {\n acls: [{\n path: \"/vms/1234\",\n propagate: true,\n roleId: operationsMonitoring.roleId,\n }],\n comment: \"Managed by Pulumi\",\n password: \"a-strong-password\",\n userId: \"operations-automation@pve\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_monitoring = proxmoxve.permission.Role(\"operationsMonitoring\",\n role_id=\"operations-monitoring\",\n privileges=[\"VM.Monitor\"])\noperations_automation = proxmoxve.permission.User(\"operationsAutomation\",\n acls=[{\n \"path\": \"/vms/1234\",\n \"propagate\": True,\n \"role_id\": operations_monitoring.role_id,\n }],\n comment=\"Managed by Pulumi\",\n password=\"a-strong-password\",\n user_id=\"operations-automation@pve\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsMonitoring = new ProxmoxVE.Permission.Role(\"operationsMonitoring\", new()\n {\n RoleId = \"operations-monitoring\",\n Privileges = new[]\n {\n \"VM.Monitor\",\n },\n });\n\n var operationsAutomation = new ProxmoxVE.Permission.User(\"operationsAutomation\", new()\n {\n Acls = new[]\n {\n new ProxmoxVE.Permission.Inputs.UserAclArgs\n {\n Path = \"/vms/1234\",\n Propagate = true,\n RoleId = operationsMonitoring.RoleId,\n },\n },\n Comment = \"Managed by Pulumi\",\n Password = \"a-strong-password\",\n UserId = \"operations-automation@pve\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\toperationsMonitoring, err := Permission.NewRole(ctx, \"operationsMonitoring\", \u0026Permission.RoleArgs{\n\t\t\tRoleId: pulumi.String(\"operations-monitoring\"),\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"VM.Monitor\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Permission.NewUser(ctx, \"operationsAutomation\", \u0026Permission.UserArgs{\n\t\t\tAcls: permission.UserAclArray{\n\t\t\t\t\u0026permission.UserAclArgs{\n\t\t\t\t\tPath: pulumi.String(\"/vms/1234\"),\n\t\t\t\t\tPropagate: pulumi.Bool(true),\n\t\t\t\t\tRoleId: operationsMonitoring.RoleId,\n\t\t\t\t},\n\t\t\t},\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tPassword: pulumi.String(\"a-strong-password\"),\n\t\t\tUserId: pulumi.String(\"operations-automation@pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.Role;\nimport com.pulumi.proxmoxve.Permission.RoleArgs;\nimport com.pulumi.proxmoxve.Permission.User;\nimport com.pulumi.proxmoxve.Permission.UserArgs;\nimport com.pulumi.proxmoxve.Permission.inputs.UserAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var operationsMonitoring = new Role(\"operationsMonitoring\", RoleArgs.builder()\n .roleId(\"operations-monitoring\")\n .privileges(\"VM.Monitor\")\n .build());\n\n var operationsAutomation = new User(\"operationsAutomation\", UserArgs.builder()\n .acls(UserAclArgs.builder()\n .path(\"/vms/1234\")\n .propagate(true)\n .roleId(operationsMonitoring.roleId())\n .build())\n .comment(\"Managed by Pulumi\")\n .password(\"a-strong-password\")\n .userId(\"operations-automation@pve\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n operationsAutomation:\n type: proxmoxve:Permission:User\n properties:\n acls:\n - path: /vms/1234\n propagate: true\n roleId: ${operationsMonitoring.roleId}\n comment: Managed by Pulumi\n password: a-strong-password\n userId: operations-automation@pve\n operationsMonitoring:\n type: proxmoxve:Permission:Role\n properties:\n roleId: operations-monitoring\n privileges:\n - VM.Monitor\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `user_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Permission/user:User operations_automation operations-automation@pve\n```\n\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/UserAcl:UserAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The user comment.\n"},"email":{"type":"string","description":"The user's email address.\n"},"enabled":{"type":"boolean","description":"Whether the user account is enabled.\n"},"expirationDate":{"type":"string","description":"The user account's expiration date (RFC 3339).\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"groups":{"type":"array","items":{"type":"string"},"description":"The user's groups.\n"},"keys":{"type":"string","description":"The user's keys.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"password":{"type":"string","description":"The user's password. Required for PVE or PAM realms.\n","secret":true},"userId":{"type":"string","description":"The user identifier.\n"}},"required":["userId"],"inputProperties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/UserAcl:UserAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The user comment.\n"},"email":{"type":"string","description":"The user's email address.\n"},"enabled":{"type":"boolean","description":"Whether the user account is enabled.\n"},"expirationDate":{"type":"string","description":"The user account's expiration date (RFC 3339).\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"groups":{"type":"array","items":{"type":"string"},"description":"The user's groups.\n"},"keys":{"type":"string","description":"The user's keys.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"password":{"type":"string","description":"The user's password. Required for PVE or PAM realms.\n","secret":true},"userId":{"type":"string","description":"The user identifier.\n","willReplaceOnChanges":true}},"requiredInputs":["userId"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/UserAcl:UserAcl"},"description":"The access control list (multiple blocks supported).\n"},"comment":{"type":"string","description":"The user comment.\n"},"email":{"type":"string","description":"The user's email address.\n"},"enabled":{"type":"boolean","description":"Whether the user account is enabled.\n"},"expirationDate":{"type":"string","description":"The user account's expiration date (RFC 3339).\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"groups":{"type":"array","items":{"type":"string"},"description":"The user's groups.\n"},"keys":{"type":"string","description":"The user's keys.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"password":{"type":"string","description":"The user's password. Required for PVE or PAM realms.\n","secret":true},"userId":{"type":"string","description":"The user identifier.\n","willReplaceOnChanges":true}},"type":"object"}},"proxmoxve:Storage/file:File":{"description":"Use this resource to upload files to a Proxmox VE node. The file can be a backup, an ISO image, a snippet, or a container template depending on the `content_type` attribute.\n\n## Example Usage\n\n### Backups (`dump`)\n\n\u003e The resource with this content type uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section.\n\n\u003e The provider currently does not support restoring backups. You can use the Proxmox VE web interface or the `qmrestore` / `pct restore` command to restore VM / Container from a backup.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst backup = new proxmoxve.storage.File(\"backup\", {\n contentType: \"dump\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n sourceFile: {\n path: \"vzdump-lxc-100-2023_11_08-23_10_05.tar\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nbackup = proxmoxve.storage.File(\"backup\",\n content_type=\"dump\",\n datastore_id=\"local\",\n node_name=\"pve\",\n source_file={\n \"path\": \"vzdump-lxc-100-2023_11_08-23_10_05.tar\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var backup = new ProxmoxVE.Storage.File(\"backup\", new()\n {\n ContentType = \"dump\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n SourceFile = new ProxmoxVE.Storage.Inputs.FileSourceFileArgs\n {\n Path = \"vzdump-lxc-100-2023_11_08-23_10_05.tar\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Storage.NewFile(ctx, \"backup\", \u0026Storage.FileArgs{\n\t\t\tContentType: pulumi.String(\"dump\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tSourceFile: \u0026storage.FileSourceFileArgs{\n\t\t\t\tPath: pulumi.String(\"vzdump-lxc-100-2023_11_08-23_10_05.tar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Storage.File;\nimport com.pulumi.proxmoxve.Storage.FileArgs;\nimport com.pulumi.proxmoxve.Storage.inputs.FileSourceFileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var backup = new File(\"backup\", FileArgs.builder()\n .contentType(\"dump\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .sourceFile(FileSourceFileArgs.builder()\n .path(\"vzdump-lxc-100-2023_11_08-23_10_05.tar\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n backup:\n type: proxmoxve:Storage:File\n properties:\n contentType: dump\n datastoreId: local\n nodeName: pve\n sourceFile:\n path: vzdump-lxc-100-2023_11_08-23_10_05.tar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Images\n\n\u003e Consider using `proxmoxve.Download.File` resource instead. Using this resource for images is less efficient (requires to transfer uploaded image to node) though still supported.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst ubuntuContainerTemplate = new proxmoxve.storage.File(\"ubuntuContainerTemplate\", {\n contentType: \"iso\",\n datastoreId: \"local\",\n nodeName: \"pve\",\n sourceFile: {\n path: \"https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nubuntu_container_template = proxmoxve.storage.File(\"ubuntuContainerTemplate\",\n content_type=\"iso\",\n datastore_id=\"local\",\n node_name=\"pve\",\n source_file={\n \"path\": \"https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ubuntuContainerTemplate = new ProxmoxVE.Storage.File(\"ubuntuContainerTemplate\", new()\n {\n ContentType = \"iso\",\n DatastoreId = \"local\",\n NodeName = \"pve\",\n SourceFile = new ProxmoxVE.Storage.Inputs.FileSourceFileArgs\n {\n Path = \"https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Storage.NewFile(ctx, \"ubuntuContainerTemplate\", \u0026Storage.FileArgs{\n\t\t\tContentType: pulumi.String(\"iso\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tSourceFile: \u0026storage.FileSourceFileArgs{\n\t\t\t\tPath: pulumi.String(\"https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Storage.File;\nimport com.pulumi.proxmoxve.Storage.FileArgs;\nimport com.pulumi.proxmoxve.Storage.inputs.FileSourceFileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ubuntuContainerTemplate = new File(\"ubuntuContainerTemplate\", FileArgs.builder()\n .contentType(\"iso\")\n .datastoreId(\"local\")\n .nodeName(\"pve\")\n .sourceFile(FileSourceFileArgs.builder()\n .path(\"https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ubuntuContainerTemplate:\n type: proxmoxve:Storage:File\n properties:\n contentType: iso\n datastoreId: local\n nodeName: pve\n sourceFile:\n path: https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Container Template (`vztmpl`)\n\n\u003e Consider using `proxmoxve.Download.File` resource instead. Using this resource for container images is less efficient (requires to transfer uploaded image to node) though still supported.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst ubuntuContainerTemplate = new proxmoxve.storage.File(\"ubuntuContainerTemplate\", {\n contentType: \"vztmpl\",\n datastoreId: \"local\",\n nodeName: \"first-node\",\n sourceFile: {\n path: \"https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nubuntu_container_template = proxmoxve.storage.File(\"ubuntuContainerTemplate\",\n content_type=\"vztmpl\",\n datastore_id=\"local\",\n node_name=\"first-node\",\n source_file={\n \"path\": \"https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ubuntuContainerTemplate = new ProxmoxVE.Storage.File(\"ubuntuContainerTemplate\", new()\n {\n ContentType = \"vztmpl\",\n DatastoreId = \"local\",\n NodeName = \"first-node\",\n SourceFile = new ProxmoxVE.Storage.Inputs.FileSourceFileArgs\n {\n Path = \"https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Storage.NewFile(ctx, \"ubuntuContainerTemplate\", \u0026Storage.FileArgs{\n\t\t\tContentType: pulumi.String(\"vztmpl\"),\n\t\t\tDatastoreId: pulumi.String(\"local\"),\n\t\t\tNodeName: pulumi.String(\"first-node\"),\n\t\t\tSourceFile: \u0026storage.FileSourceFileArgs{\n\t\t\t\tPath: pulumi.String(\"https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Storage.File;\nimport com.pulumi.proxmoxve.Storage.FileArgs;\nimport com.pulumi.proxmoxve.Storage.inputs.FileSourceFileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ubuntuContainerTemplate = new File(\"ubuntuContainerTemplate\", FileArgs.builder()\n .contentType(\"vztmpl\")\n .datastoreId(\"local\")\n .nodeName(\"first-node\")\n .sourceFile(FileSourceFileArgs.builder()\n .path(\"https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ubuntuContainerTemplate:\n type: proxmoxve:Storage:File\n properties:\n contentType: vztmpl\n datastoreId: local\n nodeName: first-node\n sourceFile:\n path: https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Important Notes\n\nThe Proxmox VE API endpoint for file uploads does not support chunked transfer\nencoding, which means that we must first store the source file as a temporary\nfile locally before uploading it.\n\nYou must ensure that you have at least `Size-in-MB * 2 + 1` MB of storage space\navailable (twice the size plus overhead because a multipart payload needs to be\ncreated as another temporary file).\n\nBy default, if the specified file already exists, the resource will\nunconditionally replace it and take ownership of the resource. On destruction,\nthe file will be deleted as if it did not exist before. If you want to prevent\nthe resource from replacing the file, set `overwrite` to `false`.\n\n## Import\n\nInstances can be imported using the `node_name`, `datastore_id`, `content_type`\n\nand the `file_name` in the following format:\n\ntext\n\nnode_name:datastore_id/content_type/file_name\n\nExample:\n\nbash\n\n```sh\n$ pulumi import proxmoxve:Storage/file:File cloud_config pve/local:snippets/example.cloud-config.yaml\n```\n\n","properties":{"contentType":{"type":"string","description":"The content type. If not specified, the content\ntype will be inferred from the file extension. Valid values are:\n"},"datastoreId":{"type":"string","description":"The datastore id.\n"},"fileMode":{"type":"string","description":"The file mode in octal format, e.g. `0700` or `600`. Note that the prefixes `0o` and `0x` is not supported! Setting this attribute is also only allowed for `root@pam` authenticated user.\n"},"fileModificationDate":{"type":"string","description":"The file modification date (RFC 3339).\n"},"fileName":{"type":"string","description":"The file name.\n"},"fileSize":{"type":"integer","description":"The file size in bytes.\n"},"fileTag":{"type":"string","description":"The file tag.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing file (defaults to\n`true`).\n"},"sourceFile":{"$ref":"#/types/proxmoxve:Storage/FileSourceFile:FileSourceFile","description":"The source file (conflicts with `source_raw`),\ncould be a local file or a URL. If the source file is a URL, the file will\nbe downloaded and stored locally before uploading it to Proxmox VE.\n"},"sourceRaw":{"$ref":"#/types/proxmoxve:Storage/FileSourceRaw:FileSourceRaw","description":"The raw source (conflicts with `source_file`).\n"},"timeoutUpload":{"type":"integer","description":"Timeout for uploading ISO/VSTMPL files in\nseconds (defaults to 1800).\n"}},"required":["contentType","datastoreId","fileModificationDate","fileName","fileSize","fileTag","nodeName"],"inputProperties":{"contentType":{"type":"string","description":"The content type. If not specified, the content\ntype will be inferred from the file extension. Valid values are:\n","willReplaceOnChanges":true},"datastoreId":{"type":"string","description":"The datastore id.\n","willReplaceOnChanges":true},"fileMode":{"type":"string","description":"The file mode in octal format, e.g. `0700` or `600`. Note that the prefixes `0o` and `0x` is not supported! Setting this attribute is also only allowed for `root@pam` authenticated user.\n","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The node name.\n","willReplaceOnChanges":true},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing file (defaults to\n`true`).\n"},"sourceFile":{"$ref":"#/types/proxmoxve:Storage/FileSourceFile:FileSourceFile","description":"The source file (conflicts with `source_raw`),\ncould be a local file or a URL. If the source file is a URL, the file will\nbe downloaded and stored locally before uploading it to Proxmox VE.\n","willReplaceOnChanges":true},"sourceRaw":{"$ref":"#/types/proxmoxve:Storage/FileSourceRaw:FileSourceRaw","description":"The raw source (conflicts with `source_file`).\n","willReplaceOnChanges":true},"timeoutUpload":{"type":"integer","description":"Timeout for uploading ISO/VSTMPL files in\nseconds (defaults to 1800).\n"}},"requiredInputs":["datastoreId","nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering File resources.\n","properties":{"contentType":{"type":"string","description":"The content type. If not specified, the content\ntype will be inferred from the file extension. Valid values are:\n","willReplaceOnChanges":true},"datastoreId":{"type":"string","description":"The datastore id.\n","willReplaceOnChanges":true},"fileMode":{"type":"string","description":"The file mode in octal format, e.g. `0700` or `600`. Note that the prefixes `0o` and `0x` is not supported! Setting this attribute is also only allowed for `root@pam` authenticated user.\n","willReplaceOnChanges":true},"fileModificationDate":{"type":"string","description":"The file modification date (RFC 3339).\n","willReplaceOnChanges":true},"fileName":{"type":"string","description":"The file name.\n"},"fileSize":{"type":"integer","description":"The file size in bytes.\n","willReplaceOnChanges":true},"fileTag":{"type":"string","description":"The file tag.\n","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The node name.\n","willReplaceOnChanges":true},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing file (defaults to\n`true`).\n"},"sourceFile":{"$ref":"#/types/proxmoxve:Storage/FileSourceFile:FileSourceFile","description":"The source file (conflicts with `source_raw`),\ncould be a local file or a URL. If the source file is a URL, the file will\nbe downloaded and stored locally before uploading it to Proxmox VE.\n","willReplaceOnChanges":true},"sourceRaw":{"$ref":"#/types/proxmoxve:Storage/FileSourceRaw:FileSourceRaw","description":"The raw source (conflicts with `source_file`).\n","willReplaceOnChanges":true},"timeoutUpload":{"type":"integer","description":"Timeout for uploading ISO/VSTMPL files in\nseconds (defaults to 1800).\n"}},"type":"object"}},"proxmoxve:User/token:Token":{"description":"User API tokens.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\n// if creating a user token, the user must be created first\nconst user = new proxmoxve.permission.User(\"user\", {\n comment: \"Managed by Pulumi\",\n email: \"user@pve\",\n enabled: true,\n expirationDate: \"2034-01-01T22:00:00Z\",\n userId: \"user@pve\",\n});\nconst userToken = new proxmoxve.user.Token(\"userToken\", {\n comment: \"Managed by Pulumi\",\n expirationDate: \"2033-01-01T22:00:00Z\",\n tokenName: \"tk1\",\n userId: user.userId,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\n# if creating a user token, the user must be created first\nuser = proxmoxve.permission.User(\"user\",\n comment=\"Managed by Pulumi\",\n email=\"user@pve\",\n enabled=True,\n expiration_date=\"2034-01-01T22:00:00Z\",\n user_id=\"user@pve\")\nuser_token = proxmoxve.user.Token(\"userToken\",\n comment=\"Managed by Pulumi\",\n expiration_date=\"2033-01-01T22:00:00Z\",\n token_name=\"tk1\",\n user_id=user.user_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // if creating a user token, the user must be created first\n var user = new ProxmoxVE.Permission.User(\"user\", new()\n {\n Comment = \"Managed by Pulumi\",\n Email = \"user@pve\",\n Enabled = true,\n ExpirationDate = \"2034-01-01T22:00:00Z\",\n UserId = \"user@pve\",\n });\n\n var userToken = new ProxmoxVE.User.Token(\"userToken\", new()\n {\n Comment = \"Managed by Pulumi\",\n ExpirationDate = \"2033-01-01T22:00:00Z\",\n TokenName = \"tk1\",\n UserId = user.UserId,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/User\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// if creating a user token, the user must be created first\n\t\tuser, err := Permission.NewUser(ctx, \"user\", \u0026Permission.UserArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tEmail: pulumi.String(\"user@pve\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tExpirationDate: pulumi.String(\"2034-01-01T22:00:00Z\"),\n\t\t\tUserId: pulumi.String(\"user@pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = User.NewToken(ctx, \"userToken\", \u0026User.TokenArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tExpirationDate: pulumi.String(\"2033-01-01T22:00:00Z\"),\n\t\t\tTokenName: pulumi.String(\"tk1\"),\n\t\t\tUserId: user.UserId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.User;\nimport com.pulumi.proxmoxve.Permission.UserArgs;\nimport com.pulumi.proxmoxve.User.Token;\nimport com.pulumi.proxmoxve.User.TokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // if creating a user token, the user must be created first\n var user = new User(\"user\", UserArgs.builder()\n .comment(\"Managed by Pulumi\")\n .email(\"user@pve\")\n .enabled(true)\n .expirationDate(\"2034-01-01T22:00:00Z\")\n .userId(\"user@pve\")\n .build());\n\n var userToken = new Token(\"userToken\", TokenArgs.builder()\n .comment(\"Managed by Pulumi\")\n .expirationDate(\"2033-01-01T22:00:00Z\")\n .tokenName(\"tk1\")\n .userId(user.userId())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # if creating a user token, the user must be created first\n user:\n type: proxmoxve:Permission:User\n properties:\n comment: Managed by Pulumi\n email: user@pve\n enabled: true\n expirationDate: 2034-01-01T22:00:00Z\n userId: user@pve\n userToken:\n type: proxmoxve:User:Token\n properties:\n comment: Managed by Pulumi\n expirationDate: 2033-01-01T22:00:00Z\n tokenName: tk1\n userId: ${user.userId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\n#Tokens can be imported using they identifiers in format `user_id!token_name` format, e.g.:\n\n```sh\n$ pulumi import proxmoxve:User/token:Token token1 user@pve!token1\n```\n\n","properties":{"comment":{"type":"string","description":"Comment for the token.\n"},"expirationDate":{"type":"string","description":"Expiration date for the token.\n"},"privilegesSeparation":{"type":"boolean","description":"Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.\n"},"tokenName":{"type":"string","description":"User-specific token identifier.\n"},"userId":{"type":"string","description":"User identifier.\n"},"value":{"type":"string","description":"API token value used for authentication. It is populated only when creating a new token, and can't be retrieved at import.\n","secret":true}},"required":["privilegesSeparation","tokenName","userId","value"],"inputProperties":{"comment":{"type":"string","description":"Comment for the token.\n"},"expirationDate":{"type":"string","description":"Expiration date for the token.\n"},"privilegesSeparation":{"type":"boolean","description":"Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.\n"},"tokenName":{"type":"string","description":"User-specific token identifier.\n"},"userId":{"type":"string","description":"User identifier.\n"}},"requiredInputs":["tokenName","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering Token resources.\n","properties":{"comment":{"type":"string","description":"Comment for the token.\n"},"expirationDate":{"type":"string","description":"Expiration date for the token.\n"},"privilegesSeparation":{"type":"boolean","description":"Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.\n"},"tokenName":{"type":"string","description":"User-specific token identifier.\n"},"userId":{"type":"string","description":"User identifier.\n"},"value":{"type":"string","description":"API token value used for authentication. It is populated only when creating a new token, and can't be retrieved at import.\n","secret":true}},"type":"object"}},"proxmoxve:VM/virtualMachine2:VirtualMachine2":{"description":"!\u003e **DO NOT USE**\nThis is an experimental implementation of a Proxmox VM resource using Plugin Framework.\u003cbr\u003e\u003cbr\u003eIt is a Proof of Concept, highly experimental and **will** change in future. It does not support all features of the Proxmox API for VMs and **MUST NOT** be used in production.\n\n\u003e Many attributes are marked as **optional** _and_ **computed** in the schema,\nhence you may seem added to the plan with \"(known after apply)\" status, even if they are not set in the configuration.\nThis is done to support the `clone` operation, when a VM is created from an existing VM or template,\nand the source attributes are copied to the clone.\u003cbr\u003e\u003cbr\u003e\nComputed attributes allow the provider to set those attributes without user input.\nThe attributes are also marked as optional to allow the practitioner to set (or overwrite) them if needed.\n","properties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cdrom:VirtualMachine2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Clone:VirtualMachine2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cpu:VirtualMachine2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Timeouts:VirtualMachine2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Vga:VirtualMachine2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"required":["cdrom","cpu","name","nodeName","stopOnDestroy","tags","vga"],"inputProperties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cdrom:VirtualMachine2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Clone:VirtualMachine2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cpu:VirtualMachine2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Timeouts:VirtualMachine2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Vga:VirtualMachine2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering VirtualMachine2 resources.\n","properties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cdrom:VirtualMachine2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Clone:VirtualMachine2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Cpu:VirtualMachine2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Timeouts:VirtualMachine2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachine2Vga:VirtualMachine2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"type":"object"},"aliases":[{"type":"proxmoxve:index/vm2:Vm2"}]},"proxmoxve:VM/virtualMachine:VirtualMachine":{"description":"Manages a virtual machine.\n\n\u003e This resource uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section.\n\n## Import\n\nInstances can be imported using the `node_name` and the `vm_id`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:VM/virtualMachine:VirtualMachine ubuntu_vm first-node/4321\n```\n\n","properties":{"acpi":{"type":"boolean","description":"Whether to enable ACPI (defaults to `true`).\n"},"agent":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAgent:VirtualMachineAgent","description":"The QEMU agent configuration.\n"},"audioDevice":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAudioDevice:VirtualMachineAudioDevice","description":"An audio device.\n"},"bios":{"type":"string","description":"The BIOS implementation (defaults to `seabios`).\n"},"bootOrders":{"type":"array","items":{"type":"string"},"description":"Specify a list of devices to boot from in the order\nthey appear in the list (defaults to `[]`).\n"},"cdrom":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCdrom:VirtualMachineCdrom","description":"The CDROM configuration.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachineClone:VirtualMachineClone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCpu:VirtualMachineCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disks":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineDisk:VirtualMachineDisk"},"description":"A disk (multiple blocks supported).\n"},"efiDisk":{"$ref":"#/types/proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk","description":"The efi disk device (required if `bios` is set\nto `ovmf`)\n"},"hookScriptFileId":{"type":"string","description":"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).\n"},"hostpcis":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineHostpci:VirtualMachineHostpci"},"description":"A host PCI device mapping (multiple blocks supported).\n"},"initialization":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitialization:VirtualMachineInitialization","description":"The cloud-init configuration.\n"},"ipv4Addresses":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The IPv4 addresses per network interface published by the\nQEMU agent (empty list when `agent.enabled` is `false`)\n"},"ipv6Addresses":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The IPv6 addresses per network interface published by the\nQEMU agent (empty list when `agent.enabled` is `false`)\n"},"keyboardLayout":{"type":"string","description":"The keyboard layout (defaults to `en-us`).\n"},"kvmArguments":{"type":"string","description":"Arbitrary arguments passed to kvm.\n"},"macAddresses":{"type":"array","items":{"type":"string"},"description":"The MAC addresses published by the QEMU agent with fallback\nto the network device configuration, if the agent is disabled\n"},"machine":{"type":"string","description":"The VM machine type (defaults to `pc`).\n"},"memory":{"$ref":"#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory","description":"The memory configuration.\n"},"migrate":{"type":"boolean","description":"Migrate the VM on node change instead of re-creating\nit (defaults to `false`).\n"},"name":{"type":"string","description":"The virtual machine name.\n"},"networkDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNetworkDevice:VirtualMachineNetworkDevice"},"description":"A network device (multiple blocks supported).\n"},"networkInterfaceNames":{"type":"array","items":{"type":"string"},"description":"The network interface names published by the QEMU\nagent (empty list when `agent.enabled` is `false`)\n"},"nodeName":{"type":"string","description":"The name of the node to assign the virtual machine\nto.\n"},"numas":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNuma:VirtualMachineNuma"},"description":"The NUMA configuration.\n"},"onBoot":{"type":"boolean","description":"Specifies whether a VM will be started during system\nboot. (defaults to `true`)\n"},"operatingSystem":{"$ref":"#/types/proxmoxve:VM/VirtualMachineOperatingSystem:VirtualMachineOperatingSystem","description":"The Operating System configuration.\n"},"poolId":{"type":"string","description":"The identifier for a pool to assign the virtual machine to.\n"},"protection":{"type":"boolean","description":"Sets the protection flag of the VM. This will disable the remove VM and remove disk operations (defaults to `false`).\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults to `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults to\n`virtio-scsi-pci`).\n"},"serialDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSerialDevice:VirtualMachineSerialDevice"},"description":"A serial device (multiple blocks supported).\n"},"smbios":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSmbios:VirtualMachineSmbios","description":"The SMBIOS (type1) settings for the VM.\n"},"started":{"type":"boolean","description":"Whether to start the virtual machine (defaults\nto `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:VM/VirtualMachineStartup:VirtualMachineStartup","description":"Defines startup and shutdown behavior of the VM.\n"},"stopOnDestroy":{"type":"boolean","description":"Whether to stop rather than shutdown on VM destroy (defaults to `false`)\n"},"tabletDevice":{"type":"boolean","description":"Whether to enable the USB tablet device (defaults\nto `true`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags of the VM. This is only meta information (\ndefaults to `[]`). Note: Proxmox always sorts the VM tags. If the list in\ntemplate is not sorted, then Proxmox will always report a difference on the\nresource. You may use the `ignore_changes` lifecycle meta-argument to ignore\nchanges to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n"},"timeoutClone":{"type":"integer","description":"Timeout for cloning a VM in seconds (defaults to\n1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a VM in seconds (defaults to\n1800).\n"},"timeoutMigrate":{"type":"integer","description":"Timeout for migrating the VM (defaults to\n1800).\n"},"timeoutMoveDisk":{"type":"integer","description":"MoveDisk timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (timeout_create / timeout_clone / timeout_migrate) is used instead."},"timeoutReboot":{"type":"integer","description":"Timeout for rebooting a VM in seconds (defaults\nto 1800).\n"},"timeoutShutdownVm":{"type":"integer","description":"Timeout for shutting down a VM in seconds (\ndefaults to 1800).\n"},"timeoutStartVm":{"type":"integer","description":"Timeout for starting a VM in seconds (defaults\nto 1800).\n"},"timeoutStopVm":{"type":"integer","description":"Timeout for stopping a VM in seconds (defaults\nto 300).\n"},"tpmState":{"$ref":"#/types/proxmoxve:VM/VirtualMachineTpmState:VirtualMachineTpmState","description":"The TPM state device.\n"},"usbs":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineUsb:VirtualMachineUsb"},"description":"A host USB device mapping (multiple blocks supported).\n"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachineVga:VirtualMachineVga","description":"The VGA configuration.\n"},"vmId":{"type":"integer","description":"The VM identifier.\n"},"watchdog":{"$ref":"#/types/proxmoxve:VM/VirtualMachineWatchdog:VirtualMachineWatchdog","description":"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).\n"}},"required":["ipv4Addresses","ipv6Addresses","macAddresses","name","networkInterfaceNames","nodeName","vmId"],"inputProperties":{"acpi":{"type":"boolean","description":"Whether to enable ACPI (defaults to `true`).\n"},"agent":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAgent:VirtualMachineAgent","description":"The QEMU agent configuration.\n"},"audioDevice":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAudioDevice:VirtualMachineAudioDevice","description":"An audio device.\n"},"bios":{"type":"string","description":"The BIOS implementation (defaults to `seabios`).\n"},"bootOrders":{"type":"array","items":{"type":"string"},"description":"Specify a list of devices to boot from in the order\nthey appear in the list (defaults to `[]`).\n"},"cdrom":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCdrom:VirtualMachineCdrom","description":"The CDROM configuration.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachineClone:VirtualMachineClone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCpu:VirtualMachineCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disks":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineDisk:VirtualMachineDisk"},"description":"A disk (multiple blocks supported).\n"},"efiDisk":{"$ref":"#/types/proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk","description":"The efi disk device (required if `bios` is set\nto `ovmf`)\n","willReplaceOnChanges":true},"hookScriptFileId":{"type":"string","description":"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).\n"},"hostpcis":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineHostpci:VirtualMachineHostpci"},"description":"A host PCI device mapping (multiple blocks supported).\n"},"initialization":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitialization:VirtualMachineInitialization","description":"The cloud-init configuration.\n"},"keyboardLayout":{"type":"string","description":"The keyboard layout (defaults to `en-us`).\n"},"kvmArguments":{"type":"string","description":"Arbitrary arguments passed to kvm.\n"},"macAddresses":{"type":"array","items":{"type":"string"},"description":"The MAC addresses published by the QEMU agent with fallback\nto the network device configuration, if the agent is disabled\n"},"machine":{"type":"string","description":"The VM machine type (defaults to `pc`).\n"},"memory":{"$ref":"#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory","description":"The memory configuration.\n"},"migrate":{"type":"boolean","description":"Migrate the VM on node change instead of re-creating\nit (defaults to `false`).\n"},"name":{"type":"string","description":"The virtual machine name.\n"},"networkDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNetworkDevice:VirtualMachineNetworkDevice"},"description":"A network device (multiple blocks supported).\n"},"nodeName":{"type":"string","description":"The name of the node to assign the virtual machine\nto.\n"},"numas":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNuma:VirtualMachineNuma"},"description":"The NUMA configuration.\n"},"onBoot":{"type":"boolean","description":"Specifies whether a VM will be started during system\nboot. (defaults to `true`)\n"},"operatingSystem":{"$ref":"#/types/proxmoxve:VM/VirtualMachineOperatingSystem:VirtualMachineOperatingSystem","description":"The Operating System configuration.\n"},"poolId":{"type":"string","description":"The identifier for a pool to assign the virtual machine to.\n"},"protection":{"type":"boolean","description":"Sets the protection flag of the VM. This will disable the remove VM and remove disk operations (defaults to `false`).\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults to `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults to\n`virtio-scsi-pci`).\n"},"serialDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSerialDevice:VirtualMachineSerialDevice"},"description":"A serial device (multiple blocks supported).\n"},"smbios":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSmbios:VirtualMachineSmbios","description":"The SMBIOS (type1) settings for the VM.\n"},"started":{"type":"boolean","description":"Whether to start the virtual machine (defaults\nto `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:VM/VirtualMachineStartup:VirtualMachineStartup","description":"Defines startup and shutdown behavior of the VM.\n"},"stopOnDestroy":{"type":"boolean","description":"Whether to stop rather than shutdown on VM destroy (defaults to `false`)\n"},"tabletDevice":{"type":"boolean","description":"Whether to enable the USB tablet device (defaults\nto `true`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags of the VM. This is only meta information (\ndefaults to `[]`). Note: Proxmox always sorts the VM tags. If the list in\ntemplate is not sorted, then Proxmox will always report a difference on the\nresource. You may use the `ignore_changes` lifecycle meta-argument to ignore\nchanges to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n","willReplaceOnChanges":true},"timeoutClone":{"type":"integer","description":"Timeout for cloning a VM in seconds (defaults to\n1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a VM in seconds (defaults to\n1800).\n"},"timeoutMigrate":{"type":"integer","description":"Timeout for migrating the VM (defaults to\n1800).\n"},"timeoutMoveDisk":{"type":"integer","description":"MoveDisk timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (timeout_create / timeout_clone / timeout_migrate) is used instead."},"timeoutReboot":{"type":"integer","description":"Timeout for rebooting a VM in seconds (defaults\nto 1800).\n"},"timeoutShutdownVm":{"type":"integer","description":"Timeout for shutting down a VM in seconds (\ndefaults to 1800).\n"},"timeoutStartVm":{"type":"integer","description":"Timeout for starting a VM in seconds (defaults\nto 1800).\n"},"timeoutStopVm":{"type":"integer","description":"Timeout for stopping a VM in seconds (defaults\nto 300).\n"},"tpmState":{"$ref":"#/types/proxmoxve:VM/VirtualMachineTpmState:VirtualMachineTpmState","description":"The TPM state device.\n","willReplaceOnChanges":true},"usbs":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineUsb:VirtualMachineUsb"},"description":"A host USB device mapping (multiple blocks supported).\n"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachineVga:VirtualMachineVga","description":"The VGA configuration.\n"},"vmId":{"type":"integer","description":"The VM identifier.\n"},"watchdog":{"$ref":"#/types/proxmoxve:VM/VirtualMachineWatchdog:VirtualMachineWatchdog","description":"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).\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering VirtualMachine resources.\n","properties":{"acpi":{"type":"boolean","description":"Whether to enable ACPI (defaults to `true`).\n"},"agent":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAgent:VirtualMachineAgent","description":"The QEMU agent configuration.\n"},"audioDevice":{"$ref":"#/types/proxmoxve:VM/VirtualMachineAudioDevice:VirtualMachineAudioDevice","description":"An audio device.\n"},"bios":{"type":"string","description":"The BIOS implementation (defaults to `seabios`).\n"},"bootOrders":{"type":"array","items":{"type":"string"},"description":"Specify a list of devices to boot from in the order\nthey appear in the list (defaults to `[]`).\n"},"cdrom":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCdrom:VirtualMachineCdrom","description":"The CDROM configuration.\n"},"clone":{"$ref":"#/types/proxmoxve:VM/VirtualMachineClone:VirtualMachineClone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:VM/VirtualMachineCpu:VirtualMachineCpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description.\n"},"disks":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineDisk:VirtualMachineDisk"},"description":"A disk (multiple blocks supported).\n"},"efiDisk":{"$ref":"#/types/proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk","description":"The efi disk device (required if `bios` is set\nto `ovmf`)\n","willReplaceOnChanges":true},"hookScriptFileId":{"type":"string","description":"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).\n"},"hostpcis":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineHostpci:VirtualMachineHostpci"},"description":"A host PCI device mapping (multiple blocks supported).\n"},"initialization":{"$ref":"#/types/proxmoxve:VM/VirtualMachineInitialization:VirtualMachineInitialization","description":"The cloud-init configuration.\n"},"ipv4Addresses":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The IPv4 addresses per network interface published by the\nQEMU agent (empty list when `agent.enabled` is `false`)\n"},"ipv6Addresses":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The IPv6 addresses per network interface published by the\nQEMU agent (empty list when `agent.enabled` is `false`)\n"},"keyboardLayout":{"type":"string","description":"The keyboard layout (defaults to `en-us`).\n"},"kvmArguments":{"type":"string","description":"Arbitrary arguments passed to kvm.\n"},"macAddresses":{"type":"array","items":{"type":"string"},"description":"The MAC addresses published by the QEMU agent with fallback\nto the network device configuration, if the agent is disabled\n"},"machine":{"type":"string","description":"The VM machine type (defaults to `pc`).\n"},"memory":{"$ref":"#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory","description":"The memory configuration.\n"},"migrate":{"type":"boolean","description":"Migrate the VM on node change instead of re-creating\nit (defaults to `false`).\n"},"name":{"type":"string","description":"The virtual machine name.\n"},"networkDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNetworkDevice:VirtualMachineNetworkDevice"},"description":"A network device (multiple blocks supported).\n"},"networkInterfaceNames":{"type":"array","items":{"type":"string"},"description":"The network interface names published by the QEMU\nagent (empty list when `agent.enabled` is `false`)\n"},"nodeName":{"type":"string","description":"The name of the node to assign the virtual machine\nto.\n"},"numas":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineNuma:VirtualMachineNuma"},"description":"The NUMA configuration.\n"},"onBoot":{"type":"boolean","description":"Specifies whether a VM will be started during system\nboot. (defaults to `true`)\n"},"operatingSystem":{"$ref":"#/types/proxmoxve:VM/VirtualMachineOperatingSystem:VirtualMachineOperatingSystem","description":"The Operating System configuration.\n"},"poolId":{"type":"string","description":"The identifier for a pool to assign the virtual machine to.\n"},"protection":{"type":"boolean","description":"Sets the protection flag of the VM. This will disable the remove VM and remove disk operations (defaults to `false`).\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults to `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults to\n`virtio-scsi-pci`).\n"},"serialDevices":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSerialDevice:VirtualMachineSerialDevice"},"description":"A serial device (multiple blocks supported).\n"},"smbios":{"$ref":"#/types/proxmoxve:VM/VirtualMachineSmbios:VirtualMachineSmbios","description":"The SMBIOS (type1) settings for the VM.\n"},"started":{"type":"boolean","description":"Whether to start the virtual machine (defaults\nto `true`).\n"},"startup":{"$ref":"#/types/proxmoxve:VM/VirtualMachineStartup:VirtualMachineStartup","description":"Defines startup and shutdown behavior of the VM.\n"},"stopOnDestroy":{"type":"boolean","description":"Whether to stop rather than shutdown on VM destroy (defaults to `false`)\n"},"tabletDevice":{"type":"boolean","description":"Whether to enable the USB tablet device (defaults\nto `true`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags of the VM. This is only meta information (\ndefaults to `[]`). Note: Proxmox always sorts the VM tags. If the list in\ntemplate is not sorted, then Proxmox will always report a difference on the\nresource. You may use the `ignore_changes` lifecycle meta-argument to ignore\nchanges to this attribute.\n"},"template":{"type":"boolean","description":"Whether to create a template (defaults to `false`).\n","willReplaceOnChanges":true},"timeoutClone":{"type":"integer","description":"Timeout for cloning a VM in seconds (defaults to\n1800).\n"},"timeoutCreate":{"type":"integer","description":"Timeout for creating a VM in seconds (defaults to\n1800).\n"},"timeoutMigrate":{"type":"integer","description":"Timeout for migrating the VM (defaults to\n1800).\n"},"timeoutMoveDisk":{"type":"integer","description":"MoveDisk timeout\n","deprecationMessage":"This field is deprecated and will be removed in a future release. An overall operation timeout (timeout_create / timeout_clone / timeout_migrate) is used instead."},"timeoutReboot":{"type":"integer","description":"Timeout for rebooting a VM in seconds (defaults\nto 1800).\n"},"timeoutShutdownVm":{"type":"integer","description":"Timeout for shutting down a VM in seconds (\ndefaults to 1800).\n"},"timeoutStartVm":{"type":"integer","description":"Timeout for starting a VM in seconds (defaults\nto 1800).\n"},"timeoutStopVm":{"type":"integer","description":"Timeout for stopping a VM in seconds (defaults\nto 300).\n"},"tpmState":{"$ref":"#/types/proxmoxve:VM/VirtualMachineTpmState:VirtualMachineTpmState","description":"The TPM state device.\n","willReplaceOnChanges":true},"usbs":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/VirtualMachineUsb:VirtualMachineUsb"},"description":"A host USB device mapping (multiple blocks supported).\n"},"vga":{"$ref":"#/types/proxmoxve:VM/VirtualMachineVga:VirtualMachineVga","description":"The VGA configuration.\n"},"vmId":{"type":"integer","description":"The VM identifier.\n"},"watchdog":{"$ref":"#/types/proxmoxve:VM/VirtualMachineWatchdog:VirtualMachineWatchdog","description":"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).\n"}},"type":"object"}},"proxmoxve:index/acl:Acl":{"description":"Manages ACLs on the Proxmox cluster.\n\nACLs are used to control access to resources in the Proxmox cluster.\nEach ACL consists of a path, a user, group or token, a role, and a flag to allow propagation of permissions.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst operationsAutomation = new proxmoxve.permission.User(\"operationsAutomation\", {\n comment: \"Managed by Pulumi\",\n password: \"a-strong-password\",\n userId: \"operations-automation@pve\",\n});\nconst operationsMonitoring = new proxmoxve.permission.Role(\"operationsMonitoring\", {\n roleId: \"operations-monitoring\",\n privileges: [\"VM.Monitor\"],\n});\nconst operationsAutomationMonitoring = new proxmoxve.Acl(\"operationsAutomationMonitoring\", {\n userId: operationsAutomation.userId,\n roleId: operationsMonitoring.roleId,\n path: \"/vms/1234\",\n propagate: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_automation = proxmoxve.permission.User(\"operationsAutomation\",\n comment=\"Managed by Pulumi\",\n password=\"a-strong-password\",\n user_id=\"operations-automation@pve\")\noperations_monitoring = proxmoxve.permission.Role(\"operationsMonitoring\",\n role_id=\"operations-monitoring\",\n privileges=[\"VM.Monitor\"])\noperations_automation_monitoring = proxmoxve.Acl(\"operationsAutomationMonitoring\",\n user_id=operations_automation.user_id,\n role_id=operations_monitoring.role_id,\n path=\"/vms/1234\",\n propagate=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsAutomation = new ProxmoxVE.Permission.User(\"operationsAutomation\", new()\n {\n Comment = \"Managed by Pulumi\",\n Password = \"a-strong-password\",\n UserId = \"operations-automation@pve\",\n });\n\n var operationsMonitoring = new ProxmoxVE.Permission.Role(\"operationsMonitoring\", new()\n {\n RoleId = \"operations-monitoring\",\n Privileges = new[]\n {\n \"VM.Monitor\",\n },\n });\n\n var operationsAutomationMonitoring = new ProxmoxVE.Acl(\"operationsAutomationMonitoring\", new()\n {\n UserId = operationsAutomation.UserId,\n RoleId = operationsMonitoring.RoleId,\n Path = \"/vms/1234\",\n Propagate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\toperationsAutomation, err := Permission.NewUser(ctx, \"operationsAutomation\", \u0026Permission.UserArgs{\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tPassword: pulumi.String(\"a-strong-password\"),\n\t\t\tUserId: pulumi.String(\"operations-automation@pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\toperationsMonitoring, err := Permission.NewRole(ctx, \"operationsMonitoring\", \u0026Permission.RoleArgs{\n\t\t\tRoleId: pulumi.String(\"operations-monitoring\"),\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"VM.Monitor\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = proxmoxve.NewAcl(ctx, \"operationsAutomationMonitoring\", \u0026proxmoxve.AclArgs{\n\t\t\tUserId: operationsAutomation.UserId,\n\t\t\tRoleId: operationsMonitoring.RoleId,\n\t\t\tPath: pulumi.String(\"/vms/1234\"),\n\t\t\tPropagate: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.User;\nimport com.pulumi.proxmoxve.Permission.UserArgs;\nimport com.pulumi.proxmoxve.Permission.Role;\nimport com.pulumi.proxmoxve.Permission.RoleArgs;\nimport com.pulumi.proxmoxve.Acl;\nimport com.pulumi.proxmoxve.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var operationsAutomation = new User(\"operationsAutomation\", UserArgs.builder()\n .comment(\"Managed by Pulumi\")\n .password(\"a-strong-password\")\n .userId(\"operations-automation@pve\")\n .build());\n\n var operationsMonitoring = new Role(\"operationsMonitoring\", RoleArgs.builder()\n .roleId(\"operations-monitoring\")\n .privileges(\"VM.Monitor\")\n .build());\n\n var operationsAutomationMonitoring = new Acl(\"operationsAutomationMonitoring\", AclArgs.builder()\n .userId(operationsAutomation.userId())\n .roleId(operationsMonitoring.roleId())\n .path(\"/vms/1234\")\n .propagate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n operationsAutomation:\n type: proxmoxve:Permission:User\n properties:\n comment: Managed by Pulumi\n password: a-strong-password\n userId: operations-automation@pve\n operationsMonitoring:\n type: proxmoxve:Permission:Role\n properties:\n roleId: operations-monitoring\n privileges:\n - VM.Monitor\n operationsAutomationMonitoring:\n type: proxmoxve:Acl\n properties:\n userId: ${operationsAutomation.userId}\n roleId: ${operationsMonitoring.roleId}\n path: /vms/1234\n propagate: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nACL can be imported using its unique identifier, e.g.: {path}?{group|user@realm|user@realm!token}?{role}\n\n```sh\n$ pulumi import proxmoxve:index/acl:Acl operations_automation_monitoring /?monitor@pve?operations-monitoring\n```\n\n","properties":{"groupId":{"type":"string","description":"The group the ACL should apply to (mutually exclusive with `token_id` and `user_id`)\n"},"path":{"type":"string","description":"Access control path\n"},"propagate":{"type":"boolean","description":"Allow to propagate (inherit) permissions.\n"},"roleId":{"type":"string","description":"The role to apply\n"},"tokenId":{"type":"string","description":"The token the ACL should apply to (mutually exclusive with `group_id` and `user_id`)\n"},"userId":{"type":"string","description":"The user the ACL should apply to (mutually exclusive with `group_id` and `token_id`)\n"}},"required":["path","propagate","roleId"],"inputProperties":{"groupId":{"type":"string","description":"The group the ACL should apply to (mutually exclusive with `token_id` and `user_id`)\n"},"path":{"type":"string","description":"Access control path\n"},"propagate":{"type":"boolean","description":"Allow to propagate (inherit) permissions.\n"},"roleId":{"type":"string","description":"The role to apply\n"},"tokenId":{"type":"string","description":"The token the ACL should apply to (mutually exclusive with `group_id` and `user_id`)\n"},"userId":{"type":"string","description":"The user the ACL should apply to (mutually exclusive with `group_id` and `token_id`)\n"}},"requiredInputs":["path","roleId"],"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"groupId":{"type":"string","description":"The group the ACL should apply to (mutually exclusive with `token_id` and `user_id`)\n"},"path":{"type":"string","description":"Access control path\n"},"propagate":{"type":"boolean","description":"Allow to propagate (inherit) permissions.\n"},"roleId":{"type":"string","description":"The role to apply\n"},"tokenId":{"type":"string","description":"The token the ACL should apply to (mutually exclusive with `group_id` and `user_id`)\n"},"userId":{"type":"string","description":"The user the ACL should apply to (mutually exclusive with `group_id` and `token_id`)\n"}},"type":"object"}},"proxmoxve:index/acmeAccount:AcmeAccount":{"description":"Manages an ACME account in a Proxmox VE cluster.\n\n\u003e This resource requires `root@pam` authentication.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.AcmeAccount(\"example\", {\n contact: \"example@email.com\",\n directory: \"https://acme-staging-v02.api.letsencrypt.org/directory\",\n tos: \"https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.AcmeAccount(\"example\",\n contact=\"example@email.com\",\n directory=\"https://acme-staging-v02.api.letsencrypt.org/directory\",\n tos=\"https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.AcmeAccount(\"example\", new()\n {\n Contact = \"example@email.com\",\n Directory = \"https://acme-staging-v02.api.letsencrypt.org/directory\",\n Tos = \"https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := proxmoxve.NewAcmeAccount(ctx, \"example\", \u0026proxmoxve.AcmeAccountArgs{\n\t\t\tContact: pulumi.String(\"example@email.com\"),\n\t\t\tDirectory: pulumi.String(\"https://acme-staging-v02.api.letsencrypt.org/directory\"),\n\t\t\tTos: pulumi.String(\"https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.AcmeAccount;\nimport com.pulumi.proxmoxve.AcmeAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new AcmeAccount(\"example\", AcmeAccountArgs.builder()\n .contact(\"example@email.com\")\n .directory(\"https://acme-staging-v02.api.letsencrypt.org/directory\")\n .tos(\"https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:AcmeAccount\n properties:\n contact: example@email.com\n directory: https://acme-staging-v02.api.letsencrypt.org/directory\n tos: https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nACME accounts can be imported using their name, e.g.:\n\n```sh\n$ pulumi import proxmoxve:index/acmeAccount:AcmeAccount example example\n```\n\n","properties":{"contact":{"type":"string","description":"The contact email addresses.\n"},"createdAt":{"type":"string","description":"The timestamp of the ACME account creation.\n"},"directory":{"type":"string","description":"The URL of the ACME CA directory endpoint.\n"},"eabHmacKey":{"type":"string","description":"The HMAC key for External Account Binding.\n"},"eabKid":{"type":"string","description":"The Key Identifier for External Account Binding.\n"},"location":{"type":"string","description":"The location of the ACME account.\n"},"name":{"type":"string","description":"The ACME account config file name.\n"},"tos":{"type":"string","description":"The URL of CA TermsOfService - setting this indicates agreement.\n"}},"required":["contact","createdAt","location","name"],"inputProperties":{"contact":{"type":"string","description":"The contact email addresses.\n"},"directory":{"type":"string","description":"The URL of the ACME CA directory endpoint.\n"},"eabHmacKey":{"type":"string","description":"The HMAC key for External Account Binding.\n"},"eabKid":{"type":"string","description":"The Key Identifier for External Account Binding.\n"},"name":{"type":"string","description":"The ACME account config file name.\n"},"tos":{"type":"string","description":"The URL of CA TermsOfService - setting this indicates agreement.\n"}},"requiredInputs":["contact"],"stateInputs":{"description":"Input properties used for looking up and filtering AcmeAccount resources.\n","properties":{"contact":{"type":"string","description":"The contact email addresses.\n"},"createdAt":{"type":"string","description":"The timestamp of the ACME account creation.\n"},"directory":{"type":"string","description":"The URL of the ACME CA directory endpoint.\n"},"eabHmacKey":{"type":"string","description":"The HMAC key for External Account Binding.\n"},"eabKid":{"type":"string","description":"The Key Identifier for External Account Binding.\n"},"location":{"type":"string","description":"The location of the ACME account.\n"},"name":{"type":"string","description":"The ACME account config file name.\n"},"tos":{"type":"string","description":"The URL of CA TermsOfService - setting this indicates agreement.\n"}},"type":"object"}},"proxmoxve:index/acmeDnsPlugin:AcmeDnsPlugin":{"description":"Manages an ACME plugin in a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.AcmeDnsPlugin(\"example\", {\n api: \"aws\",\n data: {\n AWS_ACCESS_KEY_ID: \"EXAMPLE\",\n AWS_SECRET_ACCESS_KEY: \"EXAMPLE\",\n },\n plugin: \"test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.AcmeDnsPlugin(\"example\",\n api=\"aws\",\n data={\n \"AWS_ACCESS_KEY_ID\": \"EXAMPLE\",\n \"AWS_SECRET_ACCESS_KEY\": \"EXAMPLE\",\n },\n plugin=\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.AcmeDnsPlugin(\"example\", new()\n {\n Api = \"aws\",\n Data = \n {\n { \"AWS_ACCESS_KEY_ID\", \"EXAMPLE\" },\n { \"AWS_SECRET_ACCESS_KEY\", \"EXAMPLE\" },\n },\n Plugin = \"test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := proxmoxve.NewAcmeDnsPlugin(ctx, \"example\", \u0026proxmoxve.AcmeDnsPluginArgs{\n\t\t\tApi: pulumi.String(\"aws\"),\n\t\t\tData: pulumi.StringMap{\n\t\t\t\t\"AWS_ACCESS_KEY_ID\": pulumi.String(\"EXAMPLE\"),\n\t\t\t\t\"AWS_SECRET_ACCESS_KEY\": pulumi.String(\"EXAMPLE\"),\n\t\t\t},\n\t\t\tPlugin: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.AcmeDnsPlugin;\nimport com.pulumi.proxmoxve.AcmeDnsPluginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new AcmeDnsPlugin(\"example\", AcmeDnsPluginArgs.builder()\n .api(\"aws\")\n .data(Map.ofEntries(\n Map.entry(\"AWS_ACCESS_KEY_ID\", \"EXAMPLE\"),\n Map.entry(\"AWS_SECRET_ACCESS_KEY\", \"EXAMPLE\")\n ))\n .plugin(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:AcmeDnsPlugin\n properties:\n api: aws\n data:\n AWS_ACCESS_KEY_ID: EXAMPLE\n AWS_SECRET_ACCESS_KEY: EXAMPLE\n plugin: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nACME accounts can be imported using their name, e.g.:\n\n```sh\n$ pulumi import proxmoxve:index/acmeDnsPlugin:AcmeDnsPlugin example test\n```\n\n","properties":{"api":{"type":"string","description":"API plugin name.\n"},"data":{"type":"object","additionalProperties":{"type":"string"},"description":"DNS plugin data.\n"},"digest":{"type":"string","description":"SHA1 digest of the current configuration. Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.\n"},"disable":{"type":"boolean","description":"Flag to disable the config.\n"},"plugin":{"type":"string","description":"ACME Plugin ID name.\n"},"validationDelay":{"type":"integer","description":"Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records (0 - 172800).\n"}},"required":["api","digest","plugin","validationDelay"],"inputProperties":{"api":{"type":"string","description":"API plugin name.\n"},"data":{"type":"object","additionalProperties":{"type":"string"},"description":"DNS plugin data.\n"},"digest":{"type":"string","description":"SHA1 digest of the current configuration. Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.\n"},"disable":{"type":"boolean","description":"Flag to disable the config.\n"},"plugin":{"type":"string","description":"ACME Plugin ID name.\n"},"validationDelay":{"type":"integer","description":"Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records (0 - 172800).\n"}},"requiredInputs":["api","plugin"],"stateInputs":{"description":"Input properties used for looking up and filtering AcmeDnsPlugin resources.\n","properties":{"api":{"type":"string","description":"API plugin name.\n"},"data":{"type":"object","additionalProperties":{"type":"string"},"description":"DNS plugin data.\n"},"digest":{"type":"string","description":"SHA1 digest of the current configuration. Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.\n"},"disable":{"type":"boolean","description":"Flag to disable the config.\n"},"plugin":{"type":"string","description":"ACME Plugin ID name.\n"},"validationDelay":{"type":"integer","description":"Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records (0 - 172800).\n"}},"type":"object"}},"proxmoxve:index/certifi:Certifi":{"description":"Manages the custom SSL/TLS certificate for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n example:\n type: proxmoxve:Certifi\n properties:\n certificate: ${proxmoxVirtualEnvironmentCertificateSelfSignedCert.certPem}\n nodeName: first-node\n privateKey: ${proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem}\n proxmoxVirtualEnvironmentCertificatePrivateKey:\n type: tls:PrivateKey\n properties:\n algorithm: RSA\n rsaBits: 2048\n proxmoxVirtualEnvironmentCertificateSelfSignedCert:\n type: tls:SelfSignedCert\n properties:\n keyAlgorithm: ${proxmoxVirtualEnvironmentCertificatePrivateKey.algorithm}\n privateKeyPem: ${proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem}\n subject:\n commonName: example.com\n organization: Terraform Provider for Proxmox\n validityPeriodHours: 8760\n allowedUses:\n - key_encipherment\n - digital_signature\n - server_auth\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"certificate":{"type":"string","description":"The PEM encoded certificate.\n"},"certificateChain":{"type":"string","description":"The PEM encoded certificate chain.\n"},"expirationDate":{"type":"string","description":"The expiration date (RFC 3339).\n"},"fileName":{"type":"string","description":"The file name.\n"},"issuer":{"type":"string","description":"The issuer.\n"},"nodeName":{"type":"string","description":"A node name.\n"},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing certificate\n"},"privateKey":{"type":"string","description":"The PEM encoded private key.\n","secret":true},"publicKeySize":{"type":"integer","description":"The public key size.\n"},"publicKeyType":{"type":"string","description":"The public key type.\n"},"sslFingerprint":{"type":"string","description":"The SSL fingerprint.\n"},"startDate":{"type":"string","description":"The start date (RFC 3339).\n"},"subject":{"type":"string","description":"The subject.\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The subject alternative names.\n"}},"required":["certificate","expirationDate","fileName","issuer","nodeName","privateKey","publicKeySize","publicKeyType","sslFingerprint","startDate","subject","subjectAlternativeNames"],"inputProperties":{"certificate":{"type":"string","description":"The PEM encoded certificate.\n"},"certificateChain":{"type":"string","description":"The PEM encoded certificate chain.\n"},"nodeName":{"type":"string","description":"A node name.\n","willReplaceOnChanges":true},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing certificate\n"},"privateKey":{"type":"string","description":"The PEM encoded private key.\n","secret":true}},"requiredInputs":["certificate","nodeName","privateKey"],"stateInputs":{"description":"Input properties used for looking up and filtering Certifi resources.\n","properties":{"certificate":{"type":"string","description":"The PEM encoded certificate.\n"},"certificateChain":{"type":"string","description":"The PEM encoded certificate chain.\n"},"expirationDate":{"type":"string","description":"The expiration date (RFC 3339).\n"},"fileName":{"type":"string","description":"The file name.\n"},"issuer":{"type":"string","description":"The issuer.\n"},"nodeName":{"type":"string","description":"A node name.\n","willReplaceOnChanges":true},"overwrite":{"type":"boolean","description":"Whether to overwrite an existing certificate\n"},"privateKey":{"type":"string","description":"The PEM encoded private key.\n","secret":true},"publicKeySize":{"type":"integer","description":"The public key size.\n"},"publicKeyType":{"type":"string","description":"The public key type.\n"},"sslFingerprint":{"type":"string","description":"The SSL fingerprint.\n"},"startDate":{"type":"string","description":"The start date (RFC 3339).\n"},"subject":{"type":"string","description":"The subject.\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The subject alternative names.\n"}},"type":"object"}},"proxmoxve:index/dNS:DNS":{"description":"Manages the DNS configuration for a specific node.\n\n## Import\n\nInstances can be imported using the `node_name`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:index/dNS:DNS first_node first-node\n```\n\n","properties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"nodeName":{"type":"string","description":"A node name.\n"},"servers":{"type":"array","items":{"type":"string"},"description":"The DNS servers.\n"}},"required":["domain","nodeName"],"inputProperties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"nodeName":{"type":"string","description":"A node name.\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"type":"string"},"description":"The DNS servers.\n"}},"requiredInputs":["domain","nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering DNS resources.\n","properties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"nodeName":{"type":"string","description":"A node name.\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"type":"string"},"description":"The DNS servers.\n"}},"type":"object"}},"proxmoxve:index/hosts:Hosts":{"description":"Manages the host entries on a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n firstNodeHostEntries:\n type: proxmoxve:Hosts\n properties:\n entries:\n - address: 127.0.0.1\n hostnames:\n - localhost\n - localhost.localdomain\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Important Notes\n\nBe careful not to use this resource multiple times for the same node.\n\n## Import\n\nInstances can be imported using the `node_name`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:index/hosts:Hosts first_node_host_entries first-node\n```\n\n","properties":{"addresses":{"type":"array","items":{"type":"string"},"description":"The IP addresses.\n"},"digest":{"type":"string","description":"The SHA1 digest.\n"},"entries":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/HostsEntry:HostsEntry"},"description":"The host entries (conversion of `addresses` and `hostnames` into\nobjects).\n"},"entry":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/HostsEntry:HostsEntry"},"description":"A host entry (multiple blocks supported).\n"},"hostnames":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The hostnames associated with each of the IP addresses.\n"},"nodeName":{"type":"string","description":"A node name.\n"}},"required":["addresses","digest","entries","entry","hostnames","nodeName"],"inputProperties":{"entry":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/HostsEntry:HostsEntry"},"description":"A host entry (multiple blocks supported).\n"},"nodeName":{"type":"string","description":"A node name.\n"}},"requiredInputs":["entry","nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering Hosts resources.\n","properties":{"addresses":{"type":"array","items":{"type":"string"},"description":"The IP addresses.\n"},"digest":{"type":"string","description":"The SHA1 digest.\n"},"entries":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/HostsEntry:HostsEntry"},"description":"The host entries (conversion of `addresses` and `hostnames` into\nobjects).\n"},"entry":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/HostsEntry:HostsEntry"},"description":"A host entry (multiple blocks supported).\n"},"hostnames":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The hostnames associated with each of the IP addresses.\n"},"nodeName":{"type":"string","description":"A node name.\n"}},"type":"object"}},"proxmoxve:index/time:Time":{"description":"Manages the time for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst firstNodeTime = new proxmoxve.Time(\"firstNodeTime\", {\n nodeName: \"first-node\",\n timeZone: \"UTC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_time = proxmoxve.Time(\"firstNodeTime\",\n node_name=\"first-node\",\n time_zone=\"UTC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNodeTime = new ProxmoxVE.Time(\"firstNodeTime\", new()\n {\n NodeName = \"first-node\",\n TimeZone = \"UTC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := proxmoxve.NewTime(ctx, \"firstNodeTime\", \u0026proxmoxve.TimeArgs{\n\t\t\tNodeName: pulumi.String(\"first-node\"),\n\t\t\tTimeZone: pulumi.String(\"UTC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Time;\nimport com.pulumi.proxmoxve.TimeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var firstNodeTime = new Time(\"firstNodeTime\", TimeArgs.builder()\n .nodeName(\"first-node\")\n .timeZone(\"UTC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n firstNodeTime:\n type: proxmoxve:Time\n properties:\n nodeName: first-node\n timeZone: UTC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstances can be imported using the `node_name`, e.g.,\n\nbash\n\n```sh\n$ pulumi import proxmoxve:index/time:Time first_node first-node\n```\n\n","properties":{"localTime":{"type":"string","description":"The node's local time.\n"},"nodeName":{"type":"string","description":"A node name.\n"},"timeZone":{"type":"string","description":"The node's time zone.\n"},"utcTime":{"type":"string","description":"The node's local time formatted as UTC.\n"}},"required":["localTime","nodeName","timeZone","utcTime"],"inputProperties":{"nodeName":{"type":"string","description":"A node name.\n"},"timeZone":{"type":"string","description":"The node's time zone.\n"}},"requiredInputs":["nodeName","timeZone"],"stateInputs":{"description":"Input properties used for looking up and filtering Time resources.\n","properties":{"localTime":{"type":"string","description":"The node's local time.\n"},"nodeName":{"type":"string","description":"A node name.\n"},"timeZone":{"type":"string","description":"The node's time zone.\n"},"utcTime":{"type":"string","description":"The node's local time formatted as UTC.\n"}},"type":"object"}},"proxmoxve:index/vm2:Vm2":{"description":"!\u003e **DO NOT USE**\nThis is an experimental implementation of a Proxmox VM resource using Plugin Framework.\u003cbr\u003e\u003cbr\u003eIt is a Proof of Concept, highly experimental and **will** change in future. It does not support all features of the Proxmox API for VMs and **MUST NOT** be used in production.\n\n\u003e Many attributes are marked as **optional** _and_ **computed** in the schema,\nhence you may seem added to the plan with \"(known after apply)\" status, even if they are not set in the configuration.\nThis is done to support the `clone` operation, when a VM is created from an existing VM or template,\nand the source attributes are copied to the clone.\u003cbr\u003e\u003cbr\u003e\nComputed attributes allow the provider to set those attributes without user input.\nThe attributes are also marked as optional to allow the practitioner to set (or overwrite) them if needed.\n","properties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:index/Vm2Cdrom:Vm2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:index/Vm2Clone:Vm2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:index/Vm2Cpu:Vm2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:index/Vm2Timeouts:Vm2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:index/Vm2Vga:Vm2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"required":["cdrom","cpu","name","nodeName","stopOnDestroy","tags","vga"],"inputProperties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:index/Vm2Cdrom:Vm2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:index/Vm2Clone:Vm2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:index/Vm2Cpu:Vm2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:index/Vm2Timeouts:Vm2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:index/Vm2Vga:Vm2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"requiredInputs":["nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering Vm2 resources.\n","properties":{"cdrom":{"type":"object","additionalProperties":{"$ref":"#/types/proxmoxve:index/Vm2Cdrom:Vm2Cdrom"},"description":"The CD-ROM configuration. The key is the interface of the CD-ROM, could 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.\n"},"clone":{"$ref":"#/types/proxmoxve:index/Vm2Clone:Vm2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:index/Vm2Cpu:Vm2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"name":{"type":"string","description":"The name of the VM. Doesn't have to be unique.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"stopOnDestroy":{"type":"boolean","description":"Set to true to stop (rather than shutdown) the VM on destroy (defaults to `false`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Set to true to create a VM template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:index/Vm2Timeouts:Vm2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:index/Vm2Vga:Vm2Vga","description":"Configure the VGA Hardware. If you want to use high resolution modes (\u003e= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is `std` for all OS types besides some Windows versions (XP and older) which use `cirrus`. The `qxl` option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. 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 and available configuration parameters.\n"}},"type":"object"},"deprecationMessage":"proxmoxve.index/vm2.Vm2 has been deprecated in favor of proxmoxve.vm/virtualmachine2.VirtualMachine2"}},"functions":{"proxmoxve:Acme/getAccount:getAccount":{"description":"Retrieves information about a specific ACME account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.Acme.getAccounts({});\nconst example = all.then(all =\u003e .map(([__key, __value]) =\u003e (proxmoxve.Acme.getAccount({\n name: __value,\n}))));\nexport const dataProxmoxVirtualEnvironmentAcmeAccount = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.Acme.get_accounts()\nexample = [proxmoxve.Acme.get_account(name=__value) for __key, __value in all.accounts]\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.Acme.GetAccounts.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.Acme.GetAccount.Invoke(new()\n {\n Name = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmeAccount\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := Acme.GetAccounts(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = AcmeFunctions.getAccounts();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccount.\n","properties":{"name":{"type":"string","description":"The identifier of the ACME account to read.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccount.\n","properties":{"account":{"$ref":"#/types/proxmoxve:Acme/getAccountAccount:getAccountAccount","description":"The ACME account information.\n"},"directory":{"description":"The directory URL of the ACME account.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"location":{"description":"The location URL of the ACME account.\n","type":"string"},"name":{"description":"The identifier of the ACME account to read.\n","type":"string"},"tos":{"description":"The URL of the terms of service of the ACME account.\n","type":"string"}},"required":["account","directory","location","tos","id"],"type":"object"}},"proxmoxve:Acme/getAccounts:getAccounts":{"description":"Retrieves the list of ACME accounts.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getAccounts({});\nexport const dataProxmoxVirtualEnvironmentAcmeAccounts = example.then(example =\u003e example.accounts);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_accounts()\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.accounts)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetAccounts.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmeAccounts\"] = example.Apply(getAccountsResult =\u003e getAccountsResult.Accounts),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetAccounts(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.Accounts)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getAccounts();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.applyValue(getAccountsResult -\u003e getAccountsResult.accounts()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Acme:getAccounts\n arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentAcmeAccounts: ${example.accounts}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getAccounts.\n","properties":{"accounts":{"description":"The identifiers of the ACME accounts.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"}},"required":["accounts","id"],"type":"object"}},"proxmoxve:Acme/getPlugin:getPlugin":{"description":"Retrieves a single ACME plugin by plugin ID name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getPlugin({\n plugin: \"standalone\",\n});\nexport const dataProxmoxVirtualEnvironmentAcmePlugin = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_plugin(plugin=\"standalone\")\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetPlugin.Invoke(new()\n {\n Plugin = \"standalone\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmePlugin\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetPlugin(ctx, \u0026acme.GetPluginArgs{\n\t\t\tPlugin: \"standalone\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport com.pulumi.proxmoxve.Acme.inputs.GetPluginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getPlugin(GetPluginArgs.builder()\n .plugin(\"standalone\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example.applyValue(getPluginResult -\u003e getPluginResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Acme:getPlugin\n arguments:\n plugin: standalone\noutputs:\n dataProxmoxVirtualEnvironmentAcmePlugin: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPlugin.\n","properties":{"plugin":{"type":"string","description":"ACME Plugin ID name.\n"}},"type":"object","required":["plugin"]},"outputs":{"description":"A collection of values returned by getPlugin.\n","properties":{"api":{"description":"API plugin name.\n","type":"string"},"data":{"additionalProperties":{"type":"string"},"description":"DNS plugin data.\n","type":"object"},"digest":{"description":"Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"plugin":{"description":"ACME Plugin ID name.\n","type":"string"},"type":{"description":"ACME challenge type (dns, standalone).\n","type":"string"},"validationDelay":{"description":"Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records (0 - 172800).\n","type":"integer"}},"required":["api","data","digest","plugin","type","validationDelay","id"],"type":"object"}},"proxmoxve:Acme/getPlugins:getPlugins":{"description":"Retrieves the list of ACME plugins.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getPlugins({});\nexport const dataProxmoxVirtualEnvironmentAcmePlugins = example.then(example =\u003e example.plugins);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_plugins()\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.plugins)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetPlugins.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmePlugins\"] = example.Apply(getPluginsResult =\u003e getPluginsResult.Plugins),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetPlugins(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.Plugins)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getPlugins();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.applyValue(getPluginsResult -\u003e getPluginsResult.plugins()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Acme:getPlugins\n arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentAcmePlugins: ${example.plugins}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getPlugins.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"plugins":{"description":"List of ACME plugins\n","items":{"$ref":"#/types/proxmoxve:Acme/getPluginsPlugin:getPluginsPlugin"},"type":"array"}},"required":["plugins","id"],"type":"object"}},"proxmoxve:Apt/getRepository:getRepository":{"description":"Retrieves an APT repository from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Apt.getRepository({\n filePath: \"/etc/apt/sources.list\",\n index: 0,\n node: \"pve\",\n});\nexport const proxmoxVirtualEnvironmentAptRepository = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Apt.get_repository(file_path=\"/etc/apt/sources.list\",\n index=0,\n node=\"pve\")\npulumi.export(\"proxmoxVirtualEnvironmentAptRepository\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Apt.GetRepository.Invoke(new()\n {\n FilePath = \"/etc/apt/sources.list\",\n Index = 0,\n Node = \"pve\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentAptRepository\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Apt.GetRepository(ctx, \u0026apt.GetRepositoryArgs{\n\t\t\tFilePath: \"/etc/apt/sources.list\",\n\t\t\tIndex: 0,\n\t\t\tNode: \"pve\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"proxmoxVirtualEnvironmentAptRepository\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt.AptFunctions;\nimport com.pulumi.proxmoxve.Apt.inputs.GetRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AptFunctions.getRepository(GetRepositoryArgs.builder()\n .filePath(\"/etc/apt/sources.list\")\n .index(0)\n .node(\"pve\")\n .build());\n\n ctx.export(\"proxmoxVirtualEnvironmentAptRepository\", example.applyValue(getRepositoryResult -\u003e getRepositoryResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Apt:getRepository\n arguments:\n filePath: /etc/apt/sources.list\n index: 0\n node: pve\noutputs:\n proxmoxVirtualEnvironmentAptRepository: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRepository.\n","properties":{"filePath":{"type":"string","description":"The absolute path of the source list file that contains this repository.\n"},"index":{"type":"integer","description":"The index within the defining source list file.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"}},"type":"object","required":["filePath","index","node"]},"outputs":{"description":"A collection of values returned by getRepository.\n","properties":{"comment":{"description":"The associated comment.\n","type":"string"},"components":{"description":"The list of components.\n","items":{"type":"string"},"type":"array"},"enabled":{"description":"Indicates the activation status.\n","type":"boolean"},"filePath":{"description":"The absolute path of the source list file that contains this repository.\n","type":"string"},"fileType":{"description":"The format of the defining source list file.\n","type":"string"},"id":{"description":"The unique identifier of this APT repository data source.\n","type":"string"},"index":{"description":"The index within the defining source list file.\n","type":"integer"},"node":{"description":"The name of the target Proxmox VE node.\n","type":"string"},"packageTypes":{"description":"The list of package types.\n","items":{"type":"string"},"type":"array"},"suites":{"description":"The list of package distributions.\n","items":{"type":"string"},"type":"array"},"uris":{"description":"The list of repository URIs.\n","items":{"type":"string"},"type":"array"}},"required":["comment","components","enabled","filePath","fileType","id","index","node","packageTypes","suites","uris"],"type":"object"}},"proxmoxve:Apt/standard/getRepository:getRepository":{"description":"Retrieves an APT standard repository from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Apt.standard.getRepository({\n handle: \"no-subscription\",\n node: \"pve\",\n});\nexport const proxmoxVirtualEnvironmentAptStandardRepository = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Apt.standard.get_repository(handle=\"no-subscription\",\n node=\"pve\")\npulumi.export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Apt.Standard.GetRepository.Invoke(new()\n {\n Handle = \"no-subscription\",\n Node = \"pve\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentAptStandardRepository\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Apt.GetRepository(ctx, \u0026standard.GetRepositoryArgs{\n\t\t\tHandle: \"no-subscription\",\n\t\t\tNode: \"pve\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt_standard.Apt_standardFunctions;\nimport com.pulumi.proxmoxve.Apt.inputs.GetRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Apt/standardFunctions.getRepository(GetRepositoryArgs.builder()\n .handle(\"no-subscription\")\n .node(\"pve\")\n .build());\n\n ctx.export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example.applyValue(getRepositoryResult -\u003e getRepositoryResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Apt/standard:getRepository\n arguments:\n handle: no-subscription\n node: pve\noutputs:\n proxmoxVirtualEnvironmentAptStandardRepository: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRepository.\n","properties":{"handle":{"type":"string","description":"The handle of the APT standard repository.\n"},"node":{"type":"string","description":"The name of the target Proxmox VE node.\n"}},"type":"object","required":["handle","node"]},"outputs":{"description":"A collection of values returned by getRepository.\n","properties":{"description":{"description":"The description of the APT standard repository.\n","type":"string"},"filePath":{"description":"The absolute path of the source list file that contains this standard repository.\n","type":"string"},"handle":{"description":"The handle of the APT standard repository.\n","type":"string"},"id":{"description":"The unique identifier of this APT standard repository data source.\n","type":"string"},"index":{"description":"The index within the defining source list file.\n","type":"integer"},"name":{"description":"The name of the APT standard repository.\n","type":"string"},"node":{"description":"The name of the target Proxmox VE node.\n","type":"string"},"status":{"description":"Indicates the activation status.\n","type":"integer"}},"required":["description","filePath","handle","id","index","name","node","status"],"type":"object"}},"proxmoxve:Cluster/getNodes:getNodes":{"description":"Retrieves information about all available nodes.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableNodes = proxmoxve.Cluster.getNodes({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_nodes = proxmoxve.Cluster.get_nodes()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableNodes = ProxmoxVE.Cluster.GetNodes.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Cluster\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Cluster.GetNodes(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Cluster.ClusterFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableNodes = ClusterFunctions.getNodes();\n\n }\n}\n```\n```yaml\nvariables:\n availableNodes:\n fn::invoke:\n function: proxmoxve:Cluster:getNodes\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getNodes.\n","properties":{"cpuCounts":{"description":"The CPU count for each node.\n","items":{"type":"integer"},"type":"array"},"cpuUtilizations":{"description":"The CPU utilization on each node.\n","items":{"type":"number"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"memoryAvailables":{"description":"The memory available on each node.\n","items":{"type":"integer"},"type":"array"},"memoryUseds":{"description":"The memory used on each node.\n","items":{"type":"integer"},"type":"array"},"names":{"description":"The node names.\n","items":{"type":"string"},"type":"array"},"onlines":{"description":"Whether a node is online.\n","items":{"type":"boolean"},"type":"array"},"sslFingerprints":{"description":"The SSL fingerprint for each node.\n","items":{"type":"string"},"type":"array"},"supportLevels":{"description":"The support level for each node.\n","items":{"type":"string"},"type":"array"},"uptimes":{"description":"The uptime in seconds for each node.\n","items":{"type":"integer"},"type":"array"}},"required":["cpuCounts","cpuUtilizations","memoryAvailables","memoryUseds","names","onlines","sslFingerprints","supportLevels","uptimes","id"],"type":"object"}},"proxmoxve:HA/getHAGroup:getHAGroup":{"description":"Retrieves information about a specific High Availability group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.HA.getHAGroups({});\nconst example = all.then(all =\u003e .map(([__key, __value]) =\u003e (proxmoxve.HA.getHAGroup({\n group: __value,\n}))));\nexport const proxmoxVirtualEnvironmentHagroupsFull = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.HA.get_ha_groups()\nexample = [proxmoxve.HA.get_ha_group(group=__value) for __key, __value in all.group_ids]\npulumi.export(\"proxmoxVirtualEnvironmentHagroupsFull\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.HA.GetHAGroups.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.HA.GetHAGroup.Invoke(new()\n {\n Group = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentHagroupsFull\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := HA.GetHAGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"proxmoxVirtualEnvironmentHagroupsFull\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = HAFunctions.getHAGroups();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"proxmoxVirtualEnvironmentHagroupsFull\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHAGroup.\n","properties":{"group":{"type":"string","description":"The identifier of the High Availability group to read.\n"}},"type":"object","required":["group"]},"outputs":{"description":"A collection of values returned by getHAGroup.\n","properties":{"comment":{"description":"The comment associated with this group\n","type":"string"},"group":{"description":"The identifier of the High Availability group to read.\n","type":"string"},"id":{"description":"The unique identifier of this resource.\n","type":"string"},"noFailback":{"description":"A flag that indicates that failing back to a higher priority node is disabled for this HA group.\n","type":"boolean"},"nodes":{"additionalProperties":{"type":"integer"},"description":"The member nodes for this group. They are provided as a map, where the keys are the node names and the values represent their priority: integers for known priorities or `null` for unset priorities.\n","type":"object"},"restricted":{"description":"A flag that indicates that other nodes may not be used to run resources associated to this HA group.\n","type":"boolean"}},"required":["comment","group","id","noFailback","nodes","restricted"],"type":"object"}},"proxmoxve:HA/getHAGroups:getHAGroups":{"description":"Retrieves the list of High Availability groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.HA.getHAGroups({});\nexport const dataProxmoxVirtualEnvironmentHagroups = example.then(example =\u003e example.groupIds);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.HA.get_ha_groups()\npulumi.export(\"dataProxmoxVirtualEnvironmentHagroups\", example.group_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.HA.GetHAGroups.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHagroups\"] = example.Apply(getHAGroupsResult =\u003e getHAGroupsResult.GroupIds),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := HA.GetHAGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHagroups\", example.GroupIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = HAFunctions.getHAGroups();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHagroups\", example.applyValue(getHAGroupsResult -\u003e getHAGroupsResult.groupIds()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:HA:getHAGroups\n arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentHagroups: ${example.groupIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getHAGroups.\n","properties":{"groupIds":{"description":"The identifiers of the High Availability groups.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The unique identifier of this resource.\n","type":"string"}},"required":["groupIds","id"],"type":"object"}},"proxmoxve:HA/getHAResource:getHAResource":{"description":"Retrieves the list of High Availability resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.HA.getHAResources({});\nconst example = all.then(all =\u003e .map(([__key, __value]) =\u003e (proxmoxve.HA.getHAResource({\n resourceId: __value,\n}))));\nexport const proxmoxVirtualEnvironmentHaresourcesFull = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.HA.get_ha_resources()\nexample = [proxmoxve.HA.get_ha_resource(resource_id=__value) for __key, __value in all.resource_ids]\npulumi.export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.HA.GetHAResources.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.HA.GetHAResource.Invoke(new()\n {\n ResourceId = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentHaresourcesFull\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport com.pulumi.proxmoxve.HA.inputs.GetHAResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = HAFunctions.getHAResources();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHAResource.\n","properties":{"resourceId":{"type":"string","description":"The identifier of the Proxmox HA resource to read.\n"}},"type":"object","required":["resourceId"]},"outputs":{"description":"A collection of values returned by getHAResource.\n","properties":{"comment":{"description":"The comment associated with this resource.\n","type":"string"},"group":{"description":"The identifier of the High Availability group this resource is a member of.\n","type":"string"},"id":{"description":"The unique identifier of this resource.\n","type":"string"},"maxRelocate":{"description":"The maximal number of relocation attempts.\n","type":"integer"},"maxRestart":{"description":"The maximal number of restart attempts.\n","type":"integer"},"resourceId":{"description":"The identifier of the Proxmox HA resource to read.\n","type":"string"},"state":{"description":"The desired state of the resource.\n","type":"string"},"type":{"description":"The type of High Availability resource (`vm` or `ct`).\n","type":"string"}},"required":["comment","group","id","maxRelocate","maxRestart","resourceId","state","type"],"type":"object"}},"proxmoxve:HA/getHAResources:getHAResources":{"description":"Retrieves the list of High Availability resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst exampleAll = proxmoxve.HA.getHAResources({});\nconst exampleVm = proxmoxve.HA.getHAResources({\n type: \"vm\",\n});\nexport const dataProxmoxVirtualEnvironmentHaresources = {\n all: exampleAll.then(exampleAll =\u003e exampleAll.resourceIds),\n vms: exampleVm.then(exampleVm =\u003e exampleVm.resourceIds),\n};\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample_all = proxmoxve.HA.get_ha_resources()\nexample_vm = proxmoxve.HA.get_ha_resources(type=\"vm\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHaresources\", {\n \"all\": example_all.resource_ids,\n \"vms\": example_vm.resource_ids,\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleAll = ProxmoxVE.HA.GetHAResources.Invoke();\n\n var exampleVm = ProxmoxVE.HA.GetHAResources.Invoke(new()\n {\n Type = \"vm\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHaresources\"] = \n {\n { \"all\", exampleAll.Apply(getHAResourcesResult =\u003e getHAResourcesResult.ResourceIds) },\n { \"vms\", exampleVm.Apply(getHAResourcesResult =\u003e getHAResourcesResult.ResourceIds) },\n },\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleAll, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nexampleVm, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{\nType: pulumi.StringRef(\"vm\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"dataProxmoxVirtualEnvironmentHaresources\", interface{}Map{\n\"all\": exampleAll.ResourceIds,\n\"vms\": exampleVm.ResourceIds,\n})\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport com.pulumi.proxmoxve.HA.inputs.GetHAResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var exampleAll = HAFunctions.getHAResources();\n\n final var exampleVm = HAFunctions.getHAResources(GetHAResourcesArgs.builder()\n .type(\"vm\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHaresources\", %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));\n }\n}\n```\n```yaml\nvariables:\n exampleAll:\n fn::invoke:\n function: proxmoxve:HA:getHAResources\n arguments: {}\n exampleVm:\n fn::invoke:\n function: proxmoxve:HA:getHAResources\n arguments:\n type: vm\noutputs:\n dataProxmoxVirtualEnvironmentHaresources:\n all: ${exampleAll.resourceIds}\n vms: ${exampleVm.resourceIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHAResources.\n","properties":{"type":{"type":"string","description":"The type of High Availability resources to fetch (`vm` or `ct`). All resources will be fetched if this option is unset.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHAResources.\n","properties":{"id":{"description":"The unique identifier of this resource.\n","type":"string"},"resourceIds":{"description":"The identifiers of the High Availability resources.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The type of High Availability resources to fetch (`vm` or `ct`). All resources will be fetched if this option is unset.\n","type":"string"}},"required":["id","resourceIds"],"type":"object"}},"proxmoxve:Hardware/getMappings:getMappings":{"description":"Retrieves a list of hardware mapping resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example-pci = proxmoxve.Hardware.getMappings({\n checkNode: \"pve\",\n type: \"pci\",\n});\nconst example-usb = proxmoxve.Hardware.getMappings({\n checkNode: \"pve\",\n type: \"usb\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingsPci = example_pci;\nexport const dataProxmoxVirtualEnvironmentHardwareMappingsUsb = example_usb;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample_pci = proxmoxve.Hardware.get_mappings(check_node=\"pve\",\n type=\"pci\")\nexample_usb = proxmoxve.Hardware.get_mappings(check_node=\"pve\",\n type=\"usb\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci)\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example_pci = ProxmoxVE.Hardware.GetMappings.Invoke(new()\n {\n CheckNode = \"pve\",\n Type = \"pci\",\n });\n\n var example_usb = ProxmoxVE.Hardware.GetMappings.Invoke(new()\n {\n CheckNode = \"pve\",\n Type = \"usb\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\"] = example_pci,\n [\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\"] = example_usb,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample_pci, err := Hardware.GetMappings(ctx, \u0026hardware.GetMappingsArgs{\n\t\t\tCheckNode: pulumi.StringRef(\"pve\"),\n\t\t\tType: \"pci\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_usb, err := Hardware.GetMappings(ctx, \u0026hardware.GetMappingsArgs{\n\t\t\tCheckNode: pulumi.StringRef(\"pve\"),\n\t\t\tType: \"usb\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci)\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware.HardwareFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetMappingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example-pci = HardwareFunctions.getMappings(GetMappingsArgs.builder()\n .checkNode(\"pve\")\n .type(\"pci\")\n .build());\n\n final var example-usb = HardwareFunctions.getMappings(GetMappingsArgs.builder()\n .checkNode(\"pve\")\n .type(\"usb\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci);\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb);\n }\n}\n```\n```yaml\nvariables:\n example-pci:\n fn::invoke:\n function: proxmoxve:Hardware:getMappings\n arguments:\n checkNode: pve\n type: pci\n example-usb:\n fn::invoke:\n function: proxmoxve:Hardware:getMappings\n arguments:\n checkNode: pve\n type: usb\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingsPci: ${[\"example-pci\"]}\n dataProxmoxVirtualEnvironmentHardwareMappingsUsb: ${[\"example-usb\"]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMappings.\n","properties":{"checkNode":{"type":"string","description":"The name of the node whose configurations should be checked for correctness.\n"},"type":{"type":"string","description":"The type of the hardware mappings.\n"}},"type":"object","required":["type"]},"outputs":{"description":"A collection of values returned by getMappings.\n","properties":{"checkNode":{"description":"The name of the node whose configurations should be checked for correctness.\n","type":"string"},"checks":{"description":"Might contain relevant diagnostics about incorrect configurations.\n","items":{"$ref":"#/types/proxmoxve:Hardware/getMappingsCheck:getMappingsCheck"},"type":"array"},"id":{"description":"The unique identifier of this hardware mappings data source.\n","type":"string"},"ids":{"description":"The identifiers of the hardware mappings.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the hardware mappings.\n","type":"string"}},"required":["checks","id","ids","type"],"type":"object"}},"proxmoxve:Hardware/mapping/getPci:getPci":{"description":"Retrieves a PCI hardware mapping from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Hardware.mapping.getPci({\n name: \"example\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingPci = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Hardware.mapping.get_pci(name=\"example\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Hardware.Mapping.GetPci.Invoke(new()\n {\n Name = \"example\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingPci\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Hardware.GetPci(ctx, \u0026mapping.GetPciArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware_mapping.Hardware_mappingFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetPciArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Hardware/mappingFunctions.getPci(GetPciArgs.builder()\n .name(\"example\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example.applyValue(getPciResult -\u003e getPciResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Hardware/mapping:getPci\n arguments:\n name: example\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingPci: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPci.\n","properties":{"name":{"type":"string","description":"The name of this PCI hardware mapping.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getPci.\n","properties":{"comment":{"description":"The comment of this PCI hardware mapping.\n","type":"string"},"id":{"description":"The unique identifier of this PCI hardware mapping data source.\n","type":"string"},"maps":{"description":"The actual map of devices for the hardware mapping.\n","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/getPciMap:getPciMap"},"type":"array"},"mediatedDevices":{"description":"Indicates whether to use with mediated devices.\n","type":"boolean"},"name":{"description":"The name of this PCI hardware mapping.\n","type":"string"}},"required":["comment","id","maps","mediatedDevices","name"],"type":"object"}},"proxmoxve:Hardware/mapping/getUsb:getUsb":{"description":"Retrieves a USB hardware mapping from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Hardware.mapping.getUsb({\n name: \"example\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingUsb = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Hardware.mapping.get_usb(name=\"example\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Hardware.Mapping.GetUsb.Invoke(new()\n {\n Name = \"example\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Hardware.GetUsb(ctx, \u0026mapping.GetUsbArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware_mapping.Hardware_mappingFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetUsbArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Hardware/mappingFunctions.getUsb(GetUsbArgs.builder()\n .name(\"example\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example.applyValue(getUsbResult -\u003e getUsbResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Hardware/mapping:getUsb\n arguments:\n name: example\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingUsb: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUsb.\n","properties":{"name":{"type":"string","description":"The name of this USB hardware mapping.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getUsb.\n","properties":{"comment":{"description":"The comment of this USB hardware mapping.\n","type":"string"},"id":{"description":"The unique identifier of this USB hardware mapping data source.\n","type":"string"},"maps":{"description":"The actual map of devices for the hardware mapping.\n","items":{"$ref":"#/types/proxmoxve:Hardware/mapping/getUsbMap:getUsbMap"},"type":"array"},"name":{"description":"The name of this USB hardware mapping.\n","type":"string"}},"required":["comment","id","maps","name"],"type":"object"}},"proxmoxve:Network/getDNS:getDNS":{"description":"Retrieves the DNS configuration for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNode = proxmoxve.Network.getDNS({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node = proxmoxve.Network.get_dns(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNode = ProxmoxVE.Network.GetDNS.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetDNS(ctx, \u0026network.GetDNSArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetDNSArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNode = NetworkFunctions.getDNS(GetDNSArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNode:\n fn::invoke:\n function: proxmoxve:Network:getDNS\n arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDNS.\n","properties":{"nodeName":{"type":"string","description":"A node name.\n"}},"type":"object","required":["nodeName"]},"outputs":{"description":"A collection of values returned by getDNS.\n","properties":{"domain":{"description":"The DNS search domain.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"nodeName":{"type":"string"},"servers":{"description":"The DNS servers.\n","items":{"type":"string"},"type":"array"}},"required":["domain","nodeName","servers","id"],"type":"object"}},"proxmoxve:Network/getHosts:getHosts":{"description":"Retrieves all the host entries from a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeHostEntries = proxmoxve.Network.getHosts({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_host_entries = proxmoxve.Network.get_hosts(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNodeHostEntries = ProxmoxVE.Network.GetHosts.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetHosts(ctx, \u0026network.GetHostsArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetHostsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNodeHostEntries = NetworkFunctions.getHosts(GetHostsArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeHostEntries:\n fn::invoke:\n function: proxmoxve:Network:getHosts\n arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHosts.\n","properties":{"nodeName":{"type":"string","description":"A node name.\n"}},"type":"object","required":["nodeName"]},"outputs":{"description":"A collection of values returned by getHosts.\n","properties":{"addresses":{"description":"The IP addresses.\n","items":{"type":"string"},"type":"array"},"digest":{"description":"The SHA1 digest.\n","type":"string"},"entries":{"description":"The host entries (conversion of `addresses` and `hostnames` into\nobjects).\n","items":{"$ref":"#/types/proxmoxve:Network/getHostsEntry:getHostsEntry"},"type":"array"},"hostnames":{"description":"The hostnames associated with each of the IP addresses.\n","items":{"items":{"type":"string"},"type":"array"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"nodeName":{"type":"string"}},"required":["addresses","digest","entries","hostnames","nodeName","id"],"type":"object"}},"proxmoxve:Network/getTime:getTime":{"description":"Retrieves the current time for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeTime = proxmoxve.Network.getTime({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_time = proxmoxve.Network.get_time(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNodeTime = ProxmoxVE.Network.GetTime.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetTime(ctx, \u0026network.GetTimeArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetTimeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNodeTime = NetworkFunctions.getTime(GetTimeArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeTime:\n fn::invoke:\n function: proxmoxve:Network:getTime\n arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTime.\n","properties":{"nodeName":{"type":"string","description":"A node name.\n"}},"type":"object","required":["nodeName"]},"outputs":{"description":"A collection of values returned by getTime.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"localTime":{"description":"The node's local time.\n","type":"string"},"nodeName":{"type":"string"},"timeZone":{"description":"The node's time zone.\n","type":"string"},"utcTime":{"description":"The node's local time formatted as UTC.\n","type":"string"}},"required":["localTime","nodeName","timeZone","utcTime","id"],"type":"object"}},"proxmoxve:Network/getVersion:getVersion":{"description":"Retrieves API version details.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Network.getVersion({});\nexport const dataProxmoxVirtualEnvironmentVersion = {\n release: example.then(example =\u003e example.release),\n repository_id: example.then(example =\u003e example.repositoryId),\n version: example.then(example =\u003e example.version),\n};\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Network.get_version()\npulumi.export(\"dataProxmoxVirtualEnvironmentVersion\", {\n \"release\": example.release,\n \"repository_id\": example.repository_id,\n \"version\": example.version,\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Network.GetVersion.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentVersion\"] = \n {\n { \"release\", example.Apply(getVersionResult =\u003e getVersionResult.Release) },\n { \"repository_id\", example.Apply(getVersionResult =\u003e getVersionResult.RepositoryId) },\n { \"version\", example.Apply(getVersionResult =\u003e getVersionResult.Version) },\n },\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Network.GetVersion(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentVersion\", pulumi.StringMap{\n\t\t\t\"release\": example.Release,\n\t\t\t\"repository_id\": example.RepositoryId,\n\t\t\t\"version\": example.Version,\n\t\t})\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = NetworkFunctions.getVersion();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentVersion\", %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Network:getVersion\n arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentVersion:\n release: ${example.release}\n repository_id: ${example.repositoryId}\n version: ${example.version}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getVersion.\n","properties":{"id":{"description":"Placeholder identifier attribute.\n","type":"string"},"release":{"description":"The current Proxmox VE point release in `x.y` format.\n","type":"string"},"repositoryId":{"description":"The short git revision from which this version was build.\n","type":"string"},"version":{"description":"The full pve-manager package version of this node.\n","type":"string"}},"required":["id","release","repositoryId","version"],"type":"object"}},"proxmoxve:Permission/getGroup:getGroup":{"description":"Retrieves information about a specific user group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsTeam = proxmoxve.Permission.getGroup({\n groupId: \"operations-team\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_team = proxmoxve.Permission.get_group(group_id=\"operations-team\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsTeam = ProxmoxVE.Permission.GetGroup.Invoke(new()\n {\n GroupId = \"operations-team\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetGroup(ctx, \u0026permission.GetGroupArgs{\n\t\t\tGroupId: \"operations-team\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsTeam = PermissionFunctions.getGroup(GetGroupArgs.builder()\n .groupId(\"operations-team\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsTeam:\n fn::invoke:\n function: proxmoxve:Permission:getGroup\n arguments:\n groupId: operations-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroup.\n","properties":{"groupId":{"type":"string","description":"The group identifier.\n"}},"type":"object","required":["groupId"]},"outputs":{"description":"A collection of values returned by getGroup.\n","properties":{"acls":{"description":"The access control list.\n","items":{"$ref":"#/types/proxmoxve:Permission/getGroupAcl:getGroupAcl"},"type":"array"},"comment":{"description":"The group comment.\n","type":"string"},"groupId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"members":{"description":"The group members as a list with `username@realm` entries.\n","items":{"type":"string"},"type":"array"}},"required":["acls","comment","groupId","members","id"],"type":"object"}},"proxmoxve:Permission/getGroups:getGroups":{"description":"Retrieves basic information about all available user groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableGroups = proxmoxve.Permission.getGroups({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_groups = proxmoxve.Permission.get_groups()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableGroups = ProxmoxVE.Permission.GetGroups.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableGroups = PermissionFunctions.getGroups();\n\n }\n}\n```\n```yaml\nvariables:\n availableGroups:\n fn::invoke:\n function: proxmoxve:Permission:getGroups\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"comments":{"description":"The group comments.\n","items":{"type":"string"},"type":"array"},"groupIds":{"description":"The group identifiers.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"}},"required":["comments","groupIds","id"],"type":"object"}},"proxmoxve:Permission/getPool:getPool":{"description":"Retrieves information about a specific resource pool.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsPool = proxmoxve.Permission.getPool({\n poolId: \"operations\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_pool = proxmoxve.Permission.get_pool(pool_id=\"operations\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsPool = ProxmoxVE.Permission.GetPool.Invoke(new()\n {\n PoolId = \"operations\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetPool(ctx, \u0026permission.GetPoolArgs{\n\t\t\tPoolId: \"operations\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsPool = PermissionFunctions.getPool(GetPoolArgs.builder()\n .poolId(\"operations\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsPool:\n fn::invoke:\n function: proxmoxve:Permission:getPool\n arguments:\n poolId: operations\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPool.\n","properties":{"poolId":{"type":"string","description":"The pool identifier.\n"}},"type":"object","required":["poolId"]},"outputs":{"description":"A collection of values returned by getPool.\n","properties":{"comment":{"description":"The pool comment.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"members":{"description":"The pool members.\n","items":{"$ref":"#/types/proxmoxve:Permission/getPoolMember:getPoolMember"},"type":"array"},"poolId":{"type":"string"}},"required":["comment","members","poolId","id"],"type":"object"}},"proxmoxve:Permission/getPools:getPools":{"description":"Retrieves the identifiers for all the available resource pools.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availablePools = proxmoxve.Permission.getPools({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_pools = proxmoxve.Permission.get_pools()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availablePools = ProxmoxVE.Permission.GetPools.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetPools(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availablePools = PermissionFunctions.getPools();\n\n }\n}\n```\n```yaml\nvariables:\n availablePools:\n fn::invoke:\n function: proxmoxve:Permission:getPools\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getPools.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"poolIds":{"description":"The pool identifiers.\n","items":{"type":"string"},"type":"array"}},"required":["poolIds","id"],"type":"object"}},"proxmoxve:Permission/getRole:getRole":{"description":"Retrieves information about a specific role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsRole = proxmoxve.Permission.getRole({\n roleId: \"operations\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_role = proxmoxve.Permission.get_role(role_id=\"operations\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsRole = ProxmoxVE.Permission.GetRole.Invoke(new()\n {\n RoleId = \"operations\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetRole(ctx, \u0026permission.GetRoleArgs{\n\t\t\tRoleId: \"operations\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsRole = PermissionFunctions.getRole(GetRoleArgs.builder()\n .roleId(\"operations\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsRole:\n fn::invoke:\n function: proxmoxve:Permission:getRole\n arguments:\n roleId: operations\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRole.\n","properties":{"roleId":{"type":"string","description":"The role identifier.\n"}},"type":"object","required":["roleId"]},"outputs":{"description":"A collection of values returned by getRole.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"privileges":{"description":"The role privileges\n","items":{"type":"string"},"type":"array"},"roleId":{"type":"string"}},"required":["privileges","roleId","id"],"type":"object"}},"proxmoxve:Permission/getRoles:getRoles":{"description":"Retrieves information about all the available roles.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableRoles = proxmoxve.Permission.getRoles({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_roles = proxmoxve.Permission.get_roles()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableRoles = ProxmoxVE.Permission.GetRoles.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetRoles(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableRoles = PermissionFunctions.getRoles();\n\n }\n}\n```\n```yaml\nvariables:\n availableRoles:\n fn::invoke:\n function: proxmoxve:Permission:getRoles\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getRoles.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"privileges":{"description":"The role privileges.\n","items":{"items":{"type":"string"},"type":"array"},"type":"array"},"roleIds":{"description":"The role identifiers.\n","items":{"type":"string"},"type":"array"},"specials":{"description":"Whether the role is special (built-in).\n","items":{"type":"boolean"},"type":"array"}},"required":["privileges","roleIds","specials","id"],"type":"object"}},"proxmoxve:Permission/getUser:getUser":{"description":"Retrieves information about a specific user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsUser = proxmoxve.Permission.getUser({\n userId: \"operation@pam\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_user = proxmoxve.Permission.get_user(user_id=\"operation@pam\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsUser = ProxmoxVE.Permission.GetUser.Invoke(new()\n {\n UserId = \"operation@pam\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetUser(ctx, \u0026permission.GetUserArgs{\n\t\t\tUserId: \"operation@pam\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsUser = PermissionFunctions.getUser(GetUserArgs.builder()\n .userId(\"operation@pam\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsUser:\n fn::invoke:\n function: proxmoxve:Permission:getUser\n arguments:\n userId: operation@pam\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUser.\n","properties":{"userId":{"type":"string","description":"The user identifier.\n"}},"type":"object","required":["userId"]},"outputs":{"description":"A collection of values returned by getUser.\n","properties":{"acls":{"description":"The access control list.\n","items":{"$ref":"#/types/proxmoxve:Permission/getUserAcl:getUserAcl"},"type":"array"},"comment":{"description":"The user comment.\n","type":"string"},"email":{"description":"The user's email address.\n","type":"string"},"enabled":{"description":"Whether the user account is enabled.\n","type":"boolean"},"expirationDate":{"description":"The user account's expiration date (RFC 3339).\n","type":"string"},"firstName":{"description":"The user's first name.\n","type":"string"},"groups":{"description":"The user's groups.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"keys":{"description":"The user's keys.\n","type":"string"},"lastName":{"description":"The user's last name.\n","type":"string"},"userId":{"type":"string"}},"required":["acls","comment","email","enabled","expirationDate","firstName","groups","keys","lastName","userId","id"],"type":"object"}},"proxmoxve:Permission/getUsers:getUsers":{"description":"Retrieves information about all the available users.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableUsers = proxmoxve.Permission.getUsers({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_users = proxmoxve.Permission.get_users()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableUsers = ProxmoxVE.Permission.GetUsers.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetUsers(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableUsers = PermissionFunctions.getUsers();\n\n }\n}\n```\n```yaml\nvariables:\n availableUsers:\n fn::invoke:\n function: proxmoxve:Permission:getUsers\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"comments":{"description":"The user comments.\n","items":{"type":"string"},"type":"array"},"emails":{"description":"The users' email addresses.\n","items":{"type":"string"},"type":"array"},"enableds":{"description":"Whether a user account is enabled.\n","items":{"type":"boolean"},"type":"array"},"expirationDates":{"description":"The user accounts' expiration dates (RFC 3339).\n","items":{"type":"string"},"type":"array"},"firstNames":{"description":"The users' first names.\n","items":{"type":"string"},"type":"array"},"groups":{"description":"The users' groups.\n","items":{"items":{"type":"string"},"type":"array"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"keys":{"description":"The users' keys.\n","items":{"type":"string"},"type":"array"},"lastNames":{"description":"The users' last names.\n","items":{"type":"string"},"type":"array"},"userIds":{"description":"The user identifiers.\n","items":{"type":"string"},"type":"array"}},"required":["comments","emails","enableds","expirationDates","firstNames","groups","keys","lastNames","userIds","id"],"type":"object"}},"proxmoxve:Storage/getDatastores:getDatastores":{"description":"Retrieves information about all the datastores available to a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNode = proxmoxve.Storage.getDatastores({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node = proxmoxve.Storage.get_datastores(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNode = ProxmoxVE.Storage.GetDatastores.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Storage.GetDatastores(ctx, \u0026storage.GetDatastoresArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Storage.StorageFunctions;\nimport com.pulumi.proxmoxve.Storage.inputs.GetDatastoresArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNode = StorageFunctions.getDatastores(GetDatastoresArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNode:\n fn::invoke:\n function: proxmoxve:Storage:getDatastores\n arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatastores.\n","properties":{"nodeName":{"type":"string","description":"A node name.\n"}},"type":"object","required":["nodeName"]},"outputs":{"description":"A collection of values returned by getDatastores.\n","properties":{"actives":{"description":"Whether the datastore is active.\n","items":{"type":"boolean"},"type":"array"},"contentTypes":{"description":"The allowed content types.\n","items":{"items":{"type":"string"},"type":"array"},"type":"array"},"datastoreIds":{"description":"The datastore identifiers.\n","items":{"type":"string"},"type":"array"},"enableds":{"description":"Whether the datastore is enabled.\n","items":{"type":"boolean"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"nodeName":{"type":"string"},"shareds":{"description":"Whether the datastore is shared.\n","items":{"type":"boolean"},"type":"array"},"spaceAvailables":{"description":"The available space in bytes.\n","items":{"type":"integer"},"type":"array"},"spaceTotals":{"description":"The total space in bytes.\n","items":{"type":"integer"},"type":"array"},"spaceUseds":{"description":"The used space in bytes.\n","items":{"type":"integer"},"type":"array"},"types":{"description":"The storage types.\n","items":{"type":"string"},"type":"array"}},"required":["actives","contentTypes","datastoreIds","enableds","nodeName","shareds","spaceAvailables","spaceTotals","spaceUseds","types","id"],"type":"object"}},"proxmoxve:VM/getVirtualMachine:getVirtualMachine":{"description":"Retrieves information about a specific VM.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst testVm = proxmoxve.VM.getVirtualMachine({\n nodeName: \"test\",\n vmId: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\ntest_vm = proxmoxve.VM.get_virtual_machine(node_name=\"test\",\n vm_id=100)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testVm = ProxmoxVE.VM.GetVirtualMachine.Invoke(new()\n {\n NodeName = \"test\",\n VmId = 100,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/VM\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := VM.GetVirtualMachine(ctx, \u0026vm.GetVirtualMachineArgs{\n\t\t\tNodeName: \"test\",\n\t\t\tVmId: 100,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.VM.VMFunctions;\nimport com.pulumi.proxmoxve.VM.inputs.GetVirtualMachineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var testVm = VMFunctions.getVirtualMachine(GetVirtualMachineArgs.builder()\n .nodeName(\"test\")\n .vmId(100)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n testVm:\n fn::invoke:\n function: proxmoxve:VM:getVirtualMachine\n arguments:\n nodeName: test\n vmId: 100\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVirtualMachine.\n","properties":{"nodeName":{"type":"string","description":"The node name.\n"},"status":{"type":"string","description":"Status of the VM\n"},"template":{"type":"boolean","description":"Is VM a template (true) or a regular VM (false)\n"},"vmId":{"type":"integer","description":"The VM identifier.\n"}},"type":"object","required":["nodeName","vmId"]},"outputs":{"description":"A collection of values returned by getVirtualMachine.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"The virtual machine name.\n","type":"string"},"nodeName":{"type":"string"},"status":{"description":"Status of the VM\n","type":"string"},"tags":{"description":"A list of tags of the VM.\n","items":{"type":"string"},"type":"array"},"template":{"description":"Is VM a template (true) or a regular VM (false)\n","type":"boolean"},"vmId":{"type":"integer"}},"required":["name","nodeName","tags","vmId","id"],"type":"object"}},"proxmoxve:VM/getVirtualMachines:getVirtualMachines":{"description":"Retrieves information about all VMs in the Proxmox cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst ubuntuVms = proxmoxve.VM.getVirtualMachines({\n tags: [\"ubuntu\"],\n});\nconst ubuntuTemplates = proxmoxve.VM.getVirtualMachines({\n filters: [\n {\n name: \"template\",\n values: [\"true\"],\n },\n {\n name: \"status\",\n values: [\"stopped\"],\n },\n {\n name: \"name\",\n regex: true,\n values: [\"^ubuntu-20.*$\"],\n },\n {\n name: \"node_name\",\n regex: true,\n values: [\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n ],\n },\n ],\n tags: [\n \"template\",\n \"latest\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nubuntu_vms = proxmoxve.VM.get_virtual_machines(tags=[\"ubuntu\"])\nubuntu_templates = proxmoxve.VM.get_virtual_machines(filters=[\n {\n \"name\": \"template\",\n \"values\": [\"true\"],\n },\n {\n \"name\": \"status\",\n \"values\": [\"stopped\"],\n },\n {\n \"name\": \"name\",\n \"regex\": True,\n \"values\": [\"^ubuntu-20.*$\"],\n },\n {\n \"name\": \"node_name\",\n \"regex\": True,\n \"values\": [\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n ],\n },\n ],\n tags=[\n \"template\",\n \"latest\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ubuntuVms = ProxmoxVE.VM.GetVirtualMachines.Invoke(new()\n {\n Tags = new[]\n {\n \"ubuntu\",\n },\n });\n\n var ubuntuTemplates = ProxmoxVE.VM.GetVirtualMachines.Invoke(new()\n {\n Filters = new[]\n {\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"template\",\n Values = new[]\n {\n \"true\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"status\",\n Values = new[]\n {\n \"stopped\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"name\",\n Regex = true,\n Values = new[]\n {\n \"^ubuntu-20.*$\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"node_name\",\n Regex = true,\n Values = new[]\n {\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n },\n },\n },\n Tags = new[]\n {\n \"template\",\n \"latest\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/VM\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := VM.GetVirtualMachines(ctx, \u0026vm.GetVirtualMachinesArgs{\n\t\t\tTags: []string{\n\t\t\t\t\"ubuntu\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = VM.GetVirtualMachines(ctx, \u0026vm.GetVirtualMachinesArgs{\n\t\t\tFilters: []vm.GetVirtualMachinesFilter{\n\t\t\t\t{\n\t\t\t\t\tName: \"template\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"true\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"status\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"stopped\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"name\",\n\t\t\t\t\tRegex: pulumi.BoolRef(true),\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"^ubuntu-20.*$\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"node_name\",\n\t\t\t\t\tRegex: pulumi.BoolRef(true),\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"node_us_[1-3]\",\n\t\t\t\t\t\t\"node_eu_[1-3]\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: []string{\n\t\t\t\t\"template\",\n\t\t\t\t\"latest\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.VM.VMFunctions;\nimport com.pulumi.proxmoxve.VM.inputs.GetVirtualMachinesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var ubuntuVms = VMFunctions.getVirtualMachines(GetVirtualMachinesArgs.builder()\n .tags(\"ubuntu\")\n .build());\n\n final var ubuntuTemplates = VMFunctions.getVirtualMachines(GetVirtualMachinesArgs.builder()\n .filters( \n GetVirtualMachinesFilterArgs.builder()\n .name(\"template\")\n .values(true)\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"status\")\n .values(\"stopped\")\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"name\")\n .regex(true)\n .values(\"^ubuntu-20.*$\")\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"node_name\")\n .regex(true)\n .values( \n \"node_us_[1-3]\",\n \"node_eu_[1-3]\")\n .build())\n .tags( \n \"template\",\n \"latest\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n ubuntuVms:\n fn::invoke:\n function: proxmoxve:VM:getVirtualMachines\n arguments:\n tags:\n - ubuntu\n ubuntuTemplates:\n fn::invoke:\n function: proxmoxve:VM:getVirtualMachines\n arguments:\n filters:\n - name: template\n values:\n - true\n - name: status\n values:\n - stopped\n - name: name\n regex: true\n values:\n - ^ubuntu-20.*$\n - name: node_name\n regex: true\n values:\n - node_us_[1-3]\n - node_eu_[1-3]\n tags:\n - template\n - latest\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVirtualMachines.\n","properties":{"filters":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/getVirtualMachinesFilter:getVirtualMachinesFilter"},"description":"Filter blocks. The VM must satisfy all filter blocks to be included in the result.\n"},"nodeName":{"type":"string","description":"The node name. All cluster nodes will be queried in case this is omitted\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to filter the VMs. The VM must have all\nthe tags to be included in the result.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVirtualMachines.\n","properties":{"filters":{"items":{"$ref":"#/types/proxmoxve:VM/getVirtualMachinesFilter:getVirtualMachinesFilter"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"nodeName":{"description":"The node name.\n","type":"string"},"tags":{"description":"A list of tags of the VM.\n","items":{"type":"string"},"type":"array"},"vms":{"description":"The VMs list.\n","items":{"$ref":"#/types/proxmoxve:VM/getVirtualMachinesVm:getVirtualMachinesVm"},"type":"array"}},"required":["vms","id"],"type":"object"}},"proxmoxve:index/getNode:getNode":{"description":"Retrieves information about node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst node = proxmoxve.getNode({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nnode = proxmoxve.get_node()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var node = ProxmoxVE.GetNode.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := proxmoxve.GetNode(ctx, \u0026proxmoxve.GetNodeArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.ProxmoxveFunctions;\nimport com.pulumi.proxmoxve.inputs.GetNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var node = ProxmoxveFunctions.getNode();\n\n }\n}\n```\n```yaml\nvariables:\n node:\n fn::invoke:\n function: proxmoxve:getNode\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNode.\n","properties":{"nodeName":{"type":"string","description":"The node name.\n"}},"type":"object","required":["nodeName"]},"outputs":{"description":"A collection of values returned by getNode.\n","properties":{"cpuCount":{"description":"The CPU count on the node.\n","type":"integer"},"cpuModel":{"description":"The CPU model on the node.\n","type":"string"},"cpuSockets":{"description":"The CPU utilization on the node.\n","type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"memoryAvailable":{"description":"The memory available on the node.\n","type":"integer"},"memoryTotal":{"description":"The total memory on the node.\n","type":"integer"},"memoryUsed":{"description":"The memory used on the node.\n","type":"integer"},"nodeName":{"type":"string"},"uptime":{"description":"The uptime in seconds on the node.\n","type":"integer"}},"required":["cpuCount","cpuModel","cpuSockets","memoryAvailable","memoryTotal","memoryUsed","nodeName","uptime","id"],"type":"object"}},"proxmoxve:index/getVm2:getVm2":{"description":"!\u003e **DO NOT USE**\nThis is an experimental implementation of a Proxmox VM datasource using Plugin Framework.\n","inputs":{"description":"A collection of arguments for invoking getVm2.\n","properties":{"clone":{"$ref":"#/types/proxmoxve:index/getVm2Clone:getVm2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:index/getVm2Cpu:getVm2Cpu","description":"The CPU configuration.\n"},"description":{"type":"string","description":"The description of the VM.\n"},"id":{"type":"integer","description":"The unique identifier of the VM in the Proxmox cluster.\n"},"name":{"type":"string","description":"The name of the VM.\n"},"nodeName":{"type":"string","description":"The name of the node where the VM is provisioned.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags assigned to the VM.\n"},"template":{"type":"boolean","description":"Whether the VM is a template.\n"},"timeouts":{"$ref":"#/types/proxmoxve:index/getVm2Timeouts:getVm2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:index/getVm2Vga:getVm2Vga","description":"The VGA configuration.\n"}},"type":"object","required":["id","nodeName"]},"outputs":{"description":"A collection of values returned by getVm2.\n","properties":{"clone":{"$ref":"#/types/proxmoxve:index/getVm2Clone:getVm2Clone","description":"The cloning configuration.\n"},"cpu":{"$ref":"#/types/proxmoxve:index/getVm2Cpu:getVm2Cpu","description":"The CPU configuration.\n"},"description":{"description":"The description of the VM.\n","type":"string"},"id":{"description":"The unique identifier of the VM in the Proxmox cluster.\n","type":"integer"},"name":{"description":"The name of the VM.\n","type":"string"},"nodeName":{"description":"The name of the node where the VM is provisioned.\n","type":"string"},"tags":{"description":"The tags assigned to the VM.\n","items":{"type":"string"},"type":"array"},"template":{"description":"Whether the VM is a template.\n","type":"boolean"},"timeouts":{"$ref":"#/types/proxmoxve:index/getVm2Timeouts:getVm2Timeouts"},"vga":{"$ref":"#/types/proxmoxve:index/getVm2Vga:getVm2Vga","description":"The VGA configuration.\n"}},"required":["cpu","id","nodeName","tags","vga"],"type":"object"}}}} \ No newline at end of file diff --git a/provider/cmd/pulumi-resource-proxmoxve/schema.json b/provider/cmd/pulumi-resource-proxmoxve/schema.json index 4079f76a..2b41c63c 100644 --- a/provider/cmd/pulumi-resource-proxmoxve/schema.json +++ b/provider/cmd/pulumi-resource-proxmoxve/schema.json @@ -3851,7 +3851,7 @@ } }, "proxmoxve:HA/hAResource:HAResource": { - "description": "Manages Proxmox HA resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.ha.HAResource(\"example\", {\n resourceId: \"vm:123\",\n state: \"started\",\n group: \"example\",\n comment: \"Managed by Pulumi\",\n}, {\n dependsOn: [proxmox_virtual_environment_hagroup.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.ha.HAResource(\"example\",\n resource_id=\"vm:123\",\n state=\"started\",\n group=\"example\",\n comment=\"Managed by Pulumi\",\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_hagroup[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.HA.HAResource(\"example\", new()\n {\n ResourceId = \"vm:123\",\n State = \"started\",\n Group = \"example\",\n Comment = \"Managed by Pulumi\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_hagroup.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := HA.NewHAResource(ctx, \"example\", \u0026HA.HAResourceArgs{\n\t\t\tResourceId: pulumi.String(\"vm:123\"),\n\t\t\tState: pulumi.String(\"started\"),\n\t\t\tGroup: pulumi.String(\"example\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_hagroup.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAResource;\nimport com.pulumi.proxmoxve.HA.HAResourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new HAResource(\"example\", HAResourceArgs.builder()\n .resourceId(\"vm:123\")\n .state(\"started\")\n .group(\"example\")\n .comment(\"Managed by Pulumi\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_hagroup.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:HA:HAResource\n properties:\n resourceId: vm:123\n state: started\n group: example\n comment: Managed by Pulumi\n options:\n dependson:\n - ${proxmox_virtual_environment_hagroup.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nHA resources can be imported using their identifiers, e.g.:\n\n```sh\n$ pulumi import proxmoxve:HA/hAResource:HAResource example vm:123\n```\n\n", + "description": "Manages Proxmox HA resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.ha.HAResource(\"example\", {\n resourceId: \"vm:123\",\n state: \"started\",\n group: \"example\",\n comment: \"Managed by Pulumi\",\n}, {\n dependsOn: [proxmox_virtual_environment_hagroup.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.ha.HAResource(\"example\",\n resource_id=\"vm:123\",\n state=\"started\",\n group=\"example\",\n comment=\"Managed by Pulumi\",\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_hagroup[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.HA.HAResource(\"example\", new()\n {\n ResourceId = \"vm:123\",\n State = \"started\",\n Group = \"example\",\n Comment = \"Managed by Pulumi\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_hagroup.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := HA.NewHAResource(ctx, \"example\", \u0026HA.HAResourceArgs{\n\t\t\tResourceId: pulumi.String(\"vm:123\"),\n\t\t\tState: pulumi.String(\"started\"),\n\t\t\tGroup: pulumi.String(\"example\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_hagroup.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAResource;\nimport com.pulumi.proxmoxve.HA.HAResourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new HAResource(\"example\", HAResourceArgs.builder()\n .resourceId(\"vm:123\")\n .state(\"started\")\n .group(\"example\")\n .comment(\"Managed by Pulumi\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_hagroup.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:HA:HAResource\n properties:\n resourceId: vm:123\n state: started\n group: example\n comment: Managed by Pulumi\n options:\n dependsOn:\n - ${proxmox_virtual_environment_hagroup.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\nHA resources can be imported using their identifiers, e.g.:\n\n```sh\n$ pulumi import proxmoxve:HA/hAResource:HAResource example vm:123\n```\n\n", "properties": { "comment": { "type": "string", @@ -4172,7 +4172,7 @@ } }, "proxmoxve:Network/firewallAlias:FirewallAlias": { - "description": "Aliases are used to see what devices or group of devices are affected by a rule.\nWe can create aliases to identify an IP address or a network. Aliases can be\ncreated on the cluster level, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst localNetwork = new proxmoxve.network.FirewallAlias(\"localNetwork\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n cidr: \"192.168.0.0/23\",\n comment: \"Managed by Pulumi\",\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\nconst ubuntuVm = new proxmoxve.network.FirewallAlias(\"ubuntuVm\", {\n cidr: \"192.168.0.1\",\n comment: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nlocal_network = proxmoxve.network.FirewallAlias(\"localNetwork\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n cidr=\"192.168.0.0/23\",\n comment=\"Managed by Pulumi\",\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\nubuntu_vm = proxmoxve.network.FirewallAlias(\"ubuntuVm\",\n cidr=\"192.168.0.1\",\n comment=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var localNetwork = new ProxmoxVE.Network.FirewallAlias(\"localNetwork\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Cidr = \"192.168.0.0/23\",\n Comment = \"Managed by Pulumi\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n var ubuntuVm = new ProxmoxVE.Network.FirewallAlias(\"ubuntuVm\", new()\n {\n Cidr = \"192.168.0.1\",\n Comment = \"Managed by Pulumi\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallAlias(ctx, \"localNetwork\", \u0026Network.FirewallAliasArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tCidr: pulumi.String(\"192.168.0.0/23\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Network.NewFirewallAlias(ctx, \"ubuntuVm\", \u0026Network.FirewallAliasArgs{\n\t\t\tCidr: pulumi.String(\"192.168.0.1\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallAlias;\nimport com.pulumi.proxmoxve.Network.FirewallAliasArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var localNetwork = new FirewallAlias(\"localNetwork\", FirewallAliasArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .cidr(\"192.168.0.0/23\")\n .comment(\"Managed by Pulumi\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n var ubuntuVm = new FirewallAlias(\"ubuntuVm\", FirewallAliasArgs.builder()\n .cidr(\"192.168.0.1\")\n .comment(\"Managed by Pulumi\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n localNetwork:\n type: proxmoxve:Network:FirewallAlias\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n cidr: 192.168.0.0/23\n comment: Managed by Pulumi\n options:\n dependson:\n - ${proxmox_virtual_environment_vm.example}\n ubuntuVm:\n type: proxmoxve:Network:FirewallAlias\n properties:\n cidr: 192.168.0.1\n comment: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Aliases are used to see what devices or group of devices are affected by a rule.\nWe can create aliases to identify an IP address or a network. Aliases can be\ncreated on the cluster level, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst localNetwork = new proxmoxve.network.FirewallAlias(\"localNetwork\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n cidr: \"192.168.0.0/23\",\n comment: \"Managed by Pulumi\",\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\nconst ubuntuVm = new proxmoxve.network.FirewallAlias(\"ubuntuVm\", {\n cidr: \"192.168.0.1\",\n comment: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nlocal_network = proxmoxve.network.FirewallAlias(\"localNetwork\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n cidr=\"192.168.0.0/23\",\n comment=\"Managed by Pulumi\",\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\nubuntu_vm = proxmoxve.network.FirewallAlias(\"ubuntuVm\",\n cidr=\"192.168.0.1\",\n comment=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var localNetwork = new ProxmoxVE.Network.FirewallAlias(\"localNetwork\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Cidr = \"192.168.0.0/23\",\n Comment = \"Managed by Pulumi\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n var ubuntuVm = new ProxmoxVE.Network.FirewallAlias(\"ubuntuVm\", new()\n {\n Cidr = \"192.168.0.1\",\n Comment = \"Managed by Pulumi\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallAlias(ctx, \"localNetwork\", \u0026Network.FirewallAliasArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tCidr: pulumi.String(\"192.168.0.0/23\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Network.NewFirewallAlias(ctx, \"ubuntuVm\", \u0026Network.FirewallAliasArgs{\n\t\t\tCidr: pulumi.String(\"192.168.0.1\"),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallAlias;\nimport com.pulumi.proxmoxve.Network.FirewallAliasArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var localNetwork = new FirewallAlias(\"localNetwork\", FirewallAliasArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .cidr(\"192.168.0.0/23\")\n .comment(\"Managed by Pulumi\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n var ubuntuVm = new FirewallAlias(\"ubuntuVm\", FirewallAliasArgs.builder()\n .cidr(\"192.168.0.1\")\n .comment(\"Managed by Pulumi\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n localNetwork:\n type: proxmoxve:Network:FirewallAlias\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n cidr: 192.168.0.0/23\n comment: Managed by Pulumi\n options:\n dependsOn:\n - ${proxmox_virtual_environment_vm.example}\n ubuntuVm:\n type: proxmoxve:Network:FirewallAlias\n properties:\n cidr: 192.168.0.1\n comment: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "cidr": { "type": "string", @@ -4264,7 +4264,7 @@ } }, "proxmoxve:Network/firewallIPSet:FirewallIPSet": { - "description": "An IPSet allows us to group multiple IP addresses, IP subnets and aliases. Aliases can be\ncreated on the cluster level, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst ipset = new proxmoxve.network.FirewallIPSet(\"ipset\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n comment: \"Managed by Pulumi\",\n cidrs: [\n {\n name: \"192.168.0.0/23\",\n comment: \"Local network 1\",\n },\n {\n name: \"192.168.0.1\",\n comment: \"Server 1\",\n nomatch: true,\n },\n {\n name: \"192.168.2.1\",\n comment: \"Server 1\",\n },\n ],\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nipset = proxmoxve.network.FirewallIPSet(\"ipset\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n comment=\"Managed by Pulumi\",\n cidrs=[\n {\n \"name\": \"192.168.0.0/23\",\n \"comment\": \"Local network 1\",\n },\n {\n \"name\": \"192.168.0.1\",\n \"comment\": \"Server 1\",\n \"nomatch\": True,\n },\n {\n \"name\": \"192.168.2.1\",\n \"comment\": \"Server 1\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ipset = new ProxmoxVE.Network.FirewallIPSet(\"ipset\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Comment = \"Managed by Pulumi\",\n Cidrs = new[]\n {\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.0.0/23\",\n Comment = \"Local network 1\",\n },\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.0.1\",\n Comment = \"Server 1\",\n Nomatch = true,\n },\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.2.1\",\n Comment = \"Server 1\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallIPSet(ctx, \"ipset\", \u0026Network.FirewallIPSetArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tCidrs: network.FirewallIPSetCidrArray{\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.0.0/23\"),\n\t\t\t\t\tComment: pulumi.String(\"Local network 1\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.0.1\"),\n\t\t\t\t\tComment: pulumi.String(\"Server 1\"),\n\t\t\t\t\tNomatch: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.2.1\"),\n\t\t\t\t\tComment: pulumi.String(\"Server 1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallIPSet;\nimport com.pulumi.proxmoxve.Network.FirewallIPSetArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallIPSetCidrArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ipset = new FirewallIPSet(\"ipset\", FirewallIPSetArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .comment(\"Managed by Pulumi\")\n .cidrs( \n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.0.0/23\")\n .comment(\"Local network 1\")\n .build(),\n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.0.1\")\n .comment(\"Server 1\")\n .nomatch(true)\n .build(),\n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.2.1\")\n .comment(\"Server 1\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ipset:\n type: proxmoxve:Network:FirewallIPSet\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n comment: Managed by Pulumi\n cidrs:\n - name: 192.168.0.0/23\n comment: Local network 1\n - name: 192.168.0.1\n comment: Server 1\n nomatch: true\n - name: 192.168.2.1\n comment: Server 1\n options:\n dependson:\n - ${proxmox_virtual_environment_vm.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "An IPSet allows us to group multiple IP addresses, IP subnets and aliases. Aliases can be\ncreated on the cluster level, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst ipset = new proxmoxve.network.FirewallIPSet(\"ipset\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n comment: \"Managed by Pulumi\",\n cidrs: [\n {\n name: \"192.168.0.0/23\",\n comment: \"Local network 1\",\n },\n {\n name: \"192.168.0.1\",\n comment: \"Server 1\",\n nomatch: true,\n },\n {\n name: \"192.168.2.1\",\n comment: \"Server 1\",\n },\n ],\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nipset = proxmoxve.network.FirewallIPSet(\"ipset\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n comment=\"Managed by Pulumi\",\n cidrs=[\n {\n \"name\": \"192.168.0.0/23\",\n \"comment\": \"Local network 1\",\n },\n {\n \"name\": \"192.168.0.1\",\n \"comment\": \"Server 1\",\n \"nomatch\": True,\n },\n {\n \"name\": \"192.168.2.1\",\n \"comment\": \"Server 1\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ipset = new ProxmoxVE.Network.FirewallIPSet(\"ipset\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Comment = \"Managed by Pulumi\",\n Cidrs = new[]\n {\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.0.0/23\",\n Comment = \"Local network 1\",\n },\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.0.1\",\n Comment = \"Server 1\",\n Nomatch = true,\n },\n new ProxmoxVE.Network.Inputs.FirewallIPSetCidrArgs\n {\n Name = \"192.168.2.1\",\n Comment = \"Server 1\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallIPSet(ctx, \"ipset\", \u0026Network.FirewallIPSetArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tComment: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tCidrs: network.FirewallIPSetCidrArray{\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.0.0/23\"),\n\t\t\t\t\tComment: pulumi.String(\"Local network 1\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.0.1\"),\n\t\t\t\t\tComment: pulumi.String(\"Server 1\"),\n\t\t\t\t\tNomatch: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallIPSetCidrArgs{\n\t\t\t\t\tName: pulumi.String(\"192.168.2.1\"),\n\t\t\t\t\tComment: pulumi.String(\"Server 1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallIPSet;\nimport com.pulumi.proxmoxve.Network.FirewallIPSetArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallIPSetCidrArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ipset = new FirewallIPSet(\"ipset\", FirewallIPSetArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .comment(\"Managed by Pulumi\")\n .cidrs( \n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.0.0/23\")\n .comment(\"Local network 1\")\n .build(),\n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.0.1\")\n .comment(\"Server 1\")\n .nomatch(true)\n .build(),\n FirewallIPSetCidrArgs.builder()\n .name(\"192.168.2.1\")\n .comment(\"Server 1\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ipset:\n type: proxmoxve:Network:FirewallIPSet\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n comment: Managed by Pulumi\n cidrs:\n - name: 192.168.0.0/23\n comment: Local network 1\n - name: 192.168.0.1\n comment: Server 1\n nomatch: true\n - name: 192.168.2.1\n comment: Server 1\n options:\n dependsOn:\n - ${proxmox_virtual_environment_vm.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "cidrs": { "type": "array", @@ -4363,7 +4363,7 @@ } }, "proxmoxve:Network/firewallOptions:FirewallOptions": { - "description": "Manages firewall options on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.network.FirewallOptions(\"example\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n dhcp: true,\n enabled: false,\n ipfilter: true,\n logLevelIn: \"info\",\n logLevelOut: \"info\",\n macfilter: false,\n ndp: true,\n inputPolicy: \"ACCEPT\",\n outputPolicy: \"ACCEPT\",\n radv: true,\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.network.FirewallOptions(\"example\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n dhcp=True,\n enabled=False,\n ipfilter=True,\n log_level_in=\"info\",\n log_level_out=\"info\",\n macfilter=False,\n ndp=True,\n input_policy=\"ACCEPT\",\n output_policy=\"ACCEPT\",\n radv=True,\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.Network.FirewallOptions(\"example\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Dhcp = true,\n Enabled = false,\n Ipfilter = true,\n LogLevelIn = \"info\",\n LogLevelOut = \"info\",\n Macfilter = false,\n Ndp = true,\n InputPolicy = \"ACCEPT\",\n OutputPolicy = \"ACCEPT\",\n Radv = true,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallOptions(ctx, \"example\", \u0026Network.FirewallOptionsArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tDhcp: pulumi.Bool(true),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t\tIpfilter: pulumi.Bool(true),\n\t\t\tLogLevelIn: pulumi.String(\"info\"),\n\t\t\tLogLevelOut: pulumi.String(\"info\"),\n\t\t\tMacfilter: pulumi.Bool(false),\n\t\t\tNdp: pulumi.Bool(true),\n\t\t\tInputPolicy: pulumi.String(\"ACCEPT\"),\n\t\t\tOutputPolicy: pulumi.String(\"ACCEPT\"),\n\t\t\tRadv: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallOptions;\nimport com.pulumi.proxmoxve.Network.FirewallOptionsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new FirewallOptions(\"example\", FirewallOptionsArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .dhcp(true)\n .enabled(false)\n .ipfilter(true)\n .logLevelIn(\"info\")\n .logLevelOut(\"info\")\n .macfilter(false)\n .ndp(true)\n .inputPolicy(\"ACCEPT\")\n .outputPolicy(\"ACCEPT\")\n .radv(true)\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Network:FirewallOptions\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n dhcp: true\n enabled: false\n ipfilter: true\n logLevelIn: info\n logLevelOut: info\n macfilter: false\n ndp: true\n inputPolicy: ACCEPT\n outputPolicy: ACCEPT\n radv: true\n options:\n dependson:\n - ${proxmox_virtual_environment_vm.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Manages firewall options on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst example = new proxmoxve.network.FirewallOptions(\"example\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n dhcp: true,\n enabled: false,\n ipfilter: true,\n logLevelIn: \"info\",\n logLevelOut: \"info\",\n macfilter: false,\n ndp: true,\n inputPolicy: \"ACCEPT\",\n outputPolicy: \"ACCEPT\",\n radv: true,\n}, {\n dependsOn: [proxmox_virtual_environment_vm.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.network.FirewallOptions(\"example\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n dhcp=True,\n enabled=False,\n ipfilter=True,\n log_level_in=\"info\",\n log_level_out=\"info\",\n macfilter=False,\n ndp=True,\n input_policy=\"ACCEPT\",\n output_policy=\"ACCEPT\",\n radv=True,\n opts = pulumi.ResourceOptions(depends_on=[proxmox_virtual_environment_vm[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new ProxmoxVE.Network.FirewallOptions(\"example\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Dhcp = true,\n Enabled = false,\n Ipfilter = true,\n LogLevelIn = \"info\",\n LogLevelOut = \"info\",\n Macfilter = false,\n Ndp = true,\n InputPolicy = \"ACCEPT\",\n OutputPolicy = \"ACCEPT\",\n Radv = true,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallOptions(ctx, \"example\", \u0026Network.FirewallOptionsArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tDhcp: pulumi.Bool(true),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t\tIpfilter: pulumi.Bool(true),\n\t\t\tLogLevelIn: pulumi.String(\"info\"),\n\t\t\tLogLevelOut: pulumi.String(\"info\"),\n\t\t\tMacfilter: pulumi.Bool(false),\n\t\t\tNdp: pulumi.Bool(true),\n\t\t\tInputPolicy: pulumi.String(\"ACCEPT\"),\n\t\t\tOutputPolicy: pulumi.String(\"ACCEPT\"),\n\t\t\tRadv: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallOptions;\nimport com.pulumi.proxmoxve.Network.FirewallOptionsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new FirewallOptions(\"example\", FirewallOptionsArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .dhcp(true)\n .enabled(false)\n .ipfilter(true)\n .logLevelIn(\"info\")\n .logLevelOut(\"info\")\n .macfilter(false)\n .ndp(true)\n .inputPolicy(\"ACCEPT\")\n .outputPolicy(\"ACCEPT\")\n .radv(true)\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxmox_virtual_environment_vm.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: proxmoxve:Network:FirewallOptions\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n dhcp: true\n enabled: false\n ipfilter: true\n logLevelIn: info\n logLevelOut: info\n macfilter: false\n ndp: true\n inputPolicy: ACCEPT\n outputPolicy: ACCEPT\n radv: true\n options:\n dependsOn:\n - ${proxmox_virtual_environment_vm.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "containerId": { "type": "integer", @@ -4538,7 +4538,7 @@ } }, "proxmoxve:Network/firewallRules:FirewallRules": { - "description": "A security group is a collection of rules, defined at cluster level, which can\nbe used in all VMs' rules. For example, you can define a group named “webserver”\nwith rules to open the http and https ports. Rules can be created on the cluster\nlevel, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst inbound = new proxmoxve.network.FirewallRules(\"inbound\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n rules: [\n {\n type: \"in\",\n action: \"ACCEPT\",\n comment: \"Allow HTTP\",\n dest: \"192.168.1.5\",\n dport: \"80\",\n proto: \"tcp\",\n log: \"info\",\n },\n {\n type: \"in\",\n action: \"ACCEPT\",\n comment: \"Allow HTTPS\",\n dest: \"192.168.1.5\",\n dport: \"443\",\n proto: \"tcp\",\n log: \"info\",\n },\n {\n securityGroup: proxmox_virtual_environment_cluster_firewall_security_group.example.name,\n comment: \"From security group\",\n iface: \"net0\",\n },\n ],\n}, {\n dependsOn: [\n proxmox_virtual_environment_vm.example,\n proxmox_virtual_environment_cluster_firewall_security_group.example,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\ninbound = proxmoxve.network.FirewallRules(\"inbound\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n rules=[\n {\n \"type\": \"in\",\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTP\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"80\",\n \"proto\": \"tcp\",\n \"log\": \"info\",\n },\n {\n \"type\": \"in\",\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTPS\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"443\",\n \"proto\": \"tcp\",\n \"log\": \"info\",\n },\n {\n \"security_group\": proxmox_virtual_environment_cluster_firewall_security_group[\"example\"][\"name\"],\n \"comment\": \"From security group\",\n \"iface\": \"net0\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[\n proxmox_virtual_environment_vm[\"example\"],\n proxmox_virtual_environment_cluster_firewall_security_group[\"example\"],\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var inbound = new ProxmoxVE.Network.FirewallRules(\"inbound\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Rules = new[]\n {\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n Type = \"in\",\n Action = \"ACCEPT\",\n Comment = \"Allow HTTP\",\n Dest = \"192.168.1.5\",\n Dport = \"80\",\n Proto = \"tcp\",\n Log = \"info\",\n },\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n Type = \"in\",\n Action = \"ACCEPT\",\n Comment = \"Allow HTTPS\",\n Dest = \"192.168.1.5\",\n Dport = \"443\",\n Proto = \"tcp\",\n Log = \"info\",\n },\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n SecurityGroup = proxmox_virtual_environment_cluster_firewall_security_group.Example.Name,\n Comment = \"From security group\",\n Iface = \"net0\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n proxmox_virtual_environment_cluster_firewall_security_group.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallRules(ctx, \"inbound\", \u0026Network.FirewallRulesArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tRules: network.FirewallRulesRuleArray{\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTP\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"80\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTPS\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"443\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tSecurityGroup: pulumi.Any(proxmox_virtual_environment_cluster_firewall_security_group.Example.Name),\n\t\t\t\t\tComment: pulumi.String(\"From security group\"),\n\t\t\t\t\tIface: pulumi.String(\"net0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t\tproxmox_virtual_environment_cluster_firewall_security_group.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallRules;\nimport com.pulumi.proxmoxve.Network.FirewallRulesArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallRulesRuleArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var inbound = new FirewallRules(\"inbound\", FirewallRulesArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .rules( \n FirewallRulesRuleArgs.builder()\n .type(\"in\")\n .action(\"ACCEPT\")\n .comment(\"Allow HTTP\")\n .dest(\"192.168.1.5\")\n .dport(\"80\")\n .proto(\"tcp\")\n .log(\"info\")\n .build(),\n FirewallRulesRuleArgs.builder()\n .type(\"in\")\n .action(\"ACCEPT\")\n .comment(\"Allow HTTPS\")\n .dest(\"192.168.1.5\")\n .dport(\"443\")\n .proto(\"tcp\")\n .log(\"info\")\n .build(),\n FirewallRulesRuleArgs.builder()\n .securityGroup(proxmox_virtual_environment_cluster_firewall_security_group.example().name())\n .comment(\"From security group\")\n .iface(\"net0\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n proxmox_virtual_environment_vm.example(),\n proxmox_virtual_environment_cluster_firewall_security_group.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n inbound:\n type: proxmoxve:Network:FirewallRules\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n rules:\n - type: in\n action: ACCEPT\n comment: Allow HTTP\n dest: 192.168.1.5\n dport: '80'\n proto: tcp\n log: info\n - type: in\n action: ACCEPT\n comment: Allow HTTPS\n dest: 192.168.1.5\n dport: '443'\n proto: tcp\n log: info\n - securityGroup: ${proxmox_virtual_environment_cluster_firewall_security_group.example.name}\n comment: From security group\n iface: net0\n options:\n dependson:\n - ${proxmox_virtual_environment_vm.example}\n - ${proxmox_virtual_environment_cluster_firewall_security_group.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "A security group is a collection of rules, defined at cluster level, which can\nbe used in all VMs' rules. For example, you can define a group named “webserver”\nwith rules to open the http and https ports. Rules can be created on the cluster\nlevel, on VM / Container level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst inbound = new proxmoxve.network.FirewallRules(\"inbound\", {\n nodeName: proxmox_virtual_environment_vm.example.node_name,\n vmId: proxmox_virtual_environment_vm.example.vm_id,\n rules: [\n {\n type: \"in\",\n action: \"ACCEPT\",\n comment: \"Allow HTTP\",\n dest: \"192.168.1.5\",\n dport: \"80\",\n proto: \"tcp\",\n log: \"info\",\n },\n {\n type: \"in\",\n action: \"ACCEPT\",\n comment: \"Allow HTTPS\",\n dest: \"192.168.1.5\",\n dport: \"443\",\n proto: \"tcp\",\n log: \"info\",\n },\n {\n securityGroup: proxmox_virtual_environment_cluster_firewall_security_group.example.name,\n comment: \"From security group\",\n iface: \"net0\",\n },\n ],\n}, {\n dependsOn: [\n proxmox_virtual_environment_vm.example,\n proxmox_virtual_environment_cluster_firewall_security_group.example,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\ninbound = proxmoxve.network.FirewallRules(\"inbound\",\n node_name=proxmox_virtual_environment_vm[\"example\"][\"node_name\"],\n vm_id=proxmox_virtual_environment_vm[\"example\"][\"vm_id\"],\n rules=[\n {\n \"type\": \"in\",\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTP\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"80\",\n \"proto\": \"tcp\",\n \"log\": \"info\",\n },\n {\n \"type\": \"in\",\n \"action\": \"ACCEPT\",\n \"comment\": \"Allow HTTPS\",\n \"dest\": \"192.168.1.5\",\n \"dport\": \"443\",\n \"proto\": \"tcp\",\n \"log\": \"info\",\n },\n {\n \"security_group\": proxmox_virtual_environment_cluster_firewall_security_group[\"example\"][\"name\"],\n \"comment\": \"From security group\",\n \"iface\": \"net0\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[\n proxmox_virtual_environment_vm[\"example\"],\n proxmox_virtual_environment_cluster_firewall_security_group[\"example\"],\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var inbound = new ProxmoxVE.Network.FirewallRules(\"inbound\", new()\n {\n NodeName = proxmox_virtual_environment_vm.Example.Node_name,\n VmId = proxmox_virtual_environment_vm.Example.Vm_id,\n Rules = new[]\n {\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n Type = \"in\",\n Action = \"ACCEPT\",\n Comment = \"Allow HTTP\",\n Dest = \"192.168.1.5\",\n Dport = \"80\",\n Proto = \"tcp\",\n Log = \"info\",\n },\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n Type = \"in\",\n Action = \"ACCEPT\",\n Comment = \"Allow HTTPS\",\n Dest = \"192.168.1.5\",\n Dport = \"443\",\n Proto = \"tcp\",\n Log = \"info\",\n },\n new ProxmoxVE.Network.Inputs.FirewallRulesRuleArgs\n {\n SecurityGroup = proxmox_virtual_environment_cluster_firewall_security_group.Example.Name,\n Comment = \"From security group\",\n Iface = \"net0\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxmox_virtual_environment_vm.Example,\n proxmox_virtual_environment_cluster_firewall_security_group.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.NewFirewallRules(ctx, \"inbound\", \u0026Network.FirewallRulesArgs{\n\t\t\tNodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),\n\t\t\tVmId: pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),\n\t\t\tRules: network.FirewallRulesRuleArray{\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTP\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"80\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tType: pulumi.String(\"in\"),\n\t\t\t\t\tAction: pulumi.String(\"ACCEPT\"),\n\t\t\t\t\tComment: pulumi.String(\"Allow HTTPS\"),\n\t\t\t\t\tDest: pulumi.String(\"192.168.1.5\"),\n\t\t\t\t\tDport: pulumi.String(\"443\"),\n\t\t\t\t\tProto: pulumi.String(\"tcp\"),\n\t\t\t\t\tLog: pulumi.String(\"info\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.FirewallRulesRuleArgs{\n\t\t\t\t\tSecurityGroup: pulumi.Any(proxmox_virtual_environment_cluster_firewall_security_group.Example.Name),\n\t\t\t\t\tComment: pulumi.String(\"From security group\"),\n\t\t\t\t\tIface: pulumi.String(\"net0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxmox_virtual_environment_vm.Example,\n\t\t\tproxmox_virtual_environment_cluster_firewall_security_group.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.FirewallRules;\nimport com.pulumi.proxmoxve.Network.FirewallRulesArgs;\nimport com.pulumi.proxmoxve.Network.inputs.FirewallRulesRuleArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var inbound = new FirewallRules(\"inbound\", FirewallRulesArgs.builder()\n .nodeName(proxmox_virtual_environment_vm.example().node_name())\n .vmId(proxmox_virtual_environment_vm.example().vm_id())\n .rules( \n FirewallRulesRuleArgs.builder()\n .type(\"in\")\n .action(\"ACCEPT\")\n .comment(\"Allow HTTP\")\n .dest(\"192.168.1.5\")\n .dport(\"80\")\n .proto(\"tcp\")\n .log(\"info\")\n .build(),\n FirewallRulesRuleArgs.builder()\n .type(\"in\")\n .action(\"ACCEPT\")\n .comment(\"Allow HTTPS\")\n .dest(\"192.168.1.5\")\n .dport(\"443\")\n .proto(\"tcp\")\n .log(\"info\")\n .build(),\n FirewallRulesRuleArgs.builder()\n .securityGroup(proxmox_virtual_environment_cluster_firewall_security_group.example().name())\n .comment(\"From security group\")\n .iface(\"net0\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n proxmox_virtual_environment_vm.example(),\n proxmox_virtual_environment_cluster_firewall_security_group.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n inbound:\n type: proxmoxve:Network:FirewallRules\n properties:\n nodeName: ${proxmox_virtual_environment_vm.example.node_name}\n vmId: ${proxmox_virtual_environment_vm.example.vm_id}\n rules:\n - type: in\n action: ACCEPT\n comment: Allow HTTP\n dest: 192.168.1.5\n dport: '80'\n proto: tcp\n log: info\n - type: in\n action: ACCEPT\n comment: Allow HTTPS\n dest: 192.168.1.5\n dport: '443'\n proto: tcp\n log: info\n - securityGroup: ${proxmox_virtual_environment_cluster_firewall_security_group.example.name}\n comment: From security group\n iface: net0\n options:\n dependsOn:\n - ${proxmox_virtual_environment_vm.example}\n - ${proxmox_virtual_environment_cluster_firewall_security_group.example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "containerId": { "type": "integer", @@ -4719,7 +4719,7 @@ } }, "proxmoxve:Network/networkBridge:NetworkBridge": { - "description": "Manages a Linux Bridge network interface in a Proxmox VE node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst vlan99 = new proxmoxve.network.NetworkVlan(\"vlan99\", {nodeName: \"pve\"});\n//# or alternatively, use custom name:\n// name = \"vlan_lab\"\n// interface = \"eno0\"\n// vlan = 98\nconst vmbr99 = new proxmoxve.network.NetworkBridge(\"vmbr99\", {\n nodeName: \"pve\",\n address: \"99.99.99.99/16\",\n comment: \"vmbr99 comment\",\n ports: [\"ens18.99\"],\n}, {\n dependsOn: [vlan99],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nvlan99 = proxmoxve.network.NetworkVlan(\"vlan99\", node_name=\"pve\")\n## or alternatively, use custom name:\n# name = \"vlan_lab\"\n# interface = \"eno0\"\n# vlan = 98\nvmbr99 = proxmoxve.network.NetworkBridge(\"vmbr99\",\n node_name=\"pve\",\n address=\"99.99.99.99/16\",\n comment=\"vmbr99 comment\",\n ports=[\"ens18.99\"],\n opts = pulumi.ResourceOptions(depends_on=[vlan99]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vlan99 = new ProxmoxVE.Network.NetworkVlan(\"vlan99\", new()\n {\n NodeName = \"pve\",\n });\n\n //# or alternatively, use custom name:\n // name = \"vlan_lab\"\n // interface = \"eno0\"\n // vlan = 98\n var vmbr99 = new ProxmoxVE.Network.NetworkBridge(\"vmbr99\", new()\n {\n NodeName = \"pve\",\n Address = \"99.99.99.99/16\",\n Comment = \"vmbr99 comment\",\n Ports = new[]\n {\n \"ens18.99\",\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n vlan99,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvlan99, err := Network.NewNetworkVlan(ctx, \"vlan99\", \u0026Network.NetworkVlanArgs{\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Network.NewNetworkBridge(ctx, \"vmbr99\", \u0026Network.NetworkBridgeArgs{\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tAddress: pulumi.String(\"99.99.99.99/16\"),\n\t\t\tComment: pulumi.String(\"vmbr99 comment\"),\n\t\t\tPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ens18.99\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvlan99,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkVlan;\nimport com.pulumi.proxmoxve.Network.NetworkVlanArgs;\nimport com.pulumi.proxmoxve.Network.NetworkBridge;\nimport com.pulumi.proxmoxve.Network.NetworkBridgeArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vlan99 = new NetworkVlan(\"vlan99\", NetworkVlanArgs.builder()\n .nodeName(\"pve\")\n .build());\n\n //# or alternatively, use custom name:\n // name = \"vlan_lab\"\n // interface = \"eno0\"\n // vlan = 98\n var vmbr99 = new NetworkBridge(\"vmbr99\", NetworkBridgeArgs.builder()\n .nodeName(\"pve\")\n .address(\"99.99.99.99/16\")\n .comment(\"vmbr99 comment\")\n .ports(\"ens18.99\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(vlan99)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vmbr99:\n type: proxmoxve:Network:NetworkBridge\n properties:\n nodeName: pve\n address: 99.99.99.99/16\n comment: vmbr99 comment\n ports:\n - ens18.99\n options:\n dependson:\n - ${vlan99}\n vlan99:\n type: proxmoxve:Network:NetworkVlan\n properties:\n nodeName: pve\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\n#Interfaces can be imported using the `node_name:iface` format, e.g.\n\n```sh\n$ pulumi import proxmoxve:Network/networkBridge:NetworkBridge vmbr99 pve:vmbr99\n```\n\n", + "description": "Manages a Linux Bridge network interface in a Proxmox VE node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst vlan99 = new proxmoxve.network.NetworkVlan(\"vlan99\", {nodeName: \"pve\"});\n//# or alternatively, use custom name:\n// name = \"vlan_lab\"\n// interface = \"eno0\"\n// vlan = 98\nconst vmbr99 = new proxmoxve.network.NetworkBridge(\"vmbr99\", {\n nodeName: \"pve\",\n address: \"99.99.99.99/16\",\n comment: \"vmbr99 comment\",\n ports: [\"ens18.99\"],\n}, {\n dependsOn: [vlan99],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nvlan99 = proxmoxve.network.NetworkVlan(\"vlan99\", node_name=\"pve\")\n## or alternatively, use custom name:\n# name = \"vlan_lab\"\n# interface = \"eno0\"\n# vlan = 98\nvmbr99 = proxmoxve.network.NetworkBridge(\"vmbr99\",\n node_name=\"pve\",\n address=\"99.99.99.99/16\",\n comment=\"vmbr99 comment\",\n ports=[\"ens18.99\"],\n opts = pulumi.ResourceOptions(depends_on=[vlan99]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vlan99 = new ProxmoxVE.Network.NetworkVlan(\"vlan99\", new()\n {\n NodeName = \"pve\",\n });\n\n //# or alternatively, use custom name:\n // name = \"vlan_lab\"\n // interface = \"eno0\"\n // vlan = 98\n var vmbr99 = new ProxmoxVE.Network.NetworkBridge(\"vmbr99\", new()\n {\n NodeName = \"pve\",\n Address = \"99.99.99.99/16\",\n Comment = \"vmbr99 comment\",\n Ports = new[]\n {\n \"ens18.99\",\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n vlan99,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvlan99, err := Network.NewNetworkVlan(ctx, \"vlan99\", \u0026Network.NetworkVlanArgs{\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Network.NewNetworkBridge(ctx, \"vmbr99\", \u0026Network.NetworkBridgeArgs{\n\t\t\tNodeName: pulumi.String(\"pve\"),\n\t\t\tAddress: pulumi.String(\"99.99.99.99/16\"),\n\t\t\tComment: pulumi.String(\"vmbr99 comment\"),\n\t\t\tPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ens18.99\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvlan99,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkVlan;\nimport com.pulumi.proxmoxve.Network.NetworkVlanArgs;\nimport com.pulumi.proxmoxve.Network.NetworkBridge;\nimport com.pulumi.proxmoxve.Network.NetworkBridgeArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vlan99 = new NetworkVlan(\"vlan99\", NetworkVlanArgs.builder()\n .nodeName(\"pve\")\n .build());\n\n //# or alternatively, use custom name:\n // name = \"vlan_lab\"\n // interface = \"eno0\"\n // vlan = 98\n var vmbr99 = new NetworkBridge(\"vmbr99\", NetworkBridgeArgs.builder()\n .nodeName(\"pve\")\n .address(\"99.99.99.99/16\")\n .comment(\"vmbr99 comment\")\n .ports(\"ens18.99\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(vlan99)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vmbr99:\n type: proxmoxve:Network:NetworkBridge\n properties:\n nodeName: pve\n address: 99.99.99.99/16\n comment: vmbr99 comment\n ports:\n - ens18.99\n options:\n dependsOn:\n - ${vlan99}\n vlan99:\n type: proxmoxve:Network:NetworkVlan\n properties:\n nodeName: pve\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/usr/bin/env sh\n\n#Interfaces can be imported using the `node_name:iface` format, e.g.\n\n```sh\n$ pulumi import proxmoxve:Network/networkBridge:NetworkBridge vmbr99 pve:vmbr99\n```\n\n", "properties": { "address": { "type": "string", @@ -7531,7 +7531,7 @@ }, "functions": { "proxmoxve:Acme/getAccount:getAccount": { - "description": "Retrieves information about a specific ACME account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.Acme.getAccounts({});\nconst example = all.then(all =\u003e .map(([, ]) =\u003e (proxmoxve.Acme.getAccount({\n name: __value,\n}))));\nexport const dataProxmoxVirtualEnvironmentAcmeAccount = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.Acme.get_accounts()\nexample = [proxmoxve.Acme.get_account(name=__value) for __key, __value in all.accounts]\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.Acme.GetAccounts.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.Acme.GetAccount.Invoke(new()\n {\n Name = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmeAccount\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := Acme.GetAccounts(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = AcmeFunctions.getAccounts();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about a specific ACME account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.Acme.getAccounts({});\nconst example = all.then(all =\u003e .map(([__key, __value]) =\u003e (proxmoxve.Acme.getAccount({\n name: __value,\n}))));\nexport const dataProxmoxVirtualEnvironmentAcmeAccount = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.Acme.get_accounts()\nexample = [proxmoxve.Acme.get_account(name=__value) for __key, __value in all.accounts]\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.Acme.GetAccounts.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.Acme.GetAccount.Invoke(new()\n {\n Name = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmeAccount\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := Acme.GetAccounts(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = AcmeFunctions.getAccounts();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmeAccount\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getAccount.\n", "properties": { @@ -7581,7 +7581,7 @@ } }, "proxmoxve:Acme/getAccounts:getAccounts": { - "description": "Retrieves the list of ACME accounts.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getAccounts({});\nexport const dataProxmoxVirtualEnvironmentAcmeAccounts = example.then(example =\u003e example.accounts);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_accounts()\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.accounts)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetAccounts.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmeAccounts\"] = example.Apply(getAccountsResult =\u003e getAccountsResult.Accounts),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetAccounts(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.Accounts)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getAccounts();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.applyValue(getAccountsResult -\u003e getAccountsResult.accounts()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Acme:getAccounts\n Arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentAcmeAccounts: ${example.accounts}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves the list of ACME accounts.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getAccounts({});\nexport const dataProxmoxVirtualEnvironmentAcmeAccounts = example.then(example =\u003e example.accounts);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_accounts()\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.accounts)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetAccounts.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmeAccounts\"] = example.Apply(getAccountsResult =\u003e getAccountsResult.Accounts),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetAccounts(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.Accounts)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getAccounts();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmeAccounts\", example.applyValue(getAccountsResult -\u003e getAccountsResult.accounts()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Acme:getAccounts\n arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentAcmeAccounts: ${example.accounts}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "outputs": { "description": "A collection of values returned by getAccounts.\n", "properties": { @@ -7605,7 +7605,7 @@ } }, "proxmoxve:Acme/getPlugin:getPlugin": { - "description": "Retrieves a single ACME plugin by plugin ID name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getPlugin({\n plugin: \"standalone\",\n});\nexport const dataProxmoxVirtualEnvironmentAcmePlugin = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_plugin(plugin=\"standalone\")\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetPlugin.Invoke(new()\n {\n Plugin = \"standalone\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmePlugin\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetPlugin(ctx, \u0026acme.GetPluginArgs{\n\t\t\tPlugin: \"standalone\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport com.pulumi.proxmoxve.Acme.inputs.GetPluginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getPlugin(GetPluginArgs.builder()\n .plugin(\"standalone\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example.applyValue(getPluginResult -\u003e getPluginResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Acme:getPlugin\n Arguments:\n plugin: standalone\noutputs:\n dataProxmoxVirtualEnvironmentAcmePlugin: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves a single ACME plugin by plugin ID name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getPlugin({\n plugin: \"standalone\",\n});\nexport const dataProxmoxVirtualEnvironmentAcmePlugin = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_plugin(plugin=\"standalone\")\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetPlugin.Invoke(new()\n {\n Plugin = \"standalone\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmePlugin\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetPlugin(ctx, \u0026acme.GetPluginArgs{\n\t\t\tPlugin: \"standalone\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport com.pulumi.proxmoxve.Acme.inputs.GetPluginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getPlugin(GetPluginArgs.builder()\n .plugin(\"standalone\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmePlugin\", example.applyValue(getPluginResult -\u003e getPluginResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Acme:getPlugin\n arguments:\n plugin: standalone\noutputs:\n dataProxmoxVirtualEnvironmentAcmePlugin: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getPlugin.\n", "properties": { @@ -7667,7 +7667,7 @@ } }, "proxmoxve:Acme/getPlugins:getPlugins": { - "description": "Retrieves the list of ACME plugins.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getPlugins({});\nexport const dataProxmoxVirtualEnvironmentAcmePlugins = example.then(example =\u003e example.plugins);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_plugins()\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.plugins)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetPlugins.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmePlugins\"] = example.Apply(getPluginsResult =\u003e getPluginsResult.Plugins),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetPlugins(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.Plugins)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getPlugins();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.applyValue(getPluginsResult -\u003e getPluginsResult.plugins()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Acme:getPlugins\n Arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentAcmePlugins: ${example.plugins}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves the list of ACME plugins.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Acme.getPlugins({});\nexport const dataProxmoxVirtualEnvironmentAcmePlugins = example.then(example =\u003e example.plugins);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Acme.get_plugins()\npulumi.export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.plugins)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Acme.GetPlugins.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentAcmePlugins\"] = example.Apply(getPluginsResult =\u003e getPluginsResult.Plugins),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Acme\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Acme.GetPlugins(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.Plugins)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Acme.AcmeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AcmeFunctions.getPlugins();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentAcmePlugins\", example.applyValue(getPluginsResult -\u003e getPluginsResult.plugins()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Acme:getPlugins\n arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentAcmePlugins: ${example.plugins}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "outputs": { "description": "A collection of values returned by getPlugins.\n", "properties": { @@ -7691,7 +7691,7 @@ } }, "proxmoxve:Apt/getRepository:getRepository": { - "description": "Retrieves an APT repository from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Apt.getRepository({\n filePath: \"/etc/apt/sources.list\",\n index: 0,\n node: \"pve\",\n});\nexport const proxmoxVirtualEnvironmentAptRepository = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Apt.get_repository(file_path=\"/etc/apt/sources.list\",\n index=0,\n node=\"pve\")\npulumi.export(\"proxmoxVirtualEnvironmentAptRepository\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Apt.GetRepository.Invoke(new()\n {\n FilePath = \"/etc/apt/sources.list\",\n Index = 0,\n Node = \"pve\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentAptRepository\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Apt.GetRepository(ctx, \u0026apt.GetRepositoryArgs{\n\t\t\tFilePath: \"/etc/apt/sources.list\",\n\t\t\tIndex: 0,\n\t\t\tNode: \"pve\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"proxmoxVirtualEnvironmentAptRepository\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt.AptFunctions;\nimport com.pulumi.proxmoxve.Apt.inputs.GetRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AptFunctions.getRepository(GetRepositoryArgs.builder()\n .filePath(\"/etc/apt/sources.list\")\n .index(0)\n .node(\"pve\")\n .build());\n\n ctx.export(\"proxmoxVirtualEnvironmentAptRepository\", example.applyValue(getRepositoryResult -\u003e getRepositoryResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Apt:getRepository\n Arguments:\n filePath: /etc/apt/sources.list\n index: 0\n node: pve\noutputs:\n proxmoxVirtualEnvironmentAptRepository: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves an APT repository from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Apt.getRepository({\n filePath: \"/etc/apt/sources.list\",\n index: 0,\n node: \"pve\",\n});\nexport const proxmoxVirtualEnvironmentAptRepository = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Apt.get_repository(file_path=\"/etc/apt/sources.list\",\n index=0,\n node=\"pve\")\npulumi.export(\"proxmoxVirtualEnvironmentAptRepository\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Apt.GetRepository.Invoke(new()\n {\n FilePath = \"/etc/apt/sources.list\",\n Index = 0,\n Node = \"pve\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentAptRepository\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Apt.GetRepository(ctx, \u0026apt.GetRepositoryArgs{\n\t\t\tFilePath: \"/etc/apt/sources.list\",\n\t\t\tIndex: 0,\n\t\t\tNode: \"pve\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"proxmoxVirtualEnvironmentAptRepository\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt.AptFunctions;\nimport com.pulumi.proxmoxve.Apt.inputs.GetRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = AptFunctions.getRepository(GetRepositoryArgs.builder()\n .filePath(\"/etc/apt/sources.list\")\n .index(0)\n .node(\"pve\")\n .build());\n\n ctx.export(\"proxmoxVirtualEnvironmentAptRepository\", example.applyValue(getRepositoryResult -\u003e getRepositoryResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Apt:getRepository\n arguments:\n filePath: /etc/apt/sources.list\n index: 0\n node: pve\noutputs:\n proxmoxVirtualEnvironmentAptRepository: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getRepository.\n", "properties": { @@ -7792,7 +7792,7 @@ } }, "proxmoxve:Apt/standard/getRepository:getRepository": { - "description": "Retrieves an APT standard repository from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Apt.standard.getRepository({\n handle: \"no-subscription\",\n node: \"pve\",\n});\nexport const proxmoxVirtualEnvironmentAptStandardRepository = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Apt.standard.get_repository(handle=\"no-subscription\",\n node=\"pve\")\npulumi.export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Apt.Standard.GetRepository.Invoke(new()\n {\n Handle = \"no-subscription\",\n Node = \"pve\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentAptStandardRepository\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Apt.GetRepository(ctx, \u0026standard.GetRepositoryArgs{\n\t\t\tHandle: \"no-subscription\",\n\t\t\tNode: \"pve\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt_standard.Apt_standardFunctions;\nimport com.pulumi.proxmoxve.Apt.inputs.GetRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Apt/standardFunctions.getRepository(GetRepositoryArgs.builder()\n .handle(\"no-subscription\")\n .node(\"pve\")\n .build());\n\n ctx.export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example.applyValue(getRepositoryResult -\u003e getRepositoryResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Apt/standard:getRepository\n Arguments:\n handle: no-subscription\n node: pve\noutputs:\n proxmoxVirtualEnvironmentAptStandardRepository: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves an APT standard repository from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Apt.standard.getRepository({\n handle: \"no-subscription\",\n node: \"pve\",\n});\nexport const proxmoxVirtualEnvironmentAptStandardRepository = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Apt.standard.get_repository(handle=\"no-subscription\",\n node=\"pve\")\npulumi.export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Apt.Standard.GetRepository.Invoke(new()\n {\n Handle = \"no-subscription\",\n Node = \"pve\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentAptStandardRepository\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Apt\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Apt.GetRepository(ctx, \u0026standard.GetRepositoryArgs{\n\t\t\tHandle: \"no-subscription\",\n\t\t\tNode: \"pve\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Apt_standard.Apt_standardFunctions;\nimport com.pulumi.proxmoxve.Apt.inputs.GetRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Apt/standardFunctions.getRepository(GetRepositoryArgs.builder()\n .handle(\"no-subscription\")\n .node(\"pve\")\n .build());\n\n ctx.export(\"proxmoxVirtualEnvironmentAptStandardRepository\", example.applyValue(getRepositoryResult -\u003e getRepositoryResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Apt/standard:getRepository\n arguments:\n handle: no-subscription\n node: pve\noutputs:\n proxmoxVirtualEnvironmentAptStandardRepository: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getRepository.\n", "properties": { @@ -7861,7 +7861,7 @@ } }, "proxmoxve:Cluster/getNodes:getNodes": { - "description": "Retrieves information about all available nodes.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableNodes = proxmoxve.Cluster.getNodes({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_nodes = proxmoxve.Cluster.get_nodes()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableNodes = ProxmoxVE.Cluster.GetNodes.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Cluster\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Cluster.GetNodes(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Cluster.ClusterFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableNodes = ClusterFunctions.getNodes();\n\n }\n}\n```\n```yaml\nvariables:\n availableNodes:\n fn::invoke:\n Function: proxmoxve:Cluster:getNodes\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about all available nodes.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableNodes = proxmoxve.Cluster.getNodes({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_nodes = proxmoxve.Cluster.get_nodes()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableNodes = ProxmoxVE.Cluster.GetNodes.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Cluster\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Cluster.GetNodes(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Cluster.ClusterFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableNodes = ClusterFunctions.getNodes();\n\n }\n}\n```\n```yaml\nvariables:\n availableNodes:\n fn::invoke:\n function: proxmoxve:Cluster:getNodes\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "outputs": { "description": "A collection of values returned by getNodes.\n", "properties": { @@ -7949,7 +7949,7 @@ } }, "proxmoxve:HA/getHAGroup:getHAGroup": { - "description": "Retrieves information about a specific High Availability group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.HA.getHAGroups({});\nconst example = all.then(all =\u003e .map(([, ]) =\u003e (proxmoxve.HA.getHAGroup({\n group: __value,\n}))));\nexport const proxmoxVirtualEnvironmentHagroupsFull = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.HA.get_ha_groups()\nexample = [proxmoxve.HA.get_ha_group(group=__value) for __key, __value in all.group_ids]\npulumi.export(\"proxmoxVirtualEnvironmentHagroupsFull\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.HA.GetHAGroups.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.HA.GetHAGroup.Invoke(new()\n {\n Group = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentHagroupsFull\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := HA.GetHAGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"proxmoxVirtualEnvironmentHagroupsFull\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = HAFunctions.getHAGroups();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"proxmoxVirtualEnvironmentHagroupsFull\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about a specific High Availability group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.HA.getHAGroups({});\nconst example = all.then(all =\u003e .map(([__key, __value]) =\u003e (proxmoxve.HA.getHAGroup({\n group: __value,\n}))));\nexport const proxmoxVirtualEnvironmentHagroupsFull = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.HA.get_ha_groups()\nexample = [proxmoxve.HA.get_ha_group(group=__value) for __key, __value in all.group_ids]\npulumi.export(\"proxmoxVirtualEnvironmentHagroupsFull\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.HA.GetHAGroups.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.HA.GetHAGroup.Invoke(new()\n {\n Group = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentHagroupsFull\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := HA.GetHAGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"proxmoxVirtualEnvironmentHagroupsFull\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = HAFunctions.getHAGroups();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"proxmoxVirtualEnvironmentHagroupsFull\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getHAGroup.\n", "properties": { @@ -8006,7 +8006,7 @@ } }, "proxmoxve:HA/getHAGroups:getHAGroups": { - "description": "Retrieves the list of High Availability groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.HA.getHAGroups({});\nexport const dataProxmoxVirtualEnvironmentHagroups = example.then(example =\u003e example.groupIds);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.HA.get_ha_groups()\npulumi.export(\"dataProxmoxVirtualEnvironmentHagroups\", example.group_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.HA.GetHAGroups.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHagroups\"] = example.Apply(getHAGroupsResult =\u003e getHAGroupsResult.GroupIds),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := HA.GetHAGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHagroups\", example.GroupIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = HAFunctions.getHAGroups();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHagroups\", example.applyValue(getHAGroupsResult -\u003e getHAGroupsResult.groupIds()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:HA:getHAGroups\n Arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentHagroups: ${example.groupIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves the list of High Availability groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.HA.getHAGroups({});\nexport const dataProxmoxVirtualEnvironmentHagroups = example.then(example =\u003e example.groupIds);\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.HA.get_ha_groups()\npulumi.export(\"dataProxmoxVirtualEnvironmentHagroups\", example.group_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.HA.GetHAGroups.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHagroups\"] = example.Apply(getHAGroupsResult =\u003e getHAGroupsResult.GroupIds),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := HA.GetHAGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHagroups\", example.GroupIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = HAFunctions.getHAGroups();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHagroups\", example.applyValue(getHAGroupsResult -\u003e getHAGroupsResult.groupIds()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:HA:getHAGroups\n arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentHagroups: ${example.groupIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "outputs": { "description": "A collection of values returned by getHAGroups.\n", "properties": { @@ -8030,7 +8030,7 @@ } }, "proxmoxve:HA/getHAResource:getHAResource": { - "description": "Retrieves the list of High Availability resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.HA.getHAResources({});\nconst example = all.then(all =\u003e .map(([, ]) =\u003e (proxmoxve.HA.getHAResource({\n resourceId: __value,\n}))));\nexport const proxmoxVirtualEnvironmentHaresourcesFull = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.HA.get_ha_resources()\nexample = [proxmoxve.HA.get_ha_resource(resource_id=__value) for __key, __value in all.resource_ids]\npulumi.export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.HA.GetHAResources.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.HA.GetHAResource.Invoke(new()\n {\n ResourceId = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentHaresourcesFull\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport com.pulumi.proxmoxve.HA.inputs.GetHAResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = HAFunctions.getHAResources();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves the list of High Availability resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst all = proxmoxve.HA.getHAResources({});\nconst example = all.then(all =\u003e .map(([__key, __value]) =\u003e (proxmoxve.HA.getHAResource({\n resourceId: __value,\n}))));\nexport const proxmoxVirtualEnvironmentHaresourcesFull = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nall = proxmoxve.HA.get_ha_resources()\nexample = [proxmoxve.HA.get_ha_resource(resource_id=__value) for __key, __value in all.resource_ids]\npulumi.export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var all = ProxmoxVE.HA.GetHAResources.Invoke();\n\n var example = .Select(__value =\u003e \n {\n return ProxmoxVE.HA.GetHAResource.Invoke(new()\n {\n ResourceId = __value,\n });\n }).ToList();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"proxmoxVirtualEnvironmentHaresourcesFull\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := \"TODO: For expression\"\n\t\tctx.Export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport com.pulumi.proxmoxve.HA.inputs.GetHAResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var all = HAFunctions.getHAResources();\n\n final var example = \"TODO: ForExpression\";\n\n ctx.export(\"proxmoxVirtualEnvironmentHaresourcesFull\", example);\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getHAResource.\n", "properties": { @@ -8094,7 +8094,7 @@ } }, "proxmoxve:HA/getHAResources:getHAResources": { - "description": "Retrieves the list of High Availability resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst exampleAll = proxmoxve.HA.getHAResources({});\nconst exampleVm = proxmoxve.HA.getHAResources({\n type: \"vm\",\n});\nexport const dataProxmoxVirtualEnvironmentHaresources = {\n all: exampleAll.then(exampleAll =\u003e exampleAll.resourceIds),\n vms: exampleVm.then(exampleVm =\u003e exampleVm.resourceIds),\n};\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample_all = proxmoxve.HA.get_ha_resources()\nexample_vm = proxmoxve.HA.get_ha_resources(type=\"vm\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHaresources\", {\n \"all\": example_all.resource_ids,\n \"vms\": example_vm.resource_ids,\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleAll = ProxmoxVE.HA.GetHAResources.Invoke();\n\n var exampleVm = ProxmoxVE.HA.GetHAResources.Invoke(new()\n {\n Type = \"vm\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHaresources\"] = \n {\n { \"all\", exampleAll.Apply(getHAResourcesResult =\u003e getHAResourcesResult.ResourceIds) },\n { \"vms\", exampleVm.Apply(getHAResourcesResult =\u003e getHAResourcesResult.ResourceIds) },\n },\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleAll, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nexampleVm, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{\nType: pulumi.StringRef(\"vm\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"dataProxmoxVirtualEnvironmentHaresources\", interface{}Map{\n\"all\": exampleAll.ResourceIds,\n\"vms\": exampleVm.ResourceIds,\n})\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport com.pulumi.proxmoxve.HA.inputs.GetHAResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var exampleAll = HAFunctions.getHAResources();\n\n final var exampleVm = HAFunctions.getHAResources(GetHAResourcesArgs.builder()\n .type(\"vm\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHaresources\", %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));\n }\n}\n```\n```yaml\nvariables:\n exampleAll:\n fn::invoke:\n Function: proxmoxve:HA:getHAResources\n Arguments: {}\n exampleVm:\n fn::invoke:\n Function: proxmoxve:HA:getHAResources\n Arguments:\n type: vm\noutputs:\n dataProxmoxVirtualEnvironmentHaresources:\n all: ${exampleAll.resourceIds}\n vms: ${exampleVm.resourceIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves the list of High Availability resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst exampleAll = proxmoxve.HA.getHAResources({});\nconst exampleVm = proxmoxve.HA.getHAResources({\n type: \"vm\",\n});\nexport const dataProxmoxVirtualEnvironmentHaresources = {\n all: exampleAll.then(exampleAll =\u003e exampleAll.resourceIds),\n vms: exampleVm.then(exampleVm =\u003e exampleVm.resourceIds),\n};\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample_all = proxmoxve.HA.get_ha_resources()\nexample_vm = proxmoxve.HA.get_ha_resources(type=\"vm\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHaresources\", {\n \"all\": example_all.resource_ids,\n \"vms\": example_vm.resource_ids,\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleAll = ProxmoxVE.HA.GetHAResources.Invoke();\n\n var exampleVm = ProxmoxVE.HA.GetHAResources.Invoke(new()\n {\n Type = \"vm\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHaresources\"] = \n {\n { \"all\", exampleAll.Apply(getHAResourcesResult =\u003e getHAResourcesResult.ResourceIds) },\n { \"vms\", exampleVm.Apply(getHAResourcesResult =\u003e getHAResourcesResult.ResourceIds) },\n },\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/HA\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleAll, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nexampleVm, err := HA.GetHAResources(ctx, \u0026ha.GetHAResourcesArgs{\nType: pulumi.StringRef(\"vm\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"dataProxmoxVirtualEnvironmentHaresources\", interface{}Map{\n\"all\": exampleAll.ResourceIds,\n\"vms\": exampleVm.ResourceIds,\n})\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.HA.HAFunctions;\nimport com.pulumi.proxmoxve.HA.inputs.GetHAResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var exampleAll = HAFunctions.getHAResources();\n\n final var exampleVm = HAFunctions.getHAResources(GetHAResourcesArgs.builder()\n .type(\"vm\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHaresources\", %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));\n }\n}\n```\n```yaml\nvariables:\n exampleAll:\n fn::invoke:\n function: proxmoxve:HA:getHAResources\n arguments: {}\n exampleVm:\n fn::invoke:\n function: proxmoxve:HA:getHAResources\n arguments:\n type: vm\noutputs:\n dataProxmoxVirtualEnvironmentHaresources:\n all: ${exampleAll.resourceIds}\n vms: ${exampleVm.resourceIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getHAResources.\n", "properties": { @@ -8132,7 +8132,7 @@ } }, "proxmoxve:Hardware/getMappings:getMappings": { - "description": "Retrieves a list of hardware mapping resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example-pci = proxmoxve.Hardware.getMappings({\n checkNode: \"pve\",\n type: \"pci\",\n});\nconst example-usb = proxmoxve.Hardware.getMappings({\n checkNode: \"pve\",\n type: \"usb\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingsPci = example_pci;\nexport const dataProxmoxVirtualEnvironmentHardwareMappingsUsb = example_usb;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample_pci = proxmoxve.Hardware.get_mappings(check_node=\"pve\",\n type=\"pci\")\nexample_usb = proxmoxve.Hardware.get_mappings(check_node=\"pve\",\n type=\"usb\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci)\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example_pci = ProxmoxVE.Hardware.GetMappings.Invoke(new()\n {\n CheckNode = \"pve\",\n Type = \"pci\",\n });\n\n var example_usb = ProxmoxVE.Hardware.GetMappings.Invoke(new()\n {\n CheckNode = \"pve\",\n Type = \"usb\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\"] = example_pci,\n [\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\"] = example_usb,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample_pci, err := Hardware.GetMappings(ctx, \u0026hardware.GetMappingsArgs{\n\t\t\tCheckNode: pulumi.StringRef(\"pve\"),\n\t\t\tType: \"pci\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_usb, err := Hardware.GetMappings(ctx, \u0026hardware.GetMappingsArgs{\n\t\t\tCheckNode: pulumi.StringRef(\"pve\"),\n\t\t\tType: \"usb\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci)\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware.HardwareFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetMappingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example-pci = HardwareFunctions.getMappings(GetMappingsArgs.builder()\n .checkNode(\"pve\")\n .type(\"pci\")\n .build());\n\n final var example-usb = HardwareFunctions.getMappings(GetMappingsArgs.builder()\n .checkNode(\"pve\")\n .type(\"usb\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci);\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb);\n }\n}\n```\n```yaml\nvariables:\n example-pci:\n fn::invoke:\n Function: proxmoxve:Hardware:getMappings\n Arguments:\n checkNode: pve\n type: pci\n example-usb:\n fn::invoke:\n Function: proxmoxve:Hardware:getMappings\n Arguments:\n checkNode: pve\n type: usb\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingsPci: ${[\"example-pci\"]}\n dataProxmoxVirtualEnvironmentHardwareMappingsUsb: ${[\"example-usb\"]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves a list of hardware mapping resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example-pci = proxmoxve.Hardware.getMappings({\n checkNode: \"pve\",\n type: \"pci\",\n});\nconst example-usb = proxmoxve.Hardware.getMappings({\n checkNode: \"pve\",\n type: \"usb\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingsPci = example_pci;\nexport const dataProxmoxVirtualEnvironmentHardwareMappingsUsb = example_usb;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample_pci = proxmoxve.Hardware.get_mappings(check_node=\"pve\",\n type=\"pci\")\nexample_usb = proxmoxve.Hardware.get_mappings(check_node=\"pve\",\n type=\"usb\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci)\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example_pci = ProxmoxVE.Hardware.GetMappings.Invoke(new()\n {\n CheckNode = \"pve\",\n Type = \"pci\",\n });\n\n var example_usb = ProxmoxVE.Hardware.GetMappings.Invoke(new()\n {\n CheckNode = \"pve\",\n Type = \"usb\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\"] = example_pci,\n [\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\"] = example_usb,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample_pci, err := Hardware.GetMappings(ctx, \u0026hardware.GetMappingsArgs{\n\t\t\tCheckNode: pulumi.StringRef(\"pve\"),\n\t\t\tType: \"pci\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_usb, err := Hardware.GetMappings(ctx, \u0026hardware.GetMappingsArgs{\n\t\t\tCheckNode: pulumi.StringRef(\"pve\"),\n\t\t\tType: \"usb\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci)\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware.HardwareFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetMappingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example-pci = HardwareFunctions.getMappings(GetMappingsArgs.builder()\n .checkNode(\"pve\")\n .type(\"pci\")\n .build());\n\n final var example-usb = HardwareFunctions.getMappings(GetMappingsArgs.builder()\n .checkNode(\"pve\")\n .type(\"usb\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsPci\", example_pci);\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingsUsb\", example_usb);\n }\n}\n```\n```yaml\nvariables:\n example-pci:\n fn::invoke:\n function: proxmoxve:Hardware:getMappings\n arguments:\n checkNode: pve\n type: pci\n example-usb:\n fn::invoke:\n function: proxmoxve:Hardware:getMappings\n arguments:\n checkNode: pve\n type: usb\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingsPci: ${[\"example-pci\"]}\n dataProxmoxVirtualEnvironmentHardwareMappingsUsb: ${[\"example-usb\"]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getMappings.\n", "properties": { @@ -8190,7 +8190,7 @@ } }, "proxmoxve:Hardware/mapping/getPci:getPci": { - "description": "Retrieves a PCI hardware mapping from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Hardware.mapping.getPci({\n name: \"example\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingPci = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Hardware.mapping.get_pci(name=\"example\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Hardware.Mapping.GetPci.Invoke(new()\n {\n Name = \"example\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingPci\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Hardware.GetPci(ctx, \u0026mapping.GetPciArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware_mapping.Hardware_mappingFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetPciArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Hardware/mappingFunctions.getPci(GetPciArgs.builder()\n .name(\"example\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example.applyValue(getPciResult -\u003e getPciResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Hardware/mapping:getPci\n Arguments:\n name: example\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingPci: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves a PCI hardware mapping from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Hardware.mapping.getPci({\n name: \"example\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingPci = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Hardware.mapping.get_pci(name=\"example\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Hardware.Mapping.GetPci.Invoke(new()\n {\n Name = \"example\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingPci\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Hardware.GetPci(ctx, \u0026mapping.GetPciArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware_mapping.Hardware_mappingFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetPciArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Hardware/mappingFunctions.getPci(GetPciArgs.builder()\n .name(\"example\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingPci\", example.applyValue(getPciResult -\u003e getPciResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Hardware/mapping:getPci\n arguments:\n name: example\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingPci: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getPci.\n", "properties": { @@ -8242,7 +8242,7 @@ } }, "proxmoxve:Hardware/mapping/getUsb:getUsb": { - "description": "Retrieves a USB hardware mapping from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Hardware.mapping.getUsb({\n name: \"example\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingUsb = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Hardware.mapping.get_usb(name=\"example\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Hardware.Mapping.GetUsb.Invoke(new()\n {\n Name = \"example\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Hardware.GetUsb(ctx, \u0026mapping.GetUsbArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware_mapping.Hardware_mappingFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetUsbArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Hardware/mappingFunctions.getUsb(GetUsbArgs.builder()\n .name(\"example\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example.applyValue(getUsbResult -\u003e getUsbResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Hardware/mapping:getUsb\n Arguments:\n name: example\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingUsb: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves a USB hardware mapping from a Proxmox VE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Hardware.mapping.getUsb({\n name: \"example\",\n});\nexport const dataProxmoxVirtualEnvironmentHardwareMappingUsb = example;\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Hardware.mapping.get_usb(name=\"example\")\npulumi.export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Hardware.Mapping.GetUsb.Invoke(new()\n {\n Name = \"example\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\"] = example,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Hardware\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Hardware.GetUsb(ctx, \u0026mapping.GetUsbArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hardware_mapping.Hardware_mappingFunctions;\nimport com.pulumi.proxmoxve.Hardware.inputs.GetUsbArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Hardware/mappingFunctions.getUsb(GetUsbArgs.builder()\n .name(\"example\")\n .build());\n\n ctx.export(\"dataProxmoxVirtualEnvironmentHardwareMappingUsb\", example.applyValue(getUsbResult -\u003e getUsbResult));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Hardware/mapping:getUsb\n arguments:\n name: example\noutputs:\n dataProxmoxVirtualEnvironmentHardwareMappingUsb: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getUsb.\n", "properties": { @@ -8289,7 +8289,7 @@ } }, "proxmoxve:Network/getDNS:getDNS": { - "description": "Retrieves the DNS configuration for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNode = proxmoxve.Network.getDNS({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node = proxmoxve.Network.get_dns(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNode = ProxmoxVE.Network.GetDNS.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetDNS(ctx, \u0026network.GetDNSArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetDNSArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNode = NetworkFunctions.getDNS(GetDNSArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNode:\n fn::invoke:\n Function: proxmoxve:Network:getDNS\n Arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves the DNS configuration for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNode = proxmoxve.Network.getDNS({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node = proxmoxve.Network.get_dns(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNode = ProxmoxVE.Network.GetDNS.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetDNS(ctx, \u0026network.GetDNSArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetDNSArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNode = NetworkFunctions.getDNS(GetDNSArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNode:\n fn::invoke:\n function: proxmoxve:Network:getDNS\n arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getDNS.\n", "properties": { @@ -8335,7 +8335,7 @@ } }, "proxmoxve:Network/getHosts:getHosts": { - "description": "Retrieves all the host entries from a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeHostEntries = proxmoxve.Network.getHosts({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_host_entries = proxmoxve.Network.get_hosts(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNodeHostEntries = ProxmoxVE.Network.GetHosts.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetHosts(ctx, \u0026network.GetHostsArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetHostsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNodeHostEntries = NetworkFunctions.getHosts(GetHostsArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeHostEntries:\n fn::invoke:\n Function: proxmoxve:Network:getHosts\n Arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves all the host entries from a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeHostEntries = proxmoxve.Network.getHosts({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_host_entries = proxmoxve.Network.get_hosts(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNodeHostEntries = ProxmoxVE.Network.GetHosts.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetHosts(ctx, \u0026network.GetHostsArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetHostsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNodeHostEntries = NetworkFunctions.getHosts(GetHostsArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeHostEntries:\n fn::invoke:\n function: proxmoxve:Network:getHosts\n arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getHosts.\n", "properties": { @@ -8400,7 +8400,7 @@ } }, "proxmoxve:Network/getTime:getTime": { - "description": "Retrieves the current time for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeTime = proxmoxve.Network.getTime({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_time = proxmoxve.Network.get_time(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNodeTime = ProxmoxVE.Network.GetTime.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetTime(ctx, \u0026network.GetTimeArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetTimeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNodeTime = NetworkFunctions.getTime(GetTimeArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeTime:\n fn::invoke:\n Function: proxmoxve:Network:getTime\n Arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves the current time for a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeTime = proxmoxve.Network.getTime({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_time = proxmoxve.Network.get_time(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNodeTime = ProxmoxVE.Network.GetTime.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Network.GetTime(ctx, \u0026network.GetTimeArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport com.pulumi.proxmoxve.Network.inputs.GetTimeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNodeTime = NetworkFunctions.getTime(GetTimeArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeTime:\n fn::invoke:\n function: proxmoxve:Network:getTime\n arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getTime.\n", "properties": { @@ -8448,7 +8448,7 @@ } }, "proxmoxve:Network/getVersion:getVersion": { - "description": "Retrieves API version details.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Network.getVersion({});\nexport const dataProxmoxVirtualEnvironmentVersion = {\n release: example.then(example =\u003e example.release),\n repository_id: example.then(example =\u003e example.repositoryId),\n version: example.then(example =\u003e example.version),\n};\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Network.get_version()\npulumi.export(\"dataProxmoxVirtualEnvironmentVersion\", {\n \"release\": example.release,\n \"repository_id\": example.repository_id,\n \"version\": example.version,\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Network.GetVersion.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentVersion\"] = \n {\n { \"release\", example.Apply(getVersionResult =\u003e getVersionResult.Release) },\n { \"repository_id\", example.Apply(getVersionResult =\u003e getVersionResult.RepositoryId) },\n { \"version\", example.Apply(getVersionResult =\u003e getVersionResult.Version) },\n },\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Network.GetVersion(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentVersion\", pulumi.StringMap{\n\t\t\t\"release\": example.Release,\n\t\t\t\"repository_id\": example.RepositoryId,\n\t\t\t\"version\": example.Version,\n\t\t})\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = NetworkFunctions.getVersion();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentVersion\", %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: proxmoxve:Network:getVersion\n Arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentVersion:\n release: ${example.release}\n repository_id: ${example.repositoryId}\n version: ${example.version}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves API version details.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst example = proxmoxve.Network.getVersion({});\nexport const dataProxmoxVirtualEnvironmentVersion = {\n release: example.then(example =\u003e example.release),\n repository_id: example.then(example =\u003e example.repositoryId),\n version: example.then(example =\u003e example.version),\n};\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nexample = proxmoxve.Network.get_version()\npulumi.export(\"dataProxmoxVirtualEnvironmentVersion\", {\n \"release\": example.release,\n \"repository_id\": example.repository_id,\n \"version\": example.version,\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = ProxmoxVE.Network.GetVersion.Invoke();\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"dataProxmoxVirtualEnvironmentVersion\"] = \n {\n { \"release\", example.Apply(getVersionResult =\u003e getVersionResult.Release) },\n { \"repository_id\", example.Apply(getVersionResult =\u003e getVersionResult.RepositoryId) },\n { \"version\", example.Apply(getVersionResult =\u003e getVersionResult.Version) },\n },\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := Network.GetVersion(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataProxmoxVirtualEnvironmentVersion\", pulumi.StringMap{\n\t\t\t\"release\": example.Release,\n\t\t\t\"repository_id\": example.RepositoryId,\n\t\t\t\"version\": example.Version,\n\t\t})\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Network.NetworkFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = NetworkFunctions.getVersion();\n\n ctx.export(\"dataProxmoxVirtualEnvironmentVersion\", %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: proxmoxve:Network:getVersion\n arguments: {}\noutputs:\n dataProxmoxVirtualEnvironmentVersion:\n release: ${example.release}\n repository_id: ${example.repositoryId}\n version: ${example.version}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "outputs": { "description": "A collection of values returned by getVersion.\n", "properties": { @@ -8479,7 +8479,7 @@ } }, "proxmoxve:Permission/getGroup:getGroup": { - "description": "Retrieves information about a specific user group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsTeam = proxmoxve.Permission.getGroup({\n groupId: \"operations-team\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_team = proxmoxve.Permission.get_group(group_id=\"operations-team\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsTeam = ProxmoxVE.Permission.GetGroup.Invoke(new()\n {\n GroupId = \"operations-team\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetGroup(ctx, \u0026permission.GetGroupArgs{\n\t\t\tGroupId: \"operations-team\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsTeam = PermissionFunctions.getGroup(GetGroupArgs.builder()\n .groupId(\"operations-team\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsTeam:\n fn::invoke:\n Function: proxmoxve:Permission:getGroup\n Arguments:\n groupId: operations-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about a specific user group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsTeam = proxmoxve.Permission.getGroup({\n groupId: \"operations-team\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_team = proxmoxve.Permission.get_group(group_id=\"operations-team\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsTeam = ProxmoxVE.Permission.GetGroup.Invoke(new()\n {\n GroupId = \"operations-team\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetGroup(ctx, \u0026permission.GetGroupArgs{\n\t\t\tGroupId: \"operations-team\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsTeam = PermissionFunctions.getGroup(GetGroupArgs.builder()\n .groupId(\"operations-team\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsTeam:\n fn::invoke:\n function: proxmoxve:Permission:getGroup\n arguments:\n groupId: operations-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getGroup.\n", "properties": { @@ -8533,7 +8533,7 @@ } }, "proxmoxve:Permission/getGroups:getGroups": { - "description": "Retrieves basic information about all available user groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableGroups = proxmoxve.Permission.getGroups({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_groups = proxmoxve.Permission.get_groups()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableGroups = ProxmoxVE.Permission.GetGroups.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableGroups = PermissionFunctions.getGroups();\n\n }\n}\n```\n```yaml\nvariables:\n availableGroups:\n fn::invoke:\n Function: proxmoxve:Permission:getGroups\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves basic information about all available user groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableGroups = proxmoxve.Permission.getGroups({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_groups = proxmoxve.Permission.get_groups()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableGroups = ProxmoxVE.Permission.GetGroups.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableGroups = PermissionFunctions.getGroups();\n\n }\n}\n```\n```yaml\nvariables:\n availableGroups:\n fn::invoke:\n function: proxmoxve:Permission:getGroups\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "outputs": { "description": "A collection of values returned by getGroups.\n", "properties": { @@ -8565,7 +8565,7 @@ } }, "proxmoxve:Permission/getPool:getPool": { - "description": "Retrieves information about a specific resource pool.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsPool = proxmoxve.Permission.getPool({\n poolId: \"operations\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_pool = proxmoxve.Permission.get_pool(pool_id=\"operations\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsPool = ProxmoxVE.Permission.GetPool.Invoke(new()\n {\n PoolId = \"operations\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetPool(ctx, \u0026permission.GetPoolArgs{\n\t\t\tPoolId: \"operations\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsPool = PermissionFunctions.getPool(GetPoolArgs.builder()\n .poolId(\"operations\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsPool:\n fn::invoke:\n Function: proxmoxve:Permission:getPool\n Arguments:\n poolId: operations\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about a specific resource pool.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsPool = proxmoxve.Permission.getPool({\n poolId: \"operations\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_pool = proxmoxve.Permission.get_pool(pool_id=\"operations\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsPool = ProxmoxVE.Permission.GetPool.Invoke(new()\n {\n PoolId = \"operations\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetPool(ctx, \u0026permission.GetPoolArgs{\n\t\t\tPoolId: \"operations\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsPool = PermissionFunctions.getPool(GetPoolArgs.builder()\n .poolId(\"operations\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsPool:\n fn::invoke:\n function: proxmoxve:Permission:getPool\n arguments:\n poolId: operations\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getPool.\n", "properties": { @@ -8611,7 +8611,7 @@ } }, "proxmoxve:Permission/getPools:getPools": { - "description": "Retrieves the identifiers for all the available resource pools.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availablePools = proxmoxve.Permission.getPools({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_pools = proxmoxve.Permission.get_pools()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availablePools = ProxmoxVE.Permission.GetPools.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetPools(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availablePools = PermissionFunctions.getPools();\n\n }\n}\n```\n```yaml\nvariables:\n availablePools:\n fn::invoke:\n Function: proxmoxve:Permission:getPools\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves the identifiers for all the available resource pools.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availablePools = proxmoxve.Permission.getPools({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_pools = proxmoxve.Permission.get_pools()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availablePools = ProxmoxVE.Permission.GetPools.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetPools(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availablePools = PermissionFunctions.getPools();\n\n }\n}\n```\n```yaml\nvariables:\n availablePools:\n fn::invoke:\n function: proxmoxve:Permission:getPools\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "outputs": { "description": "A collection of values returned by getPools.\n", "properties": { @@ -8635,7 +8635,7 @@ } }, "proxmoxve:Permission/getRole:getRole": { - "description": "Retrieves information about a specific role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsRole = proxmoxve.Permission.getRole({\n roleId: \"operations\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_role = proxmoxve.Permission.get_role(role_id=\"operations\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsRole = ProxmoxVE.Permission.GetRole.Invoke(new()\n {\n RoleId = \"operations\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetRole(ctx, \u0026permission.GetRoleArgs{\n\t\t\tRoleId: \"operations\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsRole = PermissionFunctions.getRole(GetRoleArgs.builder()\n .roleId(\"operations\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsRole:\n fn::invoke:\n Function: proxmoxve:Permission:getRole\n Arguments:\n roleId: operations\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about a specific role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsRole = proxmoxve.Permission.getRole({\n roleId: \"operations\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_role = proxmoxve.Permission.get_role(role_id=\"operations\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsRole = ProxmoxVE.Permission.GetRole.Invoke(new()\n {\n RoleId = \"operations\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetRole(ctx, \u0026permission.GetRoleArgs{\n\t\t\tRoleId: \"operations\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsRole = PermissionFunctions.getRole(GetRoleArgs.builder()\n .roleId(\"operations\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsRole:\n fn::invoke:\n function: proxmoxve:Permission:getRole\n arguments:\n roleId: operations\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getRole.\n", "properties": { @@ -8676,7 +8676,7 @@ } }, "proxmoxve:Permission/getRoles:getRoles": { - "description": "Retrieves information about all the available roles.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableRoles = proxmoxve.Permission.getRoles({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_roles = proxmoxve.Permission.get_roles()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableRoles = ProxmoxVE.Permission.GetRoles.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetRoles(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableRoles = PermissionFunctions.getRoles();\n\n }\n}\n```\n```yaml\nvariables:\n availableRoles:\n fn::invoke:\n Function: proxmoxve:Permission:getRoles\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about all the available roles.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableRoles = proxmoxve.Permission.getRoles({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_roles = proxmoxve.Permission.get_roles()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableRoles = ProxmoxVE.Permission.GetRoles.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetRoles(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableRoles = PermissionFunctions.getRoles();\n\n }\n}\n```\n```yaml\nvariables:\n availableRoles:\n fn::invoke:\n function: proxmoxve:Permission:getRoles\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "outputs": { "description": "A collection of values returned by getRoles.\n", "properties": { @@ -8719,7 +8719,7 @@ } }, "proxmoxve:Permission/getUser:getUser": { - "description": "Retrieves information about a specific user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsUser = proxmoxve.Permission.getUser({\n userId: \"operation@pam\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_user = proxmoxve.Permission.get_user(user_id=\"operation@pam\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsUser = ProxmoxVE.Permission.GetUser.Invoke(new()\n {\n UserId = \"operation@pam\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetUser(ctx, \u0026permission.GetUserArgs{\n\t\t\tUserId: \"operation@pam\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsUser = PermissionFunctions.getUser(GetUserArgs.builder()\n .userId(\"operation@pam\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsUser:\n fn::invoke:\n Function: proxmoxve:Permission:getUser\n Arguments:\n userId: operation@pam\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about a specific user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst operationsUser = proxmoxve.Permission.getUser({\n userId: \"operation@pam\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\noperations_user = proxmoxve.Permission.get_user(user_id=\"operation@pam\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var operationsUser = ProxmoxVE.Permission.GetUser.Invoke(new()\n {\n UserId = \"operation@pam\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetUser(ctx, \u0026permission.GetUserArgs{\n\t\t\tUserId: \"operation@pam\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport com.pulumi.proxmoxve.Permission.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var operationsUser = PermissionFunctions.getUser(GetUserArgs.builder()\n .userId(\"operation@pam\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n operationsUser:\n fn::invoke:\n function: proxmoxve:Permission:getUser\n arguments:\n userId: operation@pam\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getUser.\n", "properties": { @@ -8803,7 +8803,7 @@ } }, "proxmoxve:Permission/getUsers:getUsers": { - "description": "Retrieves information about all the available users.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableUsers = proxmoxve.Permission.getUsers({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_users = proxmoxve.Permission.get_users()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableUsers = ProxmoxVE.Permission.GetUsers.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetUsers(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableUsers = PermissionFunctions.getUsers();\n\n }\n}\n```\n```yaml\nvariables:\n availableUsers:\n fn::invoke:\n Function: proxmoxve:Permission:getUsers\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about all the available users.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst availableUsers = proxmoxve.Permission.getUsers({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\navailable_users = proxmoxve.Permission.get_users()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var availableUsers = ProxmoxVE.Permission.GetUsers.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Permission\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Permission.GetUsers(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Permission.PermissionFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var availableUsers = PermissionFunctions.getUsers();\n\n }\n}\n```\n```yaml\nvariables:\n availableUsers:\n fn::invoke:\n function: proxmoxve:Permission:getUsers\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "outputs": { "description": "A collection of values returned by getUsers.\n", "properties": { @@ -8894,7 +8894,7 @@ } }, "proxmoxve:Storage/getDatastores:getDatastores": { - "description": "Retrieves information about all the datastores available to a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNode = proxmoxve.Storage.getDatastores({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node = proxmoxve.Storage.get_datastores(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNode = ProxmoxVE.Storage.GetDatastores.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Storage.GetDatastores(ctx, \u0026storage.GetDatastoresArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Storage.StorageFunctions;\nimport com.pulumi.proxmoxve.Storage.inputs.GetDatastoresArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNode = StorageFunctions.getDatastores(GetDatastoresArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNode:\n fn::invoke:\n Function: proxmoxve:Storage:getDatastores\n Arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about all the datastores available to a specific node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNode = proxmoxve.Storage.getDatastores({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node = proxmoxve.Storage.get_datastores(node_name=\"first-node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var firstNode = ProxmoxVE.Storage.GetDatastores.Invoke(new()\n {\n NodeName = \"first-node\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/Storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Storage.GetDatastores(ctx, \u0026storage.GetDatastoresArgs{\n\t\t\tNodeName: \"first-node\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Storage.StorageFunctions;\nimport com.pulumi.proxmoxve.Storage.inputs.GetDatastoresArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var firstNode = StorageFunctions.getDatastores(GetDatastoresArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNode:\n fn::invoke:\n function: proxmoxve:Storage:getDatastores\n arguments:\n nodeName: first-node\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getDatastores.\n", "properties": { @@ -9002,7 +9002,7 @@ } }, "proxmoxve:VM/getVirtualMachine:getVirtualMachine": { - "description": "Retrieves information about a specific VM.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst testVm = proxmoxve.VM.getVirtualMachine({\n nodeName: \"test\",\n vmId: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\ntest_vm = proxmoxve.VM.get_virtual_machine(node_name=\"test\",\n vm_id=100)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testVm = ProxmoxVE.VM.GetVirtualMachine.Invoke(new()\n {\n NodeName = \"test\",\n VmId = 100,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/VM\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := VM.GetVirtualMachine(ctx, \u0026vm.GetVirtualMachineArgs{\n\t\t\tNodeName: \"test\",\n\t\t\tVmId: 100,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.VM.VMFunctions;\nimport com.pulumi.proxmoxve.VM.inputs.GetVirtualMachineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var testVm = VMFunctions.getVirtualMachine(GetVirtualMachineArgs.builder()\n .nodeName(\"test\")\n .vmId(100)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n testVm:\n fn::invoke:\n Function: proxmoxve:VM:getVirtualMachine\n Arguments:\n nodeName: test\n vmId: 100\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about a specific VM.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst testVm = proxmoxve.VM.getVirtualMachine({\n nodeName: \"test\",\n vmId: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\ntest_vm = proxmoxve.VM.get_virtual_machine(node_name=\"test\",\n vm_id=100)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testVm = ProxmoxVE.VM.GetVirtualMachine.Invoke(new()\n {\n NodeName = \"test\",\n VmId = 100,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/VM\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := VM.GetVirtualMachine(ctx, \u0026vm.GetVirtualMachineArgs{\n\t\t\tNodeName: \"test\",\n\t\t\tVmId: 100,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.VM.VMFunctions;\nimport com.pulumi.proxmoxve.VM.inputs.GetVirtualMachineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var testVm = VMFunctions.getVirtualMachine(GetVirtualMachineArgs.builder()\n .nodeName(\"test\")\n .vmId(100)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n testVm:\n fn::invoke:\n function: proxmoxve:VM:getVirtualMachine\n arguments:\n nodeName: test\n vmId: 100\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getVirtualMachine.\n", "properties": { @@ -9073,7 +9073,7 @@ } }, "proxmoxve:VM/getVirtualMachines:getVirtualMachines": { - "description": "Retrieves information about all VMs in the Proxmox cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst ubuntuVms = proxmoxve.VM.getVirtualMachines({\n tags: [\"ubuntu\"],\n});\nconst ubuntuTemplates = proxmoxve.VM.getVirtualMachines({\n filters: [\n {\n name: \"template\",\n values: [\"true\"],\n },\n {\n name: \"status\",\n values: [\"stopped\"],\n },\n {\n name: \"name\",\n regex: true,\n values: [\"^ubuntu-20.*$\"],\n },\n {\n name: \"node_name\",\n regex: true,\n values: [\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n ],\n },\n ],\n tags: [\n \"template\",\n \"latest\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nubuntu_vms = proxmoxve.VM.get_virtual_machines(tags=[\"ubuntu\"])\nubuntu_templates = proxmoxve.VM.get_virtual_machines(filters=[\n {\n \"name\": \"template\",\n \"values\": [\"true\"],\n },\n {\n \"name\": \"status\",\n \"values\": [\"stopped\"],\n },\n {\n \"name\": \"name\",\n \"regex\": True,\n \"values\": [\"^ubuntu-20.*$\"],\n },\n {\n \"name\": \"node_name\",\n \"regex\": True,\n \"values\": [\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n ],\n },\n ],\n tags=[\n \"template\",\n \"latest\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ubuntuVms = ProxmoxVE.VM.GetVirtualMachines.Invoke(new()\n {\n Tags = new[]\n {\n \"ubuntu\",\n },\n });\n\n var ubuntuTemplates = ProxmoxVE.VM.GetVirtualMachines.Invoke(new()\n {\n Filters = new[]\n {\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"template\",\n Values = new[]\n {\n \"true\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"status\",\n Values = new[]\n {\n \"stopped\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"name\",\n Regex = true,\n Values = new[]\n {\n \"^ubuntu-20.*$\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"node_name\",\n Regex = true,\n Values = new[]\n {\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n },\n },\n },\n Tags = new[]\n {\n \"template\",\n \"latest\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/VM\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := VM.GetVirtualMachines(ctx, \u0026vm.GetVirtualMachinesArgs{\n\t\t\tTags: []string{\n\t\t\t\t\"ubuntu\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = VM.GetVirtualMachines(ctx, \u0026vm.GetVirtualMachinesArgs{\n\t\t\tFilters: []vm.GetVirtualMachinesFilter{\n\t\t\t\t{\n\t\t\t\t\tName: \"template\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"true\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"status\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"stopped\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"name\",\n\t\t\t\t\tRegex: pulumi.BoolRef(true),\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"^ubuntu-20.*$\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"node_name\",\n\t\t\t\t\tRegex: pulumi.BoolRef(true),\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"node_us_[1-3]\",\n\t\t\t\t\t\t\"node_eu_[1-3]\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: []string{\n\t\t\t\t\"template\",\n\t\t\t\t\"latest\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.VM.VMFunctions;\nimport com.pulumi.proxmoxve.VM.inputs.GetVirtualMachinesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var ubuntuVms = VMFunctions.getVirtualMachines(GetVirtualMachinesArgs.builder()\n .tags(\"ubuntu\")\n .build());\n\n final var ubuntuTemplates = VMFunctions.getVirtualMachines(GetVirtualMachinesArgs.builder()\n .filters( \n GetVirtualMachinesFilterArgs.builder()\n .name(\"template\")\n .values(true)\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"status\")\n .values(\"stopped\")\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"name\")\n .regex(true)\n .values(\"^ubuntu-20.*$\")\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"node_name\")\n .regex(true)\n .values( \n \"node_us_[1-3]\",\n \"node_eu_[1-3]\")\n .build())\n .tags( \n \"template\",\n \"latest\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n ubuntuVms:\n fn::invoke:\n Function: proxmoxve:VM:getVirtualMachines\n Arguments:\n tags:\n - ubuntu\n ubuntuTemplates:\n fn::invoke:\n Function: proxmoxve:VM:getVirtualMachines\n Arguments:\n filters:\n - name: template\n values:\n - true\n - name: status\n values:\n - stopped\n - name: name\n regex: true\n values:\n - ^ubuntu-20.*$\n - name: node_name\n regex: true\n values:\n - node_us_[1-3]\n - node_eu_[1-3]\n tags:\n - template\n - latest\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about all VMs in the Proxmox cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst ubuntuVms = proxmoxve.VM.getVirtualMachines({\n tags: [\"ubuntu\"],\n});\nconst ubuntuTemplates = proxmoxve.VM.getVirtualMachines({\n filters: [\n {\n name: \"template\",\n values: [\"true\"],\n },\n {\n name: \"status\",\n values: [\"stopped\"],\n },\n {\n name: \"name\",\n regex: true,\n values: [\"^ubuntu-20.*$\"],\n },\n {\n name: \"node_name\",\n regex: true,\n values: [\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n ],\n },\n ],\n tags: [\n \"template\",\n \"latest\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nubuntu_vms = proxmoxve.VM.get_virtual_machines(tags=[\"ubuntu\"])\nubuntu_templates = proxmoxve.VM.get_virtual_machines(filters=[\n {\n \"name\": \"template\",\n \"values\": [\"true\"],\n },\n {\n \"name\": \"status\",\n \"values\": [\"stopped\"],\n },\n {\n \"name\": \"name\",\n \"regex\": True,\n \"values\": [\"^ubuntu-20.*$\"],\n },\n {\n \"name\": \"node_name\",\n \"regex\": True,\n \"values\": [\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n ],\n },\n ],\n tags=[\n \"template\",\n \"latest\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ubuntuVms = ProxmoxVE.VM.GetVirtualMachines.Invoke(new()\n {\n Tags = new[]\n {\n \"ubuntu\",\n },\n });\n\n var ubuntuTemplates = ProxmoxVE.VM.GetVirtualMachines.Invoke(new()\n {\n Filters = new[]\n {\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"template\",\n Values = new[]\n {\n \"true\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"status\",\n Values = new[]\n {\n \"stopped\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"name\",\n Regex = true,\n Values = new[]\n {\n \"^ubuntu-20.*$\",\n },\n },\n new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs\n {\n Name = \"node_name\",\n Regex = true,\n Values = new[]\n {\n \"node_us_[1-3]\",\n \"node_eu_[1-3]\",\n },\n },\n },\n Tags = new[]\n {\n \"template\",\n \"latest\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve/VM\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := VM.GetVirtualMachines(ctx, \u0026vm.GetVirtualMachinesArgs{\n\t\t\tTags: []string{\n\t\t\t\t\"ubuntu\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = VM.GetVirtualMachines(ctx, \u0026vm.GetVirtualMachinesArgs{\n\t\t\tFilters: []vm.GetVirtualMachinesFilter{\n\t\t\t\t{\n\t\t\t\t\tName: \"template\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"true\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"status\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"stopped\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"name\",\n\t\t\t\t\tRegex: pulumi.BoolRef(true),\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"^ubuntu-20.*$\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: \"node_name\",\n\t\t\t\t\tRegex: pulumi.BoolRef(true),\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"node_us_[1-3]\",\n\t\t\t\t\t\t\"node_eu_[1-3]\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: []string{\n\t\t\t\t\"template\",\n\t\t\t\t\"latest\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.VM.VMFunctions;\nimport com.pulumi.proxmoxve.VM.inputs.GetVirtualMachinesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var ubuntuVms = VMFunctions.getVirtualMachines(GetVirtualMachinesArgs.builder()\n .tags(\"ubuntu\")\n .build());\n\n final var ubuntuTemplates = VMFunctions.getVirtualMachines(GetVirtualMachinesArgs.builder()\n .filters( \n GetVirtualMachinesFilterArgs.builder()\n .name(\"template\")\n .values(true)\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"status\")\n .values(\"stopped\")\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"name\")\n .regex(true)\n .values(\"^ubuntu-20.*$\")\n .build(),\n GetVirtualMachinesFilterArgs.builder()\n .name(\"node_name\")\n .regex(true)\n .values( \n \"node_us_[1-3]\",\n \"node_eu_[1-3]\")\n .build())\n .tags( \n \"template\",\n \"latest\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n ubuntuVms:\n fn::invoke:\n function: proxmoxve:VM:getVirtualMachines\n arguments:\n tags:\n - ubuntu\n ubuntuTemplates:\n fn::invoke:\n function: proxmoxve:VM:getVirtualMachines\n arguments:\n filters:\n - name: template\n values:\n - true\n - name: status\n values:\n - stopped\n - name: name\n regex: true\n values:\n - ^ubuntu-20.*$\n - name: node_name\n regex: true\n values:\n - node_us_[1-3]\n - node_eu_[1-3]\n tags:\n - template\n - latest\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getVirtualMachines.\n", "properties": { @@ -9138,7 +9138,7 @@ } }, "proxmoxve:index/getNode:getNode": { - "description": "Retrieves information about node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst node = proxmoxve.getNode({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nnode = proxmoxve.get_node()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var node = ProxmoxVE.GetNode.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := proxmoxve.GetNode(ctx, \u0026proxmoxve.GetNodeArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.ProxmoxveFunctions;\nimport com.pulumi.proxmoxve.inputs.GetNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var node = ProxmoxveFunctions.getNode();\n\n }\n}\n```\n```yaml\nvariables:\n node:\n fn::invoke:\n Function: proxmoxve:getNode\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Retrieves information about node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst node = proxmoxve.getNode({});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nnode = proxmoxve.get_node()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var node = ProxmoxVE.GetNode.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := proxmoxve.GetNode(ctx, \u0026proxmoxve.GetNodeArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.ProxmoxveFunctions;\nimport com.pulumi.proxmoxve.inputs.GetNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var node = ProxmoxveFunctions.getNode();\n\n }\n}\n```\n```yaml\nvariables:\n node:\n fn::invoke:\n function: proxmoxve:getNode\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getNode.\n", "properties": { diff --git a/provider/go.sum b/provider/go.sum index 33d501eb..09542aac 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1270,8 +1270,6 @@ github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdn github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/bpg/terraform-provider-proxmox v0.68.1 h1:VcNr37LrBEfU3B/62B6f8CAx2P0Nl7wFpBta0OqjbHo= -github.com/bpg/terraform-provider-proxmox v0.68.1/go.mod h1:zX9+kvteqvlBfK2Dj/HUZUboO4Pi87JiL6GPdiossWs= github.com/bpg/terraform-provider-proxmox v0.69.0 h1:vpnxldjz3ClzzoOZL9fyx+uGjXYgXMDb3EUN6W7MD9Q= github.com/bpg/terraform-provider-proxmox v0.69.0/go.mod h1:Ybz6Bs3vnbtpFLU1tJwK/QXhXDsTLLEOWu+Ka4Q7qzU= github.com/brianvoe/gofakeit/v7 v7.1.2 h1:vSKaVScNhWVpf1rlyEKSvO8zKZfuDtGqoIHT//iNNb8= @@ -1650,8 +1648,6 @@ github.com/hashicorp/terraform-plugin-framework v1.13.0 h1:8OTG4+oZUfKgnfTdPTJwZ github.com/hashicorp/terraform-plugin-framework v1.13.0/go.mod h1:j64rwMGpgM3NYXTKuxrCnyubQb/4VKldEKlcG8cvmjU= github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 h1:gm5b1kHgFFhaKFhm4h2TgvMUlNzFAtUqlcOWnWPm+9E= github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1/go.mod h1:MsjL1sQ9L7wGwzJ5RjcI6FzEMdyoBnw+XK8ZnOvQOLY= -github.com/hashicorp/terraform-plugin-framework-validators v0.15.0 h1:RXMmu7JgpFjnI1a5QjMCBb11usrW2OtAG+iOTIj5c9Y= -github.com/hashicorp/terraform-plugin-framework-validators v0.15.0/go.mod h1:Bh89/hNmqsEWug4/XWKYBwtnw3tbz5BAy1L1OgvbIaY= github.com/hashicorp/terraform-plugin-framework-validators v0.16.0 h1:O9QqGoYDzQT7lwTXUsZEtgabeWW96zUBh47Smn2lkFA= github.com/hashicorp/terraform-plugin-framework-validators v0.16.0/go.mod h1:Bh89/hNmqsEWug4/XWKYBwtnw3tbz5BAy1L1OgvbIaY= github.com/hashicorp/terraform-plugin-go v0.22.0/go.mod h1:mPULV91VKss7sik6KFEcEu7HuTogMLLO/EvWCuFkRVE= @@ -1918,32 +1914,14 @@ github.com/pulumi/inflector v0.1.1 h1:dvlxlWtXwOJTUUtcYDvwnl6Mpg33prhK+7mzeF+Sob github.com/pulumi/inflector v0.1.1/go.mod h1:HUFCjcPTz96YtTuUlwG3i3EZG4WlniBvR9bd+iJxCUY= github.com/pulumi/providertest v0.1.3 h1:GpNKRy/haNjRHiUA9bi4diU4Op2zf3axYXbga5AepHg= github.com/pulumi/providertest v0.1.3/go.mod h1:GcsqEGgSngwaNOD+kICJPIUQlnA911fGBU8HDlJvVL0= -github.com/pulumi/pulumi-java/pkg v0.17.0 h1:KmaVLrVmlkzShOfaJNJDlckorbFm8dM/C7L4hj6LX8U= -github.com/pulumi/pulumi-java/pkg v0.17.0/go.mod h1:ji4U4H7t81X4aaE88D9+z5CmKH/QoLwQi9N1iGl+2KQ= -github.com/pulumi/pulumi-java/pkg v0.18.0 h1:3PApc5YegH69n6oubB63mqI97pF+oQywWr7ii4082Mw= -github.com/pulumi/pulumi-java/pkg v0.18.0/go.mod h1:YKYYFEb3Jvzf/dDJo0xOeEkIfBAMkkkdhXulauvEjmc= github.com/pulumi/pulumi-java/pkg v0.19.0 h1:T9kkGUQJV7UTxenw08m3txsgQkNVnZZxvn1zCcNjaE8= github.com/pulumi/pulumi-java/pkg v0.19.0/go.mod h1:YKYYFEb3Jvzf/dDJo0xOeEkIfBAMkkkdhXulauvEjmc= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.96.0 h1:uJB3tM1j+9SKeXLCAx3DBVHsYk4ddXNrVoiqpgXal2Q= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.96.0/go.mod h1:WnOTAfdtm5+kW3rIU0rLhxFSEHtJIMf19FdOU6NFXG0= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.97.0 h1:/Y/9hffZp2CFUfInVbv/9rWnZETiiOgKju1Ua512Ke8= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.97.0/go.mod h1:B/Auryr+yVUkLOMzgpFe7HLwKAtXc6YJwpAXfNGyLPk= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.97.1 h1:+KTtmSk6jqcqKvgNgtGVUWEimkpEZdLZs0xEYwFw288= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.97.1/go.mod h1:B/Auryr+yVUkLOMzgpFe7HLwKAtXc6YJwpAXfNGyLPk= github.com/pulumi/pulumi-terraform-bridge/v3 v3.98.0 h1:FpoJNeqICq0p0IlSs1vOvHarp7uVPMMeTXF321T075k= github.com/pulumi/pulumi-terraform-bridge/v3 v3.98.0/go.mod h1:q0QIquTDad7QvzdLmT31bzISahN1XrnGF/w/vIsxlX0= -github.com/pulumi/pulumi-yaml v1.11.2 h1:MU7TTNbruGCSgNHhaBygjIbLWm3WSbd1q98GpMIgQzE= -github.com/pulumi/pulumi-yaml v1.11.2/go.mod h1:RdXRBupRGGAD1kbYNG1V1h6pyFnXisvQsl0AANvVjGI= github.com/pulumi/pulumi-yaml v1.12.0 h1:ThJP+EBqeJyCnS6w6/PwcEFOT5o112qv0lObhefmFCk= github.com/pulumi/pulumi-yaml v1.12.0/go.mod h1:EhZd1XDfuLa15O51qVVE16U6r8ldK9mLIBclqWCX27Y= -github.com/pulumi/pulumi/pkg/v3 v3.140.0 h1:/bvHa19HY/6qHWvuAOVII8qr72MDGGczBWlPYlPo3j0= -github.com/pulumi/pulumi/pkg/v3 v3.140.0/go.mod h1:rcTtSyisd7BzZTugNk/s9zlYgX9S0S10+pha3Tko6yM= -github.com/pulumi/pulumi/pkg/v3 v3.142.0 h1:UE8TFyXrlxvPrATpd3Kl3En34KrFIFWOxxNAodywPNU= -github.com/pulumi/pulumi/pkg/v3 v3.142.0/go.mod h1:3k6WwRIT7veiDnk3Yo2NtqEYX+4dgLCrMIFvEOnjQqI= github.com/pulumi/pulumi/pkg/v3 v3.143.0 h1:diAlaNVZSRc59ePqbMuvuf/AwecpZyjhh1pGvmLEUwg= github.com/pulumi/pulumi/pkg/v3 v3.143.0/go.mod h1:XzjN1uQI2HWXYolT2L4RIXzvLEnWTSOzFgFFIUfFEa8= -github.com/pulumi/pulumi/sdk/v3 v3.142.0 h1:SmcVddGuvwAh3g3XUVQQ5gVRQUKH1yZ6iETpDNHIHlw= -github.com/pulumi/pulumi/sdk/v3 v3.142.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= github.com/pulumi/pulumi/sdk/v3 v3.143.0 h1:z1m8Fc6l723eU2J/bP7UHE5t6WbBu4iIDAl1WaalQk4= github.com/pulumi/pulumi/sdk/v3 v3.143.0/go.mod h1:OFpZabILGxrFqzcABFpMCksrHGVp4ymRM2BkKjlazDY= github.com/pulumi/schema-tools v0.1.2 h1:Fd9xvUjgck4NA+7/jSk7InqCUT4Kj940+EcnbQKpfZo= @@ -2148,8 +2126,6 @@ golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72 golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= -golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2167,8 +2143,6 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d h1:0olWaB5pg3+oychR51GUVCEsGkeCU/2JxjBgIo4f3M0= -golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 h1:1UoZQm6f0P/ZO0w1Ri+f+ifG/gXhegadRdwBIXEFWDo= golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= diff --git a/sdk/dotnet/Acme/GetAccount.cs b/sdk/dotnet/Acme/GetAccount.cs index 52e0ba2a..f93edc4d 100644 --- a/sdk/dotnet/Acme/GetAccount.cs +++ b/sdk/dotnet/Acme/GetAccount.cs @@ -76,6 +76,39 @@ public static Task InvokeAsync(GetAccountArgs? args = null, In /// public static Output Invoke(GetAccountInvokeArgs? args = null, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Acme/getAccount:getAccount", args ?? new GetAccountInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves information about a specific ACME account. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var all = ProxmoxVE.Acme.GetAccounts.Invoke(); + /// + /// var example = .Select(__value => + /// { + /// return ProxmoxVE.Acme.GetAccount.Invoke(new() + /// { + /// Name = __value, + /// }); + /// }).ToList(); + /// + /// return new Dictionary<string, object?> + /// { + /// ["dataProxmoxVirtualEnvironmentAcmeAccount"] = example, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetAccountInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Acme/getAccount:getAccount", args ?? new GetAccountInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Acme/GetAccounts.cs b/sdk/dotnet/Acme/GetAccounts.cs index 297b2490..92bba8bb 100644 --- a/sdk/dotnet/Acme/GetAccounts.cs +++ b/sdk/dotnet/Acme/GetAccounts.cs @@ -60,6 +60,31 @@ public static Task InvokeAsync(InvokeOptions? options = null) /// public static Output Invoke(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Acme/getAccounts:getAccounts", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Retrieves the list of ACME accounts. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = ProxmoxVE.Acme.GetAccounts.Invoke(); + /// + /// return new Dictionary<string, object?> + /// { + /// ["dataProxmoxVirtualEnvironmentAcmeAccounts"] = example.Apply(getAccountsResult => getAccountsResult.Accounts), + /// }; + /// }); + /// ``` + /// + public static Output Invoke(InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Acme/getAccounts:getAccounts", InvokeArgs.Empty, options.WithDefaults()); } diff --git a/sdk/dotnet/Acme/GetPlugin.cs b/sdk/dotnet/Acme/GetPlugin.cs index 19f055e2..1a6eb5dc 100644 --- a/sdk/dotnet/Acme/GetPlugin.cs +++ b/sdk/dotnet/Acme/GetPlugin.cs @@ -66,6 +66,34 @@ public static Task InvokeAsync(GetPluginArgs args, InvokeOption /// public static Output Invoke(GetPluginInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Acme/getPlugin:getPlugin", args ?? new GetPluginInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves a single ACME plugin by plugin ID name. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = ProxmoxVE.Acme.GetPlugin.Invoke(new() + /// { + /// Plugin = "standalone", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["dataProxmoxVirtualEnvironmentAcmePlugin"] = example, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetPluginInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Acme/getPlugin:getPlugin", args ?? new GetPluginInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Acme/GetPlugins.cs b/sdk/dotnet/Acme/GetPlugins.cs index 64909b4f..e98ebd8d 100644 --- a/sdk/dotnet/Acme/GetPlugins.cs +++ b/sdk/dotnet/Acme/GetPlugins.cs @@ -60,6 +60,31 @@ public static Task InvokeAsync(InvokeOptions? options = null) /// public static Output Invoke(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Acme/getPlugins:getPlugins", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Retrieves the list of ACME plugins. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = ProxmoxVE.Acme.GetPlugins.Invoke(); + /// + /// return new Dictionary<string, object?> + /// { + /// ["dataProxmoxVirtualEnvironmentAcmePlugins"] = example.Apply(getPluginsResult => getPluginsResult.Plugins), + /// }; + /// }); + /// ``` + /// + public static Output Invoke(InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Acme/getPlugins:getPlugins", InvokeArgs.Empty, options.WithDefaults()); } diff --git a/sdk/dotnet/Apt/GetRepository.cs b/sdk/dotnet/Apt/GetRepository.cs index fccd8b6d..fb75e5a6 100644 --- a/sdk/dotnet/Apt/GetRepository.cs +++ b/sdk/dotnet/Apt/GetRepository.cs @@ -70,6 +70,36 @@ public static Task InvokeAsync(GetRepositoryArgs args, Invo /// public static Output Invoke(GetRepositoryInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Apt/getRepository:getRepository", args ?? new GetRepositoryInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves an APT repository from a Proxmox VE cluster. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = ProxmoxVE.Apt.GetRepository.Invoke(new() + /// { + /// FilePath = "/etc/apt/sources.list", + /// Index = 0, + /// Node = "pve", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["proxmoxVirtualEnvironmentAptRepository"] = example, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetRepositoryInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Apt/getRepository:getRepository", args ?? new GetRepositoryInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Apt/Standard/GetRepository.cs b/sdk/dotnet/Apt/Standard/GetRepository.cs index 02f9f611..6230e1de 100644 --- a/sdk/dotnet/Apt/Standard/GetRepository.cs +++ b/sdk/dotnet/Apt/Standard/GetRepository.cs @@ -68,6 +68,35 @@ public static Task InvokeAsync(GetRepositoryArgs args, Invo /// public static Output Invoke(GetRepositoryInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Apt/standard/getRepository:getRepository", args ?? new GetRepositoryInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves an APT standard repository from a Proxmox VE cluster. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = ProxmoxVE.Apt.Standard.GetRepository.Invoke(new() + /// { + /// Handle = "no-subscription", + /// Node = "pve", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["proxmoxVirtualEnvironmentAptStandardRepository"] = example, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetRepositoryInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Apt/standard/getRepository:getRepository", args ?? new GetRepositoryInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Cluster/GetNodes.cs b/sdk/dotnet/Cluster/GetNodes.cs index 0d2a4b2e..40715bfc 100644 --- a/sdk/dotnet/Cluster/GetNodes.cs +++ b/sdk/dotnet/Cluster/GetNodes.cs @@ -52,6 +52,27 @@ public static Task InvokeAsync(InvokeOptions? options = null) /// public static Output Invoke(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Cluster/getNodes:getNodes", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Retrieves information about all available nodes. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var availableNodes = ProxmoxVE.Cluster.GetNodes.Invoke(); + /// + /// }); + /// ``` + /// + public static Output Invoke(InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Cluster/getNodes:getNodes", InvokeArgs.Empty, options.WithDefaults()); } diff --git a/sdk/dotnet/GetNode.cs b/sdk/dotnet/GetNode.cs index 98b486f5..1312cdce 100644 --- a/sdk/dotnet/GetNode.cs +++ b/sdk/dotnet/GetNode.cs @@ -52,6 +52,27 @@ public static Task InvokeAsync(GetNodeArgs args, InvokeOptions? o /// public static Output Invoke(GetNodeInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:index/getNode:getNode", args ?? new GetNodeInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves information about node. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var node = ProxmoxVE.GetNode.Invoke(); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetNodeInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:index/getNode:getNode", args ?? new GetNodeInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/GetVm2.cs b/sdk/dotnet/GetVm2.cs index 909cfc3c..b9546c80 100644 --- a/sdk/dotnet/GetVm2.cs +++ b/sdk/dotnet/GetVm2.cs @@ -24,6 +24,13 @@ public static Task InvokeAsync(GetVm2Args args, InvokeOptions? opt /// public static Output Invoke(GetVm2InvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:index/getVm2:getVm2", args ?? new GetVm2InvokeArgs(), options.WithDefaults()); + + /// + /// !> **DO NOT USE** + /// This is an experimental implementation of a Proxmox VM datasource using Plugin Framework. + /// + public static Output Invoke(GetVm2InvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:index/getVm2:getVm2", args ?? new GetVm2InvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/HA/GetHagroup.cs b/sdk/dotnet/HA/GetHagroup.cs index 4fda2d0f..808c6cc2 100644 --- a/sdk/dotnet/HA/GetHagroup.cs +++ b/sdk/dotnet/HA/GetHagroup.cs @@ -76,6 +76,39 @@ public static Task InvokeAsync(GetHAGroupArgs args, InvokeOpti /// public static Output Invoke(GetHAGroupInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:HA/getHAGroup:getHAGroup", args ?? new GetHAGroupInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves information about a specific High Availability group. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var all = ProxmoxVE.HA.GetHAGroups.Invoke(); + /// + /// var example = .Select(__value => + /// { + /// return ProxmoxVE.HA.GetHAGroup.Invoke(new() + /// { + /// Group = __value, + /// }); + /// }).ToList(); + /// + /// return new Dictionary<string, object?> + /// { + /// ["proxmoxVirtualEnvironmentHagroupsFull"] = example, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetHAGroupInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:HA/getHAGroup:getHAGroup", args ?? new GetHAGroupInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/HA/GetHagroups.cs b/sdk/dotnet/HA/GetHagroups.cs index 3522c925..94e3706e 100644 --- a/sdk/dotnet/HA/GetHagroups.cs +++ b/sdk/dotnet/HA/GetHagroups.cs @@ -60,6 +60,31 @@ public static Task InvokeAsync(InvokeOptions? options = null) /// public static Output Invoke(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:HA/getHAGroups:getHAGroups", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Retrieves the list of High Availability groups. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = ProxmoxVE.HA.GetHAGroups.Invoke(); + /// + /// return new Dictionary<string, object?> + /// { + /// ["dataProxmoxVirtualEnvironmentHagroups"] = example.Apply(getHAGroupsResult => getHAGroupsResult.GroupIds), + /// }; + /// }); + /// ``` + /// + public static Output Invoke(InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:HA/getHAGroups:getHAGroups", InvokeArgs.Empty, options.WithDefaults()); } diff --git a/sdk/dotnet/HA/GetHaresource.cs b/sdk/dotnet/HA/GetHaresource.cs index 65c601d4..6704d14f 100644 --- a/sdk/dotnet/HA/GetHaresource.cs +++ b/sdk/dotnet/HA/GetHaresource.cs @@ -76,6 +76,39 @@ public static Task InvokeAsync(GetHAResourceArgs args, Invo /// public static Output Invoke(GetHAResourceInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:HA/getHAResource:getHAResource", args ?? new GetHAResourceInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves the list of High Availability resources. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var all = ProxmoxVE.HA.GetHAResources.Invoke(); + /// + /// var example = .Select(__value => + /// { + /// return ProxmoxVE.HA.GetHAResource.Invoke(new() + /// { + /// ResourceId = __value, + /// }); + /// }).ToList(); + /// + /// return new Dictionary<string, object?> + /// { + /// ["proxmoxVirtualEnvironmentHaresourcesFull"] = example, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetHAResourceInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:HA/getHAResource:getHAResource", args ?? new GetHAResourceInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/HA/GetHaresources.cs b/sdk/dotnet/HA/GetHaresources.cs index c3d24f64..756e0e97 100644 --- a/sdk/dotnet/HA/GetHaresources.cs +++ b/sdk/dotnet/HA/GetHaresources.cs @@ -78,6 +78,40 @@ public static Task InvokeAsync(GetHAResourcesArgs? args = /// public static Output Invoke(GetHAResourcesInvokeArgs? args = null, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:HA/getHAResources:getHAResources", args ?? new GetHAResourcesInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves the list of High Availability resources. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var exampleAll = ProxmoxVE.HA.GetHAResources.Invoke(); + /// + /// var exampleVm = ProxmoxVE.HA.GetHAResources.Invoke(new() + /// { + /// Type = "vm", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["dataProxmoxVirtualEnvironmentHaresources"] = + /// { + /// { "all", exampleAll.Apply(getHAResourcesResult => getHAResourcesResult.ResourceIds) }, + /// { "vms", exampleVm.Apply(getHAResourcesResult => getHAResourcesResult.ResourceIds) }, + /// }, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetHAResourcesInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:HA/getHAResources:getHAResources", args ?? new GetHAResourcesInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Hardware/GetMappings.cs b/sdk/dotnet/Hardware/GetMappings.cs index b1a99200..412de009 100644 --- a/sdk/dotnet/Hardware/GetMappings.cs +++ b/sdk/dotnet/Hardware/GetMappings.cs @@ -82,6 +82,42 @@ public static Task InvokeAsync(GetMappingsArgs args, InvokeOp /// public static Output Invoke(GetMappingsInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Hardware/getMappings:getMappings", args ?? new GetMappingsInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves a list of hardware mapping resources. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example_pci = ProxmoxVE.Hardware.GetMappings.Invoke(new() + /// { + /// CheckNode = "pve", + /// Type = "pci", + /// }); + /// + /// var example_usb = ProxmoxVE.Hardware.GetMappings.Invoke(new() + /// { + /// CheckNode = "pve", + /// Type = "usb", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["dataProxmoxVirtualEnvironmentHardwareMappingsPci"] = example_pci, + /// ["dataProxmoxVirtualEnvironmentHardwareMappingsUsb"] = example_usb, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetMappingsInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Hardware/getMappings:getMappings", args ?? new GetMappingsInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Hardware/Mapping/GetPci.cs b/sdk/dotnet/Hardware/Mapping/GetPci.cs index 6d569d2c..2b50f928 100644 --- a/sdk/dotnet/Hardware/Mapping/GetPci.cs +++ b/sdk/dotnet/Hardware/Mapping/GetPci.cs @@ -66,6 +66,34 @@ public static Task InvokeAsync(GetPciArgs args, InvokeOptions? opt /// public static Output Invoke(GetPciInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Hardware/mapping/getPci:getPci", args ?? new GetPciInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves a PCI hardware mapping from a Proxmox VE cluster. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = ProxmoxVE.Hardware.Mapping.GetPci.Invoke(new() + /// { + /// Name = "example", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["dataProxmoxVirtualEnvironmentHardwareMappingPci"] = example, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetPciInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Hardware/mapping/getPci:getPci", args ?? new GetPciInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Hardware/Mapping/GetUsb.cs b/sdk/dotnet/Hardware/Mapping/GetUsb.cs index 60dc080b..8fe1267a 100644 --- a/sdk/dotnet/Hardware/Mapping/GetUsb.cs +++ b/sdk/dotnet/Hardware/Mapping/GetUsb.cs @@ -66,6 +66,34 @@ public static Task InvokeAsync(GetUsbArgs args, InvokeOptions? opt /// public static Output Invoke(GetUsbInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Hardware/mapping/getUsb:getUsb", args ?? new GetUsbInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves a USB hardware mapping from a Proxmox VE cluster. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = ProxmoxVE.Hardware.Mapping.GetUsb.Invoke(new() + /// { + /// Name = "example", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["dataProxmoxVirtualEnvironmentHardwareMappingUsb"] = example, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetUsbInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Hardware/mapping/getUsb:getUsb", args ?? new GetUsbInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Network/GetDNS.cs b/sdk/dotnet/Network/GetDNS.cs index 08f4ae77..d7f44293 100644 --- a/sdk/dotnet/Network/GetDNS.cs +++ b/sdk/dotnet/Network/GetDNS.cs @@ -58,6 +58,30 @@ public static Task InvokeAsync(GetDNSArgs args, InvokeOptions? opt /// public static Output Invoke(GetDNSInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Network/getDNS:getDNS", args ?? new GetDNSInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves the DNS configuration for a specific node. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var firstNode = ProxmoxVE.Network.GetDNS.Invoke(new() + /// { + /// NodeName = "first-node", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetDNSInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Network/getDNS:getDNS", args ?? new GetDNSInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Network/GetHosts.cs b/sdk/dotnet/Network/GetHosts.cs index a4ccaf86..deb981f6 100644 --- a/sdk/dotnet/Network/GetHosts.cs +++ b/sdk/dotnet/Network/GetHosts.cs @@ -58,6 +58,30 @@ public static Task InvokeAsync(GetHostsArgs args, InvokeOptions? /// public static Output Invoke(GetHostsInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Network/getHosts:getHosts", args ?? new GetHostsInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves all the host entries from a specific node. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var firstNodeHostEntries = ProxmoxVE.Network.GetHosts.Invoke(new() + /// { + /// NodeName = "first-node", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetHostsInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Network/getHosts:getHosts", args ?? new GetHostsInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Network/GetTime.cs b/sdk/dotnet/Network/GetTime.cs index 4019351b..8165d90a 100644 --- a/sdk/dotnet/Network/GetTime.cs +++ b/sdk/dotnet/Network/GetTime.cs @@ -58,6 +58,30 @@ public static Task InvokeAsync(GetTimeArgs args, InvokeOptions? o /// public static Output Invoke(GetTimeInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Network/getTime:getTime", args ?? new GetTimeInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves the current time for a specific node. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var firstNodeTime = ProxmoxVE.Network.GetTime.Invoke(new() + /// { + /// NodeName = "first-node", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetTimeInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Network/getTime:getTime", args ?? new GetTimeInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Network/GetVersion.cs b/sdk/dotnet/Network/GetVersion.cs index 5d5c2612..a0ee6279 100644 --- a/sdk/dotnet/Network/GetVersion.cs +++ b/sdk/dotnet/Network/GetVersion.cs @@ -70,6 +70,36 @@ public static Task InvokeAsync(InvokeOptions? options = null) /// public static Output Invoke(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Network/getVersion:getVersion", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Retrieves API version details. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = ProxmoxVE.Network.GetVersion.Invoke(); + /// + /// return new Dictionary<string, object?> + /// { + /// ["dataProxmoxVirtualEnvironmentVersion"] = + /// { + /// { "release", example.Apply(getVersionResult => getVersionResult.Release) }, + /// { "repository_id", example.Apply(getVersionResult => getVersionResult.RepositoryId) }, + /// { "version", example.Apply(getVersionResult => getVersionResult.Version) }, + /// }, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Network/getVersion:getVersion", InvokeArgs.Empty, options.WithDefaults()); } diff --git a/sdk/dotnet/Permission/GetGroup.cs b/sdk/dotnet/Permission/GetGroup.cs index 1dc6cbee..b6a4f32c 100644 --- a/sdk/dotnet/Permission/GetGroup.cs +++ b/sdk/dotnet/Permission/GetGroup.cs @@ -58,6 +58,30 @@ public static Task InvokeAsync(GetGroupArgs args, InvokeOptions? /// public static Output Invoke(GetGroupInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getGroup:getGroup", args ?? new GetGroupInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves information about a specific user group. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var operationsTeam = ProxmoxVE.Permission.GetGroup.Invoke(new() + /// { + /// GroupId = "operations-team", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetGroupInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getGroup:getGroup", args ?? new GetGroupInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Permission/GetGroups.cs b/sdk/dotnet/Permission/GetGroups.cs index 60581af6..f49b16fa 100644 --- a/sdk/dotnet/Permission/GetGroups.cs +++ b/sdk/dotnet/Permission/GetGroups.cs @@ -52,6 +52,27 @@ public static Task InvokeAsync(InvokeOptions? options = null) /// public static Output Invoke(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getGroups:getGroups", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Retrieves basic information about all available user groups. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var availableGroups = ProxmoxVE.Permission.GetGroups.Invoke(); + /// + /// }); + /// ``` + /// + public static Output Invoke(InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getGroups:getGroups", InvokeArgs.Empty, options.WithDefaults()); } diff --git a/sdk/dotnet/Permission/GetPool.cs b/sdk/dotnet/Permission/GetPool.cs index 86b4bae4..60b0feb1 100644 --- a/sdk/dotnet/Permission/GetPool.cs +++ b/sdk/dotnet/Permission/GetPool.cs @@ -58,6 +58,30 @@ public static Task InvokeAsync(GetPoolArgs args, InvokeOptions? o /// public static Output Invoke(GetPoolInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getPool:getPool", args ?? new GetPoolInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves information about a specific resource pool. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var operationsPool = ProxmoxVE.Permission.GetPool.Invoke(new() + /// { + /// PoolId = "operations", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetPoolInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getPool:getPool", args ?? new GetPoolInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Permission/GetPools.cs b/sdk/dotnet/Permission/GetPools.cs index 17293b67..4aae4dae 100644 --- a/sdk/dotnet/Permission/GetPools.cs +++ b/sdk/dotnet/Permission/GetPools.cs @@ -52,6 +52,27 @@ public static Task InvokeAsync(InvokeOptions? options = null) /// public static Output Invoke(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getPools:getPools", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Retrieves the identifiers for all the available resource pools. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var availablePools = ProxmoxVE.Permission.GetPools.Invoke(); + /// + /// }); + /// ``` + /// + public static Output Invoke(InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getPools:getPools", InvokeArgs.Empty, options.WithDefaults()); } diff --git a/sdk/dotnet/Permission/GetRole.cs b/sdk/dotnet/Permission/GetRole.cs index 228fea69..cab21447 100644 --- a/sdk/dotnet/Permission/GetRole.cs +++ b/sdk/dotnet/Permission/GetRole.cs @@ -58,6 +58,30 @@ public static Task InvokeAsync(GetRoleArgs args, InvokeOptions? o /// public static Output Invoke(GetRoleInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getRole:getRole", args ?? new GetRoleInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves information about a specific role. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var operationsRole = ProxmoxVE.Permission.GetRole.Invoke(new() + /// { + /// RoleId = "operations", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetRoleInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getRole:getRole", args ?? new GetRoleInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Permission/GetRoles.cs b/sdk/dotnet/Permission/GetRoles.cs index 3fce156b..a52831f1 100644 --- a/sdk/dotnet/Permission/GetRoles.cs +++ b/sdk/dotnet/Permission/GetRoles.cs @@ -52,6 +52,27 @@ public static Task InvokeAsync(InvokeOptions? options = null) /// public static Output Invoke(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getRoles:getRoles", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Retrieves information about all the available roles. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var availableRoles = ProxmoxVE.Permission.GetRoles.Invoke(); + /// + /// }); + /// ``` + /// + public static Output Invoke(InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getRoles:getRoles", InvokeArgs.Empty, options.WithDefaults()); } diff --git a/sdk/dotnet/Permission/GetUser.cs b/sdk/dotnet/Permission/GetUser.cs index a6e64472..26a0388c 100644 --- a/sdk/dotnet/Permission/GetUser.cs +++ b/sdk/dotnet/Permission/GetUser.cs @@ -58,6 +58,30 @@ public static Task InvokeAsync(GetUserArgs args, InvokeOptions? o /// public static Output Invoke(GetUserInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getUser:getUser", args ?? new GetUserInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves information about a specific user. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var operationsUser = ProxmoxVE.Permission.GetUser.Invoke(new() + /// { + /// UserId = "operation@pam", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetUserInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getUser:getUser", args ?? new GetUserInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Permission/GetUsers.cs b/sdk/dotnet/Permission/GetUsers.cs index 2504986f..16a22658 100644 --- a/sdk/dotnet/Permission/GetUsers.cs +++ b/sdk/dotnet/Permission/GetUsers.cs @@ -52,6 +52,27 @@ public static Task InvokeAsync(InvokeOptions? options = null) /// public static Output Invoke(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getUsers:getUsers", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Retrieves information about all the available users. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var availableUsers = ProxmoxVE.Permission.GetUsers.Invoke(); + /// + /// }); + /// ``` + /// + public static Output Invoke(InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Permission/getUsers:getUsers", InvokeArgs.Empty, options.WithDefaults()); } diff --git a/sdk/dotnet/Storage/GetDatastores.cs b/sdk/dotnet/Storage/GetDatastores.cs index bace6e29..0171e533 100644 --- a/sdk/dotnet/Storage/GetDatastores.cs +++ b/sdk/dotnet/Storage/GetDatastores.cs @@ -58,6 +58,30 @@ public static Task InvokeAsync(GetDatastoresArgs args, Invo /// public static Output Invoke(GetDatastoresInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Storage/getDatastores:getDatastores", args ?? new GetDatastoresInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves information about all the datastores available to a specific node. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var firstNode = ProxmoxVE.Storage.GetDatastores.Invoke(new() + /// { + /// NodeName = "first-node", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetDatastoresInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:Storage/getDatastores:getDatastores", args ?? new GetDatastoresInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Utilities.cs b/sdk/dotnet/Utilities.cs index 2e7f37d3..fbeecbe2 100644 --- a/sdk/dotnet/Utilities.cs +++ b/sdk/dotnet/Utilities.cs @@ -57,6 +57,14 @@ static class Utilities return dst; } + public static global::Pulumi.InvokeOutputOptions WithDefaults(this global::Pulumi.InvokeOutputOptions? src) + { + var dst = src ?? new global::Pulumi.InvokeOutputOptions{}; + dst.Version = src?.Version ?? Version; + dst.PluginDownloadURL = src?.PluginDownloadURL ?? "github://api.github.com/muhlba91/pulumi-proxmoxve"; + return dst; + } + private readonly static string version; public static string Version => version; diff --git a/sdk/dotnet/Vm/GetVirtualMachine.cs b/sdk/dotnet/Vm/GetVirtualMachine.cs index 3e7637ab..e2597d8c 100644 --- a/sdk/dotnet/Vm/GetVirtualMachine.cs +++ b/sdk/dotnet/Vm/GetVirtualMachine.cs @@ -60,6 +60,31 @@ public static Task InvokeAsync(GetVirtualMachineArgs ar /// public static Output Invoke(GetVirtualMachineInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:VM/getVirtualMachine:getVirtualMachine", args ?? new GetVirtualMachineInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves information about a specific VM. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var testVm = ProxmoxVE.VM.GetVirtualMachine.Invoke(new() + /// { + /// NodeName = "test", + /// VmId = 100, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetVirtualMachineInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:VM/getVirtualMachine:getVirtualMachine", args ?? new GetVirtualMachineInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/dotnet/Vm/GetVirtualMachines.cs b/sdk/dotnet/Vm/GetVirtualMachines.cs index 36b7d39b..bf60474e 100644 --- a/sdk/dotnet/Vm/GetVirtualMachines.cs +++ b/sdk/dotnet/Vm/GetVirtualMachines.cs @@ -158,6 +158,80 @@ public static Task InvokeAsync(GetVirtualMachinesArgs? /// public static Output Invoke(GetVirtualMachinesInvokeArgs? args = null, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:VM/getVirtualMachines:getVirtualMachines", args ?? new GetVirtualMachinesInvokeArgs(), options.WithDefaults()); + + /// + /// Retrieves information about all VMs in the Proxmox cluster. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var ubuntuVms = ProxmoxVE.VM.GetVirtualMachines.Invoke(new() + /// { + /// Tags = new[] + /// { + /// "ubuntu", + /// }, + /// }); + /// + /// var ubuntuTemplates = ProxmoxVE.VM.GetVirtualMachines.Invoke(new() + /// { + /// Filters = new[] + /// { + /// new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs + /// { + /// Name = "template", + /// Values = new[] + /// { + /// "true", + /// }, + /// }, + /// new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs + /// { + /// Name = "status", + /// Values = new[] + /// { + /// "stopped", + /// }, + /// }, + /// new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs + /// { + /// Name = "name", + /// Regex = true, + /// Values = new[] + /// { + /// "^ubuntu-20.*$", + /// }, + /// }, + /// new ProxmoxVE.VM.Inputs.GetVirtualMachinesFilterInputArgs + /// { + /// Name = "node_name", + /// Regex = true, + /// Values = new[] + /// { + /// "node_us_[1-3]", + /// "node_eu_[1-3]", + /// }, + /// }, + /// }, + /// Tags = new[] + /// { + /// "template", + /// "latest", + /// }, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetVirtualMachinesInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("proxmoxve:VM/getVirtualMachines:getVirtualMachines", args ?? new GetVirtualMachinesInvokeArgs(), options.WithDefaults()); } diff --git a/sdk/go/proxmoxve/acme/getAccount.go b/sdk/go/proxmoxve/acme/getAccount.go index b0929de9..62a53129 100644 --- a/sdk/go/proxmoxve/acme/getAccount.go +++ b/sdk/go/proxmoxve/acme/getAccount.go @@ -71,21 +71,11 @@ type GetAccountResult struct { } func GetAccountOutput(ctx *pulumi.Context, args GetAccountOutputArgs, opts ...pulumi.InvokeOption) GetAccountResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetAccountResultOutput, error) { args := v.(GetAccountArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetAccountResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Acme/getAccount:getAccount", args, &rv, "", opts...) - if err != nil { - return GetAccountResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetAccountResultOutput) - if secret { - return pulumi.ToSecret(output).(GetAccountResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Acme/getAccount:getAccount", args, GetAccountResultOutput{}, options).(GetAccountResultOutput), nil }).(GetAccountResultOutput) } diff --git a/sdk/go/proxmoxve/acme/getAccounts.go b/sdk/go/proxmoxve/acme/getAccounts.go index d7b77580..b69ada36 100644 --- a/sdk/go/proxmoxve/acme/getAccounts.go +++ b/sdk/go/proxmoxve/acme/getAccounts.go @@ -57,18 +57,8 @@ type GetAccountsResult struct { func GetAccountsOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetAccountsResultOutput { return pulumi.ToOutput(0).ApplyT(func(int) (GetAccountsResultOutput, error) { - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetAccountsResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Acme/getAccounts:getAccounts", nil, &rv, "", opts...) - if err != nil { - return GetAccountsResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetAccountsResultOutput) - if secret { - return pulumi.ToSecret(output).(GetAccountsResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Acme/getAccounts:getAccounts", nil, GetAccountsResultOutput{}, options).(GetAccountsResultOutput), nil }).(GetAccountsResultOutput) } diff --git a/sdk/go/proxmoxve/acme/getPlugin.go b/sdk/go/proxmoxve/acme/getPlugin.go index 3faeb059..6271c875 100644 --- a/sdk/go/proxmoxve/acme/getPlugin.go +++ b/sdk/go/proxmoxve/acme/getPlugin.go @@ -74,21 +74,11 @@ type GetPluginResult struct { } func GetPluginOutput(ctx *pulumi.Context, args GetPluginOutputArgs, opts ...pulumi.InvokeOption) GetPluginResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetPluginResultOutput, error) { args := v.(GetPluginArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetPluginResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Acme/getPlugin:getPlugin", args, &rv, "", opts...) - if err != nil { - return GetPluginResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetPluginResultOutput) - if secret { - return pulumi.ToSecret(output).(GetPluginResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Acme/getPlugin:getPlugin", args, GetPluginResultOutput{}, options).(GetPluginResultOutput), nil }).(GetPluginResultOutput) } diff --git a/sdk/go/proxmoxve/acme/getPlugins.go b/sdk/go/proxmoxve/acme/getPlugins.go index 5364d160..2c90a63e 100644 --- a/sdk/go/proxmoxve/acme/getPlugins.go +++ b/sdk/go/proxmoxve/acme/getPlugins.go @@ -57,18 +57,8 @@ type GetPluginsResult struct { func GetPluginsOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetPluginsResultOutput { return pulumi.ToOutput(0).ApplyT(func(int) (GetPluginsResultOutput, error) { - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetPluginsResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Acme/getPlugins:getPlugins", nil, &rv, "", opts...) - if err != nil { - return GetPluginsResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetPluginsResultOutput) - if secret { - return pulumi.ToSecret(output).(GetPluginsResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Acme/getPlugins:getPlugins", nil, GetPluginsResultOutput{}, options).(GetPluginsResultOutput), nil }).(GetPluginsResultOutput) } diff --git a/sdk/go/proxmoxve/apt/getRepository.go b/sdk/go/proxmoxve/apt/getRepository.go index 414a9b8f..4b8ca99a 100644 --- a/sdk/go/proxmoxve/apt/getRepository.go +++ b/sdk/go/proxmoxve/apt/getRepository.go @@ -88,21 +88,11 @@ type LookupRepositoryResult struct { } func LookupRepositoryOutput(ctx *pulumi.Context, args LookupRepositoryOutputArgs, opts ...pulumi.InvokeOption) LookupRepositoryResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupRepositoryResultOutput, error) { args := v.(LookupRepositoryArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupRepositoryResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Apt/getRepository:getRepository", args, &rv, "", opts...) - if err != nil { - return LookupRepositoryResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupRepositoryResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupRepositoryResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Apt/getRepository:getRepository", args, LookupRepositoryResultOutput{}, options).(LookupRepositoryResultOutput), nil }).(LookupRepositoryResultOutput) } diff --git a/sdk/go/proxmoxve/apt/standard/getRepository.go b/sdk/go/proxmoxve/apt/standard/getRepository.go index c30d6142..e5a54f7a 100644 --- a/sdk/go/proxmoxve/apt/standard/getRepository.go +++ b/sdk/go/proxmoxve/apt/standard/getRepository.go @@ -79,21 +79,11 @@ type LookupRepositoryResult struct { } func LookupRepositoryOutput(ctx *pulumi.Context, args LookupRepositoryOutputArgs, opts ...pulumi.InvokeOption) LookupRepositoryResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupRepositoryResultOutput, error) { args := v.(LookupRepositoryArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupRepositoryResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Apt/standard/getRepository:getRepository", args, &rv, "", opts...) - if err != nil { - return LookupRepositoryResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupRepositoryResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupRepositoryResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Apt/standard/getRepository:getRepository", args, LookupRepositoryResultOutput{}, options).(LookupRepositoryResultOutput), nil }).(LookupRepositoryResultOutput) } diff --git a/sdk/go/proxmoxve/cluster/getNodes.go b/sdk/go/proxmoxve/cluster/getNodes.go index e361a4b8..9247ddf5 100644 --- a/sdk/go/proxmoxve/cluster/getNodes.go +++ b/sdk/go/proxmoxve/cluster/getNodes.go @@ -72,18 +72,8 @@ type GetNodesResult struct { func GetNodesOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetNodesResultOutput { return pulumi.ToOutput(0).ApplyT(func(int) (GetNodesResultOutput, error) { - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetNodesResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Cluster/getNodes:getNodes", nil, &rv, "", opts...) - if err != nil { - return GetNodesResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetNodesResultOutput) - if secret { - return pulumi.ToSecret(output).(GetNodesResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Cluster/getNodes:getNodes", nil, GetNodesResultOutput{}, options).(GetNodesResultOutput), nil }).(GetNodesResultOutput) } diff --git a/sdk/go/proxmoxve/getNode.go b/sdk/go/proxmoxve/getNode.go index 2f2270f8..e0681ac5 100644 --- a/sdk/go/proxmoxve/getNode.go +++ b/sdk/go/proxmoxve/getNode.go @@ -74,21 +74,11 @@ type GetNodeResult struct { } func GetNodeOutput(ctx *pulumi.Context, args GetNodeOutputArgs, opts ...pulumi.InvokeOption) GetNodeResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetNodeResultOutput, error) { args := v.(GetNodeArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetNodeResult - secret, err := ctx.InvokePackageRaw("proxmoxve:index/getNode:getNode", args, &rv, "", opts...) - if err != nil { - return GetNodeResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetNodeResultOutput) - if secret { - return pulumi.ToSecret(output).(GetNodeResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:index/getNode:getNode", args, GetNodeResultOutput{}, options).(GetNodeResultOutput), nil }).(GetNodeResultOutput) } diff --git a/sdk/go/proxmoxve/getVm2.go b/sdk/go/proxmoxve/getVm2.go index 05194891..e1bc93d9 100644 --- a/sdk/go/proxmoxve/getVm2.go +++ b/sdk/go/proxmoxve/getVm2.go @@ -70,21 +70,11 @@ type LookupVm2Result struct { } func LookupVm2Output(ctx *pulumi.Context, args LookupVm2OutputArgs, opts ...pulumi.InvokeOption) LookupVm2ResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupVm2ResultOutput, error) { args := v.(LookupVm2Args) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupVm2Result - secret, err := ctx.InvokePackageRaw("proxmoxve:index/getVm2:getVm2", args, &rv, "", opts...) - if err != nil { - return LookupVm2ResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupVm2ResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupVm2ResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:index/getVm2:getVm2", args, LookupVm2ResultOutput{}, options).(LookupVm2ResultOutput), nil }).(LookupVm2ResultOutput) } diff --git a/sdk/go/proxmoxve/ha/getHagroup.go b/sdk/go/proxmoxve/ha/getHagroup.go index 087cf753..04411f47 100644 --- a/sdk/go/proxmoxve/ha/getHagroup.go +++ b/sdk/go/proxmoxve/ha/getHagroup.go @@ -71,21 +71,11 @@ type LookupHAGroupResult struct { } func LookupHAGroupOutput(ctx *pulumi.Context, args LookupHAGroupOutputArgs, opts ...pulumi.InvokeOption) LookupHAGroupResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupHAGroupResultOutput, error) { args := v.(LookupHAGroupArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupHAGroupResult - secret, err := ctx.InvokePackageRaw("proxmoxve:HA/getHAGroup:getHAGroup", args, &rv, "", opts...) - if err != nil { - return LookupHAGroupResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupHAGroupResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupHAGroupResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:HA/getHAGroup:getHAGroup", args, LookupHAGroupResultOutput{}, options).(LookupHAGroupResultOutput), nil }).(LookupHAGroupResultOutput) } diff --git a/sdk/go/proxmoxve/ha/getHagroups.go b/sdk/go/proxmoxve/ha/getHagroups.go index 5f183427..4f5c232d 100644 --- a/sdk/go/proxmoxve/ha/getHagroups.go +++ b/sdk/go/proxmoxve/ha/getHagroups.go @@ -57,18 +57,8 @@ type GetHAGroupsResult struct { func GetHAGroupsOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetHAGroupsResultOutput { return pulumi.ToOutput(0).ApplyT(func(int) (GetHAGroupsResultOutput, error) { - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetHAGroupsResult - secret, err := ctx.InvokePackageRaw("proxmoxve:HA/getHAGroups:getHAGroups", nil, &rv, "", opts...) - if err != nil { - return GetHAGroupsResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetHAGroupsResultOutput) - if secret { - return pulumi.ToSecret(output).(GetHAGroupsResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:HA/getHAGroups:getHAGroups", nil, GetHAGroupsResultOutput{}, options).(GetHAGroupsResultOutput), nil }).(GetHAGroupsResultOutput) } diff --git a/sdk/go/proxmoxve/ha/getHaresource.go b/sdk/go/proxmoxve/ha/getHaresource.go index 82c512a1..54a9199e 100644 --- a/sdk/go/proxmoxve/ha/getHaresource.go +++ b/sdk/go/proxmoxve/ha/getHaresource.go @@ -75,21 +75,11 @@ type LookupHAResourceResult struct { } func LookupHAResourceOutput(ctx *pulumi.Context, args LookupHAResourceOutputArgs, opts ...pulumi.InvokeOption) LookupHAResourceResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupHAResourceResultOutput, error) { args := v.(LookupHAResourceArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupHAResourceResult - secret, err := ctx.InvokePackageRaw("proxmoxve:HA/getHAResource:getHAResource", args, &rv, "", opts...) - if err != nil { - return LookupHAResourceResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupHAResourceResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupHAResourceResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:HA/getHAResource:getHAResource", args, LookupHAResourceResultOutput{}, options).(LookupHAResourceResultOutput), nil }).(LookupHAResourceResultOutput) } diff --git a/sdk/go/proxmoxve/ha/getHaresources.go b/sdk/go/proxmoxve/ha/getHaresources.go index 5c5a4c79..b1367a2e 100644 --- a/sdk/go/proxmoxve/ha/getHaresources.go +++ b/sdk/go/proxmoxve/ha/getHaresources.go @@ -72,21 +72,11 @@ type GetHAResourcesResult struct { } func GetHAResourcesOutput(ctx *pulumi.Context, args GetHAResourcesOutputArgs, opts ...pulumi.InvokeOption) GetHAResourcesResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetHAResourcesResultOutput, error) { args := v.(GetHAResourcesArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetHAResourcesResult - secret, err := ctx.InvokePackageRaw("proxmoxve:HA/getHAResources:getHAResources", args, &rv, "", opts...) - if err != nil { - return GetHAResourcesResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetHAResourcesResultOutput) - if secret { - return pulumi.ToSecret(output).(GetHAResourcesResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:HA/getHAResources:getHAResources", args, GetHAResourcesResultOutput{}, options).(GetHAResourcesResultOutput), nil }).(GetHAResourcesResultOutput) } diff --git a/sdk/go/proxmoxve/hardware/getMappings.go b/sdk/go/proxmoxve/hardware/getMappings.go index 9fa28cfb..2d96e79a 100644 --- a/sdk/go/proxmoxve/hardware/getMappings.go +++ b/sdk/go/proxmoxve/hardware/getMappings.go @@ -81,21 +81,11 @@ type GetMappingsResult struct { } func GetMappingsOutput(ctx *pulumi.Context, args GetMappingsOutputArgs, opts ...pulumi.InvokeOption) GetMappingsResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetMappingsResultOutput, error) { args := v.(GetMappingsArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetMappingsResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Hardware/getMappings:getMappings", args, &rv, "", opts...) - if err != nil { - return GetMappingsResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetMappingsResultOutput) - if secret { - return pulumi.ToSecret(output).(GetMappingsResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Hardware/getMappings:getMappings", args, GetMappingsResultOutput{}, options).(GetMappingsResultOutput), nil }).(GetMappingsResultOutput) } diff --git a/sdk/go/proxmoxve/hardware/mapping/getPci.go b/sdk/go/proxmoxve/hardware/mapping/getPci.go index 2c30e480..4257427a 100644 --- a/sdk/go/proxmoxve/hardware/mapping/getPci.go +++ b/sdk/go/proxmoxve/hardware/mapping/getPci.go @@ -70,21 +70,11 @@ type LookupPciResult struct { } func LookupPciOutput(ctx *pulumi.Context, args LookupPciOutputArgs, opts ...pulumi.InvokeOption) LookupPciResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupPciResultOutput, error) { args := v.(LookupPciArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupPciResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Hardware/mapping/getPci:getPci", args, &rv, "", opts...) - if err != nil { - return LookupPciResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupPciResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupPciResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Hardware/mapping/getPci:getPci", args, LookupPciResultOutput{}, options).(LookupPciResultOutput), nil }).(LookupPciResultOutput) } diff --git a/sdk/go/proxmoxve/hardware/mapping/getUsb.go b/sdk/go/proxmoxve/hardware/mapping/getUsb.go index ee397ca8..d2d397d2 100644 --- a/sdk/go/proxmoxve/hardware/mapping/getUsb.go +++ b/sdk/go/proxmoxve/hardware/mapping/getUsb.go @@ -68,21 +68,11 @@ type LookupUsbResult struct { } func LookupUsbOutput(ctx *pulumi.Context, args LookupUsbOutputArgs, opts ...pulumi.InvokeOption) LookupUsbResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupUsbResultOutput, error) { args := v.(LookupUsbArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupUsbResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Hardware/mapping/getUsb:getUsb", args, &rv, "", opts...) - if err != nil { - return LookupUsbResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupUsbResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupUsbResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Hardware/mapping/getUsb:getUsb", args, LookupUsbResultOutput{}, options).(LookupUsbResultOutput), nil }).(LookupUsbResultOutput) } diff --git a/sdk/go/proxmoxve/network/getDNS.go b/sdk/go/proxmoxve/network/getDNS.go index 84cc2637..bb14b7a2 100644 --- a/sdk/go/proxmoxve/network/getDNS.go +++ b/sdk/go/proxmoxve/network/getDNS.go @@ -66,21 +66,11 @@ type GetDNSResult struct { } func GetDNSOutput(ctx *pulumi.Context, args GetDNSOutputArgs, opts ...pulumi.InvokeOption) GetDNSResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetDNSResultOutput, error) { args := v.(GetDNSArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetDNSResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Network/getDNS:getDNS", args, &rv, "", opts...) - if err != nil { - return GetDNSResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetDNSResultOutput) - if secret { - return pulumi.ToSecret(output).(GetDNSResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Network/getDNS:getDNS", args, GetDNSResultOutput{}, options).(GetDNSResultOutput), nil }).(GetDNSResultOutput) } diff --git a/sdk/go/proxmoxve/network/getHosts.go b/sdk/go/proxmoxve/network/getHosts.go index 8e6c4eff..312496a1 100644 --- a/sdk/go/proxmoxve/network/getHosts.go +++ b/sdk/go/proxmoxve/network/getHosts.go @@ -71,21 +71,11 @@ type GetHostsResult struct { } func GetHostsOutput(ctx *pulumi.Context, args GetHostsOutputArgs, opts ...pulumi.InvokeOption) GetHostsResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetHostsResultOutput, error) { args := v.(GetHostsArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetHostsResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Network/getHosts:getHosts", args, &rv, "", opts...) - if err != nil { - return GetHostsResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetHostsResultOutput) - if secret { - return pulumi.ToSecret(output).(GetHostsResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Network/getHosts:getHosts", args, GetHostsResultOutput{}, options).(GetHostsResultOutput), nil }).(GetHostsResultOutput) } diff --git a/sdk/go/proxmoxve/network/getTime.go b/sdk/go/proxmoxve/network/getTime.go index 90cc0ce9..13931b9e 100644 --- a/sdk/go/proxmoxve/network/getTime.go +++ b/sdk/go/proxmoxve/network/getTime.go @@ -68,21 +68,11 @@ type GetTimeResult struct { } func GetTimeOutput(ctx *pulumi.Context, args GetTimeOutputArgs, opts ...pulumi.InvokeOption) GetTimeResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetTimeResultOutput, error) { args := v.(GetTimeArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetTimeResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Network/getTime:getTime", args, &rv, "", opts...) - if err != nil { - return GetTimeResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetTimeResultOutput) - if secret { - return pulumi.ToSecret(output).(GetTimeResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Network/getTime:getTime", args, GetTimeResultOutput{}, options).(GetTimeResultOutput), nil }).(GetTimeResultOutput) } diff --git a/sdk/go/proxmoxve/network/getVersion.go b/sdk/go/proxmoxve/network/getVersion.go index d05fce66..95f35701 100644 --- a/sdk/go/proxmoxve/network/getVersion.go +++ b/sdk/go/proxmoxve/network/getVersion.go @@ -65,18 +65,8 @@ type GetVersionResult struct { func GetVersionOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetVersionResultOutput { return pulumi.ToOutput(0).ApplyT(func(int) (GetVersionResultOutput, error) { - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetVersionResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Network/getVersion:getVersion", nil, &rv, "", opts...) - if err != nil { - return GetVersionResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetVersionResultOutput) - if secret { - return pulumi.ToSecret(output).(GetVersionResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Network/getVersion:getVersion", nil, GetVersionResultOutput{}, options).(GetVersionResultOutput), nil }).(GetVersionResultOutput) } diff --git a/sdk/go/proxmoxve/permission/getGroup.go b/sdk/go/proxmoxve/permission/getGroup.go index 13330519..ccf2e65a 100644 --- a/sdk/go/proxmoxve/permission/getGroup.go +++ b/sdk/go/proxmoxve/permission/getGroup.go @@ -68,21 +68,11 @@ type LookupGroupResult struct { } func LookupGroupOutput(ctx *pulumi.Context, args LookupGroupOutputArgs, opts ...pulumi.InvokeOption) LookupGroupResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupGroupResultOutput, error) { args := v.(LookupGroupArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupGroupResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Permission/getGroup:getGroup", args, &rv, "", opts...) - if err != nil { - return LookupGroupResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupGroupResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupGroupResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Permission/getGroup:getGroup", args, LookupGroupResultOutput{}, options).(LookupGroupResultOutput), nil }).(LookupGroupResultOutput) } diff --git a/sdk/go/proxmoxve/permission/getGroups.go b/sdk/go/proxmoxve/permission/getGroups.go index a12906c2..522f645e 100644 --- a/sdk/go/proxmoxve/permission/getGroups.go +++ b/sdk/go/proxmoxve/permission/getGroups.go @@ -58,18 +58,8 @@ type GetGroupsResult struct { func GetGroupsOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetGroupsResultOutput { return pulumi.ToOutput(0).ApplyT(func(int) (GetGroupsResultOutput, error) { - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetGroupsResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Permission/getGroups:getGroups", nil, &rv, "", opts...) - if err != nil { - return GetGroupsResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetGroupsResultOutput) - if secret { - return pulumi.ToSecret(output).(GetGroupsResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Permission/getGroups:getGroups", nil, GetGroupsResultOutput{}, options).(GetGroupsResultOutput), nil }).(GetGroupsResultOutput) } diff --git a/sdk/go/proxmoxve/permission/getPool.go b/sdk/go/proxmoxve/permission/getPool.go index 59fe5cdd..1983e094 100644 --- a/sdk/go/proxmoxve/permission/getPool.go +++ b/sdk/go/proxmoxve/permission/getPool.go @@ -66,21 +66,11 @@ type LookupPoolResult struct { } func LookupPoolOutput(ctx *pulumi.Context, args LookupPoolOutputArgs, opts ...pulumi.InvokeOption) LookupPoolResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupPoolResultOutput, error) { args := v.(LookupPoolArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupPoolResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Permission/getPool:getPool", args, &rv, "", opts...) - if err != nil { - return LookupPoolResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupPoolResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupPoolResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Permission/getPool:getPool", args, LookupPoolResultOutput{}, options).(LookupPoolResultOutput), nil }).(LookupPoolResultOutput) } diff --git a/sdk/go/proxmoxve/permission/getPools.go b/sdk/go/proxmoxve/permission/getPools.go index 652fcf83..d114504e 100644 --- a/sdk/go/proxmoxve/permission/getPools.go +++ b/sdk/go/proxmoxve/permission/getPools.go @@ -56,18 +56,8 @@ type GetPoolsResult struct { func GetPoolsOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetPoolsResultOutput { return pulumi.ToOutput(0).ApplyT(func(int) (GetPoolsResultOutput, error) { - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetPoolsResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Permission/getPools:getPools", nil, &rv, "", opts...) - if err != nil { - return GetPoolsResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetPoolsResultOutput) - if secret { - return pulumi.ToSecret(output).(GetPoolsResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Permission/getPools:getPools", nil, GetPoolsResultOutput{}, options).(GetPoolsResultOutput), nil }).(GetPoolsResultOutput) } diff --git a/sdk/go/proxmoxve/permission/getRole.go b/sdk/go/proxmoxve/permission/getRole.go index 066df93a..60ada0c0 100644 --- a/sdk/go/proxmoxve/permission/getRole.go +++ b/sdk/go/proxmoxve/permission/getRole.go @@ -64,21 +64,11 @@ type LookupRoleResult struct { } func LookupRoleOutput(ctx *pulumi.Context, args LookupRoleOutputArgs, opts ...pulumi.InvokeOption) LookupRoleResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupRoleResultOutput, error) { args := v.(LookupRoleArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupRoleResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Permission/getRole:getRole", args, &rv, "", opts...) - if err != nil { - return LookupRoleResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupRoleResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupRoleResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Permission/getRole:getRole", args, LookupRoleResultOutput{}, options).(LookupRoleResultOutput), nil }).(LookupRoleResultOutput) } diff --git a/sdk/go/proxmoxve/permission/getRoles.go b/sdk/go/proxmoxve/permission/getRoles.go index 2de14fa2..2f21ecc6 100644 --- a/sdk/go/proxmoxve/permission/getRoles.go +++ b/sdk/go/proxmoxve/permission/getRoles.go @@ -60,18 +60,8 @@ type GetRolesResult struct { func GetRolesOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetRolesResultOutput { return pulumi.ToOutput(0).ApplyT(func(int) (GetRolesResultOutput, error) { - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetRolesResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Permission/getRoles:getRoles", nil, &rv, "", opts...) - if err != nil { - return GetRolesResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetRolesResultOutput) - if secret { - return pulumi.ToSecret(output).(GetRolesResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Permission/getRoles:getRoles", nil, GetRolesResultOutput{}, options).(GetRolesResultOutput), nil }).(GetRolesResultOutput) } diff --git a/sdk/go/proxmoxve/permission/getUser.go b/sdk/go/proxmoxve/permission/getUser.go index d0f39874..1c99dc90 100644 --- a/sdk/go/proxmoxve/permission/getUser.go +++ b/sdk/go/proxmoxve/permission/getUser.go @@ -80,21 +80,11 @@ type LookupUserResult struct { } func LookupUserOutput(ctx *pulumi.Context, args LookupUserOutputArgs, opts ...pulumi.InvokeOption) LookupUserResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupUserResultOutput, error) { args := v.(LookupUserArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupUserResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Permission/getUser:getUser", args, &rv, "", opts...) - if err != nil { - return LookupUserResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupUserResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupUserResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Permission/getUser:getUser", args, LookupUserResultOutput{}, options).(LookupUserResultOutput), nil }).(LookupUserResultOutput) } diff --git a/sdk/go/proxmoxve/permission/getUsers.go b/sdk/go/proxmoxve/permission/getUsers.go index 2ef6455f..b89d7a14 100644 --- a/sdk/go/proxmoxve/permission/getUsers.go +++ b/sdk/go/proxmoxve/permission/getUsers.go @@ -72,18 +72,8 @@ type GetUsersResult struct { func GetUsersOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetUsersResultOutput { return pulumi.ToOutput(0).ApplyT(func(int) (GetUsersResultOutput, error) { - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetUsersResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Permission/getUsers:getUsers", nil, &rv, "", opts...) - if err != nil { - return GetUsersResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetUsersResultOutput) - if secret { - return pulumi.ToSecret(output).(GetUsersResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Permission/getUsers:getUsers", nil, GetUsersResultOutput{}, options).(GetUsersResultOutput), nil }).(GetUsersResultOutput) } diff --git a/sdk/go/proxmoxve/storage/getDatastores.go b/sdk/go/proxmoxve/storage/getDatastores.go index 938aa0f5..20f30339 100644 --- a/sdk/go/proxmoxve/storage/getDatastores.go +++ b/sdk/go/proxmoxve/storage/getDatastores.go @@ -80,21 +80,11 @@ type GetDatastoresResult struct { } func GetDatastoresOutput(ctx *pulumi.Context, args GetDatastoresOutputArgs, opts ...pulumi.InvokeOption) GetDatastoresResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetDatastoresResultOutput, error) { args := v.(GetDatastoresArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetDatastoresResult - secret, err := ctx.InvokePackageRaw("proxmoxve:Storage/getDatastores:getDatastores", args, &rv, "", opts...) - if err != nil { - return GetDatastoresResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetDatastoresResultOutput) - if secret { - return pulumi.ToSecret(output).(GetDatastoresResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:Storage/getDatastores:getDatastores", args, GetDatastoresResultOutput{}, options).(GetDatastoresResultOutput), nil }).(GetDatastoresResultOutput) } diff --git a/sdk/go/proxmoxve/vm/getVirtualMachine.go b/sdk/go/proxmoxve/vm/getVirtualMachine.go index e09ec437..3db4e9cf 100644 --- a/sdk/go/proxmoxve/vm/getVirtualMachine.go +++ b/sdk/go/proxmoxve/vm/getVirtualMachine.go @@ -78,21 +78,11 @@ type LookupVirtualMachineResult struct { } func LookupVirtualMachineOutput(ctx *pulumi.Context, args LookupVirtualMachineOutputArgs, opts ...pulumi.InvokeOption) LookupVirtualMachineResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (LookupVirtualMachineResultOutput, error) { args := v.(LookupVirtualMachineArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupVirtualMachineResult - secret, err := ctx.InvokePackageRaw("proxmoxve:VM/getVirtualMachine:getVirtualMachine", args, &rv, "", opts...) - if err != nil { - return LookupVirtualMachineResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(LookupVirtualMachineResultOutput) - if secret { - return pulumi.ToSecret(output).(LookupVirtualMachineResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:VM/getVirtualMachine:getVirtualMachine", args, LookupVirtualMachineResultOutput{}, options).(LookupVirtualMachineResultOutput), nil }).(LookupVirtualMachineResultOutput) } diff --git a/sdk/go/proxmoxve/vm/getVirtualMachines.go b/sdk/go/proxmoxve/vm/getVirtualMachines.go index 01751115..24129860 100644 --- a/sdk/go/proxmoxve/vm/getVirtualMachines.go +++ b/sdk/go/proxmoxve/vm/getVirtualMachines.go @@ -113,21 +113,11 @@ type GetVirtualMachinesResult struct { } func GetVirtualMachinesOutput(ctx *pulumi.Context, args GetVirtualMachinesOutputArgs, opts ...pulumi.InvokeOption) GetVirtualMachinesResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). + return pulumi.ToOutputWithContext(ctx.Context(), args). ApplyT(func(v interface{}) (GetVirtualMachinesResultOutput, error) { args := v.(GetVirtualMachinesArgs) - opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetVirtualMachinesResult - secret, err := ctx.InvokePackageRaw("proxmoxve:VM/getVirtualMachines:getVirtualMachines", args, &rv, "", opts...) - if err != nil { - return GetVirtualMachinesResultOutput{}, err - } - - output := pulumi.ToOutput(rv).(GetVirtualMachinesResultOutput) - if secret { - return pulumi.ToSecret(output).(GetVirtualMachinesResultOutput), nil - } - return output, nil + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("proxmoxve:VM/getVirtualMachines:getVirtualMachines", args, GetVirtualMachinesResultOutput{}, options).(GetVirtualMachinesResultOutput), nil }).(GetVirtualMachinesResultOutput) } diff --git a/sdk/java/build.gradle b/sdk/java/build.gradle index 6c26a330..a92811fe 100644 --- a/sdk/java/build.gradle +++ b/sdk/java/build.gradle @@ -44,7 +44,7 @@ repositories { dependencies { implementation("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.gson:gson:2.8.9") - implementation("com.pulumi:pulumi:0.18.0") + implementation("com.pulumi:pulumi:0.20.0") } task sourcesJar(type: Jar) { diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Acme/AcmeFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Acme/AcmeFunctions.java index 2b8cf4b8..affaee79 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Acme/AcmeFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Acme/AcmeFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import com.pulumi.resources.InvokeArgs; import io.muehlbachler.pulumi.proxmoxve.Acme.inputs.GetAccountArgs; import io.muehlbachler.pulumi.proxmoxve.Acme.inputs.GetAccountPlainArgs; @@ -230,6 +231,48 @@ public static CompletableFuture getAccountPlain(GetAccountPlai public static Output getAccount(GetAccountArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Acme/getAccount:getAccount", TypeShape.of(GetAccountResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about a specific ACME account. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Acme.AcmeFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var all = AcmeFunctions.getAccounts();
+     * 
+     *         final var example = "TODO: ForExpression";
+     * 
+     *         ctx.export("dataProxmoxVirtualEnvironmentAcmeAccount", example);
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getAccount(GetAccountArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Acme/getAccount:getAccount", TypeShape.of(GetAccountResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about a specific ACME account. * @@ -472,6 +515,46 @@ public static CompletableFuture getAccountsPlain(InvokeArgs a public static Output getAccounts(InvokeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Acme/getAccounts:getAccounts", TypeShape.of(GetAccountsResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves the list of ACME accounts. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Acme.AcmeFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = AcmeFunctions.getAccounts();
+     * 
+     *         ctx.export("dataProxmoxVirtualEnvironmentAcmeAccounts", example.applyValue(getAccountsResult -> getAccountsResult.accounts()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getAccounts(InvokeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Acme/getAccounts:getAccounts", TypeShape.of(GetAccountsResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves the list of ACME accounts. * @@ -641,6 +724,49 @@ public static CompletableFuture getPluginPlain(GetPluginPlainAr public static Output getPlugin(GetPluginArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Acme/getPlugin:getPlugin", TypeShape.of(GetPluginResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves a single ACME plugin by plugin ID name. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Acme.AcmeFunctions;
+     * import com.pulumi.proxmoxve.Acme.inputs.GetPluginArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = AcmeFunctions.getPlugin(GetPluginArgs.builder()
+     *             .plugin("standalone")
+     *             .build());
+     * 
+     *         ctx.export("dataProxmoxVirtualEnvironmentAcmePlugin", example.applyValue(getPluginResult -> getPluginResult));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getPlugin(GetPluginArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Acme/getPlugin:getPlugin", TypeShape.of(GetPluginResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves a single ACME plugin by plugin ID name. * @@ -884,6 +1010,46 @@ public static CompletableFuture getPluginsPlain(InvokeArgs arg public static Output getPlugins(InvokeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Acme/getPlugins:getPlugins", TypeShape.of(GetPluginsResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves the list of ACME plugins. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Acme.AcmeFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = AcmeFunctions.getPlugins();
+     * 
+     *         ctx.export("dataProxmoxVirtualEnvironmentAcmePlugins", example.applyValue(getPluginsResult -> getPluginsResult.plugins()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getPlugins(InvokeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Acme/getPlugins:getPlugins", TypeShape.of(GetPluginsResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves the list of ACME plugins. * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Apt/AptFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Apt/AptFunctions.java index ca391217..bf05edf8 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Apt/AptFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Apt/AptFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import io.muehlbachler.pulumi.proxmoxve.Apt.inputs.GetRepositoryArgs; import io.muehlbachler.pulumi.proxmoxve.Apt.inputs.GetRepositoryPlainArgs; import io.muehlbachler.pulumi.proxmoxve.Apt.outputs.GetRepositoryResult; @@ -149,6 +150,51 @@ public static CompletableFuture getRepositoryPlain(GetRepos public static Output getRepository(GetRepositoryArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Apt/getRepository:getRepository", TypeShape.of(GetRepositoryResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves an APT repository from a Proxmox VE cluster. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Apt.AptFunctions;
+     * import com.pulumi.proxmoxve.Apt.inputs.GetRepositoryArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = AptFunctions.getRepository(GetRepositoryArgs.builder()
+     *             .filePath("/etc/apt/sources.list")
+     *             .index(0)
+     *             .node("pve")
+     *             .build());
+     * 
+     *         ctx.export("proxmoxVirtualEnvironmentAptRepository", example.applyValue(getRepositoryResult -> getRepositoryResult));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRepository(GetRepositoryArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Apt/getRepository:getRepository", TypeShape.of(GetRepositoryResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves an APT repository from a Proxmox VE cluster. * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Apt_standard/Apt_standardFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Apt_standard/Apt_standardFunctions.java index 2c28b179..6f01896f 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Apt_standard/Apt_standardFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Apt_standard/Apt_standardFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import io.muehlbachler.pulumi.proxmoxve.Apt_standard.inputs.GetRepositoryArgs; import io.muehlbachler.pulumi.proxmoxve.Apt_standard.inputs.GetRepositoryPlainArgs; import io.muehlbachler.pulumi.proxmoxve.Apt_standard.outputs.GetRepositoryResult; @@ -146,6 +147,50 @@ public static CompletableFuture getRepositoryPlain(GetRepos public static Output getRepository(GetRepositoryArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Apt/standard/getRepository:getRepository", TypeShape.of(GetRepositoryResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves an APT standard repository from a Proxmox VE cluster. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Apt_standard.Apt_standardFunctions;
+     * import com.pulumi.proxmoxve.Apt.inputs.GetRepositoryArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = Apt/standardFunctions.getRepository(GetRepositoryArgs.builder()
+     *             .handle("no-subscription")
+     *             .node("pve")
+     *             .build());
+     * 
+     *         ctx.export("proxmoxVirtualEnvironmentAptStandardRepository", example.applyValue(getRepositoryResult -> getRepositoryResult));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRepository(GetRepositoryArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Apt/standard/getRepository:getRepository", TypeShape.of(GetRepositoryResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves an APT standard repository from a Proxmox VE cluster. * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/HA/HAFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/HA/HAFunctions.java index a33403f6..569e05e6 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/HA/HAFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/HA/HAFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import com.pulumi.resources.InvokeArgs; import io.muehlbachler.pulumi.proxmoxve.HA.inputs.GetHAGroupArgs; import io.muehlbachler.pulumi.proxmoxve.HA.inputs.GetHAGroupPlainArgs; @@ -148,6 +149,48 @@ public static CompletableFuture getHAGroupPlain(GetHAGroupPlai public static Output getHAGroup(GetHAGroupArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:HA/getHAGroup:getHAGroup", TypeShape.of(GetHAGroupResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about a specific High Availability group. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.HA.HAFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var all = HAFunctions.getHAGroups();
+     * 
+     *         final var example = "TODO: ForExpression";
+     * 
+     *         ctx.export("proxmoxVirtualEnvironmentHagroupsFull", example);
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getHAGroup(GetHAGroupArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:HA/getHAGroup:getHAGroup", TypeShape.of(GetHAGroupResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about a specific High Availability group. * @@ -390,6 +433,46 @@ public static CompletableFuture getHAGroupsPlain(InvokeArgs a public static Output getHAGroups(InvokeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:HA/getHAGroups:getHAGroups", TypeShape.of(GetHAGroupsResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves the list of High Availability groups. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.HA.HAFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = HAFunctions.getHAGroups();
+     * 
+     *         ctx.export("dataProxmoxVirtualEnvironmentHagroups", example.applyValue(getHAGroupsResult -> getHAGroupsResult.groupIds()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getHAGroups(InvokeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:HA/getHAGroups:getHAGroups", TypeShape.of(GetHAGroupsResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves the list of High Availability groups. * @@ -559,6 +642,49 @@ public static CompletableFuture getHAResourcePlain(GetHARes public static Output getHAResource(GetHAResourceArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:HA/getHAResource:getHAResource", TypeShape.of(GetHAResourceResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves the list of High Availability resources. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.HA.HAFunctions;
+     * import com.pulumi.proxmoxve.HA.inputs.GetHAResourcesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var all = HAFunctions.getHAResources();
+     * 
+     *         final var example = "TODO: ForExpression";
+     * 
+     *         ctx.export("proxmoxVirtualEnvironmentHaresourcesFull", example);
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getHAResource(GetHAResourceArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:HA/getHAResource:getHAResource", TypeShape.of(GetHAResourceResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves the list of High Availability resources. * @@ -827,6 +953,51 @@ public static CompletableFuture getHAResourcesPlain(GetHAR public static Output getHAResources(GetHAResourcesArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:HA/getHAResources:getHAResources", TypeShape.of(GetHAResourcesResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves the list of High Availability resources. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.HA.HAFunctions;
+     * import com.pulumi.proxmoxve.HA.inputs.GetHAResourcesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var exampleAll = HAFunctions.getHAResources();
+     * 
+     *         final var exampleVm = HAFunctions.getHAResources(GetHAResourcesArgs.builder()
+     *             .type("vm")
+     *             .build());
+     * 
+     *         ctx.export("dataProxmoxVirtualEnvironmentHaresources", %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getHAResources(GetHAResourcesArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:HA/getHAResources:getHAResources", TypeShape.of(GetHAResourcesResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves the list of High Availability resources. * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Hardware/HardwareFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Hardware/HardwareFunctions.java index 71bbd2e8..b2d13d1f 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Hardware/HardwareFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Hardware/HardwareFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import io.muehlbachler.pulumi.proxmoxve.Hardware.inputs.GetMappingsArgs; import io.muehlbachler.pulumi.proxmoxve.Hardware.inputs.GetMappingsPlainArgs; import io.muehlbachler.pulumi.proxmoxve.Hardware.outputs.GetMappingsResult; @@ -164,6 +165,56 @@ public static CompletableFuture getMappingsPlain(GetMappingsP public static Output getMappings(GetMappingsArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Hardware/getMappings:getMappings", TypeShape.of(GetMappingsResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves a list of hardware mapping resources. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Hardware.HardwareFunctions;
+     * import com.pulumi.proxmoxve.Hardware.inputs.GetMappingsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example-pci = HardwareFunctions.getMappings(GetMappingsArgs.builder()
+     *             .checkNode("pve")
+     *             .type("pci")
+     *             .build());
+     * 
+     *         final var example-usb = HardwareFunctions.getMappings(GetMappingsArgs.builder()
+     *             .checkNode("pve")
+     *             .type("usb")
+     *             .build());
+     * 
+     *         ctx.export("dataProxmoxVirtualEnvironmentHardwareMappingsPci", example_pci);
+     *         ctx.export("dataProxmoxVirtualEnvironmentHardwareMappingsUsb", example_usb);
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getMappings(GetMappingsArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Hardware/getMappings:getMappings", TypeShape.of(GetMappingsResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves a list of hardware mapping resources. * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Hardware_mapping/Hardware_mappingFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Hardware_mapping/Hardware_mappingFunctions.java index 8f18d285..679b246f 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Hardware_mapping/Hardware_mappingFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Hardware_mapping/Hardware_mappingFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import io.muehlbachler.pulumi.proxmoxve.Hardware_mapping.inputs.GetPciArgs; import io.muehlbachler.pulumi.proxmoxve.Hardware_mapping.inputs.GetPciPlainArgs; import io.muehlbachler.pulumi.proxmoxve.Hardware_mapping.inputs.GetUsbArgs; @@ -146,6 +147,49 @@ public static CompletableFuture getPciPlain(GetPciPlainArgs args) public static Output getPci(GetPciArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Hardware/mapping/getPci:getPci", TypeShape.of(GetPciResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves a PCI hardware mapping from a Proxmox VE cluster. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Hardware_mapping.Hardware_mappingFunctions;
+     * import com.pulumi.proxmoxve.Hardware.inputs.GetPciArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = Hardware/mappingFunctions.getPci(GetPciArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         ctx.export("dataProxmoxVirtualEnvironmentHardwareMappingPci", example.applyValue(getPciResult -> getPciResult));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getPci(GetPciArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Hardware/mapping/getPci:getPci", TypeShape.of(GetPciResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves a PCI hardware mapping from a Proxmox VE cluster. * @@ -318,6 +362,49 @@ public static CompletableFuture getUsbPlain(GetUsbPlainArgs args) public static Output getUsb(GetUsbArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Hardware/mapping/getUsb:getUsb", TypeShape.of(GetUsbResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves a USB hardware mapping from a Proxmox VE cluster. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Hardware_mapping.Hardware_mappingFunctions;
+     * import com.pulumi.proxmoxve.Hardware.inputs.GetUsbArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = Hardware/mappingFunctions.getUsb(GetUsbArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         ctx.export("dataProxmoxVirtualEnvironmentHardwareMappingUsb", example.applyValue(getUsbResult -> getUsbResult));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getUsb(GetUsbArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Hardware/mapping/getUsb:getUsb", TypeShape.of(GetUsbResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves a USB hardware mapping from a Proxmox VE cluster. * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/ProxmoxveFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/ProxmoxveFunctions.java index 83af1135..267363fd 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/ProxmoxveFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/ProxmoxveFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import io.muehlbachler.pulumi.proxmoxve.Utilities; import io.muehlbachler.pulumi.proxmoxve.inputs.GetNodeArgs; import io.muehlbachler.pulumi.proxmoxve.inputs.GetNodePlainArgs; @@ -137,6 +138,46 @@ public static CompletableFuture getNodePlain(GetNodePlainArgs arg public static Output getNode(GetNodeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:index/getNode:getNode", TypeShape.of(GetNodeResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about node. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.ProxmoxveFunctions;
+     * import com.pulumi.proxmoxve.inputs.GetNodeArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var node = ProxmoxveFunctions.getNode();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getNode(GetNodeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:index/getNode:getNode", TypeShape.of(GetNodeResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about node. * @@ -201,6 +242,14 @@ public static CompletableFuture getVm2Plain(GetVm2PlainArgs args) public static Output getVm2(GetVm2Args args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:index/getVm2:getVm2", TypeShape.of(GetVm2Result.class), args, Utilities.withVersion(options)); } + /** + * !> **DO NOT USE** + * This is an experimental implementation of a Proxmox VM datasource using Plugin Framework. + * + */ + public static Output getVm2(GetVm2Args args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:index/getVm2:getVm2", TypeShape.of(GetVm2Result.class), args, Utilities.withVersion(options)); + } /** * !> **DO NOT USE** * This is an experimental implementation of a Proxmox VM datasource using Plugin Framework. diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Utilities.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Utilities.java index b0afe6a3..886b29a8 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Utilities.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Utilities.java @@ -14,6 +14,7 @@ import javax.annotation.Nullable; import com.pulumi.core.internal.Environment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; public class Utilities { @@ -57,16 +58,28 @@ public static Optional getEnvDouble(java.lang.String... names) return Optional.empty(); } - public static InvokeOptions withVersion(@Nullable InvokeOptions options) { - if (options != null && options.getVersion().isPresent()) { - return options; - } - return new InvokeOptions( - options == null ? null : options.getParent().orElse(null), - options == null ? null : options.getProvider().orElse(null), - getVersion() - ); + public static InvokeOptions withVersion(@Nullable InvokeOptions options) { + if (options != null && options.getVersion().isPresent()) { + return options; + } + return new InvokeOptions( + options == null ? null : options.getParent().orElse(null), + options == null ? null : options.getProvider().orElse(null), + getVersion() + ); + } + + public static InvokeOutputOptions withVersion(@Nullable InvokeOutputOptions options) { + if (options != null && options.getVersion().isPresent()) { + return options; } + return new InvokeOutputOptions( + options == null ? null : options.getParent().orElse(null), + options == null ? null : options.getProvider().orElse(null), + getVersion(), + options == null ? null : options.getDependsOn() + ); + } private static final java.lang.String version; public static java.lang.String getVersion() { diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/cluster/ClusterFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/cluster/ClusterFunctions.java index 7d68596d..1773a8aa 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/cluster/ClusterFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/cluster/ClusterFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import com.pulumi.resources.InvokeArgs; import io.muehlbachler.pulumi.proxmoxve.Cluster.outputs.GetNodesResult; import io.muehlbachler.pulumi.proxmoxve.Utilities; @@ -208,6 +209,45 @@ public static CompletableFuture getNodesPlain(InvokeArgs args) { public static Output getNodes(InvokeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Cluster/getNodes:getNodes", TypeShape.of(GetNodesResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about all available nodes. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Cluster.ClusterFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var availableNodes = ClusterFunctions.getNodes();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getNodes(InvokeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Cluster/getNodes:getNodes", TypeShape.of(GetNodesResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about all available nodes. * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/network/NetworkFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/network/NetworkFunctions.java index 52dd3a0e..79499fa0 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/network/NetworkFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/network/NetworkFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import com.pulumi.resources.InvokeArgs; import io.muehlbachler.pulumi.proxmoxve.Network.inputs.GetDNSArgs; import io.muehlbachler.pulumi.proxmoxve.Network.inputs.GetDNSPlainArgs; @@ -148,6 +149,48 @@ public static CompletableFuture getDNSPlain(GetDNSPlainArgs args) public static Output getDNS(GetDNSArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Network/getDNS:getDNS", TypeShape.of(GetDNSResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves the DNS configuration for a specific node. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Network.NetworkFunctions;
+     * import com.pulumi.proxmoxve.Network.inputs.GetDNSArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var firstNode = NetworkFunctions.getDNS(GetDNSArgs.builder()
+     *             .nodeName("first-node")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getDNS(GetDNSArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Network/getDNS:getDNS", TypeShape.of(GetDNSResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves the DNS configuration for a specific node. * @@ -316,6 +359,48 @@ public static CompletableFuture getHostsPlain(GetHostsPlainArgs public static Output getHosts(GetHostsArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Network/getHosts:getHosts", TypeShape.of(GetHostsResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves all the host entries from a specific node. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Network.NetworkFunctions;
+     * import com.pulumi.proxmoxve.Network.inputs.GetHostsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var firstNodeHostEntries = NetworkFunctions.getHosts(GetHostsArgs.builder()
+     *             .nodeName("first-node")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getHosts(GetHostsArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Network/getHosts:getHosts", TypeShape.of(GetHostsResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves all the host entries from a specific node. * @@ -484,6 +569,48 @@ public static CompletableFuture getTimePlain(GetTimePlainArgs arg public static Output getTime(GetTimeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Network/getTime:getTime", TypeShape.of(GetTimeResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves the current time for a specific node. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Network.NetworkFunctions;
+     * import com.pulumi.proxmoxve.Network.inputs.GetTimeArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var firstNodeTime = NetworkFunctions.getTime(GetTimeArgs.builder()
+     *             .nodeName("first-node")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getTime(GetTimeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Network/getTime:getTime", TypeShape.of(GetTimeResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves the current time for a specific node. * @@ -726,6 +853,46 @@ public static CompletableFuture getVersionPlain(InvokeArgs arg public static Output getVersion(InvokeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Network/getVersion:getVersion", TypeShape.of(GetVersionResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves API version details. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Network.NetworkFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = NetworkFunctions.getVersion();
+     * 
+     *         ctx.export("dataProxmoxVirtualEnvironmentVersion", %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getVersion(InvokeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Network/getVersion:getVersion", TypeShape.of(GetVersionResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves API version details. * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/permission/PermissionFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/permission/PermissionFunctions.java index 007864b9..ae64c533 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/permission/PermissionFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/permission/PermissionFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import com.pulumi.resources.InvokeArgs; import io.muehlbachler.pulumi.proxmoxve.Permission.inputs.GetGroupArgs; import io.muehlbachler.pulumi.proxmoxve.Permission.inputs.GetGroupPlainArgs; @@ -154,6 +155,48 @@ public static CompletableFuture getGroupPlain(GetGroupPlainArgs public static Output getGroup(GetGroupArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Permission/getGroup:getGroup", TypeShape.of(GetGroupResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about a specific user group. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Permission.PermissionFunctions;
+     * import com.pulumi.proxmoxve.Permission.inputs.GetGroupArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var operationsTeam = PermissionFunctions.getGroup(GetGroupArgs.builder()
+     *             .groupId("operations-team")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getGroup(GetGroupArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Permission/getGroup:getGroup", TypeShape.of(GetGroupResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about a specific user group. * @@ -391,6 +434,45 @@ public static CompletableFuture getGroupsPlain(InvokeArgs args) public static Output getGroups(InvokeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Permission/getGroups:getGroups", TypeShape.of(GetGroupsResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves basic information about all available user groups. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Permission.PermissionFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var availableGroups = PermissionFunctions.getGroups();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getGroups(InvokeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Permission/getGroups:getGroups", TypeShape.of(GetGroupsResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves basic information about all available user groups. * @@ -556,6 +638,48 @@ public static CompletableFuture getPoolPlain(GetPoolPlainArgs arg public static Output getPool(GetPoolArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Permission/getPool:getPool", TypeShape.of(GetPoolResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about a specific resource pool. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Permission.PermissionFunctions;
+     * import com.pulumi.proxmoxve.Permission.inputs.GetPoolArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var operationsPool = PermissionFunctions.getPool(GetPoolArgs.builder()
+     *             .poolId("operations")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getPool(GetPoolArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Permission/getPool:getPool", TypeShape.of(GetPoolResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about a specific resource pool. * @@ -793,6 +917,45 @@ public static CompletableFuture getPoolsPlain(InvokeArgs args) { public static Output getPools(InvokeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Permission/getPools:getPools", TypeShape.of(GetPoolsResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves the identifiers for all the available resource pools. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Permission.PermissionFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var availablePools = PermissionFunctions.getPools();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getPools(InvokeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Permission/getPools:getPools", TypeShape.of(GetPoolsResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves the identifiers for all the available resource pools. * @@ -958,6 +1121,48 @@ public static CompletableFuture getRolePlain(GetRolePlainArgs arg public static Output getRole(GetRoleArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Permission/getRole:getRole", TypeShape.of(GetRoleResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about a specific role. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Permission.PermissionFunctions;
+     * import com.pulumi.proxmoxve.Permission.inputs.GetRoleArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var operationsRole = PermissionFunctions.getRole(GetRoleArgs.builder()
+     *             .roleId("operations")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRole(GetRoleArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Permission/getRole:getRole", TypeShape.of(GetRoleResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about a specific role. * @@ -1195,6 +1400,45 @@ public static CompletableFuture getRolesPlain(InvokeArgs args) { public static Output getRoles(InvokeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Permission/getRoles:getRoles", TypeShape.of(GetRolesResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about all the available roles. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Permission.PermissionFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var availableRoles = PermissionFunctions.getRoles();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRoles(InvokeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Permission/getRoles:getRoles", TypeShape.of(GetRolesResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about all the available roles. * @@ -1360,6 +1604,48 @@ public static CompletableFuture getUserPlain(GetUserPlainArgs arg public static Output getUser(GetUserArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Permission/getUser:getUser", TypeShape.of(GetUserResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about a specific user. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Permission.PermissionFunctions;
+     * import com.pulumi.proxmoxve.Permission.inputs.GetUserArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App }{{@code
+     *     public static void main(String[] args) }{{@code
+     *         Pulumi.run(App::stack);
+     *     }}{@code
+     * 
+     *     public static void stack(Context ctx) }{{@code
+     *         final var operationsUser = PermissionFunctions.getUser(GetUserArgs.builder()
+     *             .userId("operation}{@literal @}{@code pam")
+     *             .build());
+     * 
+     *     }}{@code
+     * }}{@code
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getUser(GetUserArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Permission/getUser:getUser", TypeShape.of(GetUserResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about a specific user. * @@ -1597,6 +1883,45 @@ public static CompletableFuture getUsersPlain(InvokeArgs args) { public static Output getUsers(InvokeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Permission/getUsers:getUsers", TypeShape.of(GetUsersResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about all the available users. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Permission.PermissionFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var availableUsers = PermissionFunctions.getUsers();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getUsers(InvokeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Permission/getUsers:getUsers", TypeShape.of(GetUsersResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about all the available users. * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/storage/StorageFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/storage/StorageFunctions.java index 3993abae..cdbe61b9 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/storage/StorageFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/storage/StorageFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import io.muehlbachler.pulumi.proxmoxve.Storage.inputs.GetDatastoresArgs; import io.muehlbachler.pulumi.proxmoxve.Storage.inputs.GetDatastoresPlainArgs; import io.muehlbachler.pulumi.proxmoxve.Storage.outputs.GetDatastoresResult; @@ -140,6 +141,48 @@ public static CompletableFuture getDatastoresPlain(GetDatas public static Output getDatastores(GetDatastoresArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:Storage/getDatastores:getDatastores", TypeShape.of(GetDatastoresResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about all the datastores available to a specific node. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.Storage.StorageFunctions;
+     * import com.pulumi.proxmoxve.Storage.inputs.GetDatastoresArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var firstNode = StorageFunctions.getDatastores(GetDatastoresArgs.builder()
+     *             .nodeName("first-node")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getDatastores(GetDatastoresArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:Storage/getDatastores:getDatastores", TypeShape.of(GetDatastoresResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about all the datastores available to a specific node. * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/vm/VmFunctions.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/vm/VmFunctions.java index 15beaa43..858ea79c 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/vm/VmFunctions.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/vm/VmFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import io.muehlbachler.pulumi.proxmoxve.Utilities; import io.muehlbachler.pulumi.proxmoxve.VM.inputs.GetVirtualMachineArgs; import io.muehlbachler.pulumi.proxmoxve.VM.inputs.GetVirtualMachinePlainArgs; @@ -146,6 +147,49 @@ public static CompletableFuture getVirtualMachinePlain( public static Output getVirtualMachine(GetVirtualMachineArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:VM/getVirtualMachine:getVirtualMachine", TypeShape.of(GetVirtualMachineResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about a specific VM. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.VM.VMFunctions;
+     * import com.pulumi.proxmoxve.VM.inputs.GetVirtualMachineArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var testVm = VMFunctions.getVirtualMachine(GetVirtualMachineArgs.builder()
+     *             .nodeName("test")
+     *             .vmId(100)
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getVirtualMachine(GetVirtualMachineArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:VM/getVirtualMachine:getVirtualMachine", TypeShape.of(GetVirtualMachineResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about a specific VM. * @@ -534,6 +578,75 @@ public static CompletableFuture getVirtualMachinesPlai public static Output getVirtualMachines(GetVirtualMachinesArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("proxmoxve:VM/getVirtualMachines:getVirtualMachines", TypeShape.of(GetVirtualMachinesResult.class), args, Utilities.withVersion(options)); } + /** + * Retrieves information about all VMs in the Proxmox cluster. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.proxmoxve.VM.VMFunctions;
+     * import com.pulumi.proxmoxve.VM.inputs.GetVirtualMachinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var ubuntuVms = VMFunctions.getVirtualMachines(GetVirtualMachinesArgs.builder()
+     *             .tags("ubuntu")
+     *             .build());
+     * 
+     *         final var ubuntuTemplates = VMFunctions.getVirtualMachines(GetVirtualMachinesArgs.builder()
+     *             .filters(            
+     *                 GetVirtualMachinesFilterArgs.builder()
+     *                     .name("template")
+     *                     .values(true)
+     *                     .build(),
+     *                 GetVirtualMachinesFilterArgs.builder()
+     *                     .name("status")
+     *                     .values("stopped")
+     *                     .build(),
+     *                 GetVirtualMachinesFilterArgs.builder()
+     *                     .name("name")
+     *                     .regex(true)
+     *                     .values("^ubuntu-20.*$")
+     *                     .build(),
+     *                 GetVirtualMachinesFilterArgs.builder()
+     *                     .name("node_name")
+     *                     .regex(true)
+     *                     .values(                    
+     *                         "node_us_[1-3]",
+     *                         "node_eu_[1-3]")
+     *                     .build())
+     *             .tags(            
+     *                 "template",
+     *                 "latest")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getVirtualMachines(GetVirtualMachinesArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("proxmoxve:VM/getVirtualMachines:getVirtualMachines", TypeShape.of(GetVirtualMachinesResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves information about all VMs in the Proxmox cluster. * diff --git a/sdk/nodejs/.pnp.cjs b/sdk/nodejs/.pnp.cjs index 9f93590a..fe58e975 100755 --- a/sdk/nodejs/.pnp.cjs +++ b/sdk/nodejs/.pnp.cjs @@ -27,7 +27,7 @@ const RAW_RUNTIME_STATE = [null, {\ "packageLocation": "./",\ "packageDependencies": [\ - ["@pulumi/pulumi", "virtual:e3ea5596057613f291e16aefd182df0dffbcd648afc59958478e10ea0ea51a3f83e06f13f67e87917b0e48034bc768eb4bbff7fe0fb77981a25950767a2254e6#npm:3.142.0"],\ + ["@pulumi/pulumi", "virtual:e3ea5596057613f291e16aefd182df0dffbcd648afc59958478e10ea0ea51a3f83e06f13f67e87917b0e48034bc768eb4bbff7fe0fb77981a25950767a2254e6#npm:3.143.0"],\ ["@types/mime", "npm:2.0.3"],\ ["@types/node", "npm:10.17.60"],\ ["typescript", "patch:typescript@npm%3A4.9.5#optional!builtin::version=4.9.5&hash=289587"]\ @@ -115,7 +115,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./",\ "packageDependencies": [\ ["@muhlba91/pulumi-proxmoxve", "workspace:."],\ - ["@pulumi/pulumi", "virtual:e3ea5596057613f291e16aefd182df0dffbcd648afc59958478e10ea0ea51a3f83e06f13f67e87917b0e48034bc768eb4bbff7fe0fb77981a25950767a2254e6#npm:3.142.0"],\ + ["@pulumi/pulumi", "virtual:e3ea5596057613f291e16aefd182df0dffbcd648afc59958478e10ea0ea51a3f83e06f13f67e87917b0e48034bc768eb4bbff7fe0fb77981a25950767a2254e6#npm:3.143.0"],\ ["@types/mime", "npm:2.0.3"],\ ["@types/node", "npm:10.17.60"],\ ["typescript", "patch:typescript@npm%3A4.9.5#optional!builtin::version=4.9.5&hash=289587"]\ @@ -128,7 +128,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "../../../../.yarn/berry/cache/@npmcli-agent-npm-2.2.2-e2f559d6c0-10c0.zip/node_modules/@npmcli/agent/",\ "packageDependencies": [\ ["@npmcli/agent", "npm:2.2.2"],\ - ["agent-base", "npm:7.1.2"],\ + ["agent-base", "npm:7.1.3"],\ ["http-proxy-agent", "npm:7.0.2"],\ ["https-proxy-agent", "npm:7.0.6"],\ ["lru-cache", "npm:10.4.3"],\ @@ -335,10 +335,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@opentelemetry/api-logs", [\ - ["npm:0.52.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-api-logs-npm-0.52.1-2fac882800-10c0.zip/node_modules/@opentelemetry/api-logs/",\ + ["npm:0.55.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-api-logs-npm-0.55.0-3b1c266c8a-10c0.zip/node_modules/@opentelemetry/api-logs/",\ "packageDependencies": [\ - ["@opentelemetry/api-logs", "npm:0.52.1"],\ + ["@opentelemetry/api-logs", "npm:0.55.0"],\ ["@opentelemetry/api", "npm:1.9.0"]\ ],\ "linkType": "HARD"\ @@ -352,10 +352,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:6e20a51cbc65313d0b5935f60b61da893433c9bc5d2b38a55d89e2efabe85d2ed2bca1be5fc36013bd858e7e05947e18e16f54cc90771cfa3d612d50b68da873#npm:1.29.0", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-context-async-hooks-virtual-2e7d584286/5/.yarn/berry/cache/@opentelemetry-context-async-hooks-npm-1.29.0-0dc434da2d-10c0.zip/node_modules/@opentelemetry/context-async-hooks/",\ + ["virtual:5f296d1991f6973f5ec442e26aac7a3a89d9e944c1753e991988c423edfab5e3f824caa9cc5066df93e540aeb6e161f13dd9ee4315741cc180df517de9a35e51#npm:1.29.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-context-async-hooks-virtual-1cc886f33a/5/.yarn/berry/cache/@opentelemetry-context-async-hooks-npm-1.29.0-0dc434da2d-10c0.zip/node_modules/@opentelemetry/context-async-hooks/",\ "packageDependencies": [\ - ["@opentelemetry/context-async-hooks", "virtual:6e20a51cbc65313d0b5935f60b61da893433c9bc5d2b38a55d89e2efabe85d2ed2bca1be5fc36013bd858e7e05947e18e16f54cc90771cfa3d612d50b68da873#npm:1.29.0"],\ + ["@opentelemetry/context-async-hooks", "virtual:5f296d1991f6973f5ec442e26aac7a3a89d9e944c1753e991988c423edfab5e3f824caa9cc5066df93e540aeb6e161f13dd9ee4315741cc180df517de9a35e51#npm:1.29.0"],\ ["@opentelemetry/api", "npm:1.9.0"],\ ["@types/opentelemetry__api", null]\ ],\ @@ -374,10 +374,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:366efdfd2522735abe2c398dfa627dbe5e99d190736b68fd1dfedfb18a99a981c5063d84520a16ade651d448ad724ccf74f87c01f4b12bb1a78631cf6c8058b4#npm:1.29.0", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-core-virtual-e73c0cb437/5/.yarn/berry/cache/@opentelemetry-core-npm-1.29.0-465f26cf69-10c0.zip/node_modules/@opentelemetry/core/",\ + ["virtual:1741a75ae61f923664a4cec7986f876ee6260340a934cc887fd8de372be074710ca64c566692e848343dd64ae3de42af6c0c3fcb578a1e7bc17ba05ab8acf1b5#npm:1.29.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-core-virtual-8d66c7fbc2/5/.yarn/berry/cache/@opentelemetry-core-npm-1.29.0-465f26cf69-10c0.zip/node_modules/@opentelemetry/core/",\ "packageDependencies": [\ - ["@opentelemetry/core", "virtual:366efdfd2522735abe2c398dfa627dbe5e99d190736b68fd1dfedfb18a99a981c5063d84520a16ade651d448ad724ccf74f87c01f4b12bb1a78631cf6c8058b4#npm:1.29.0"],\ + ["@opentelemetry/core", "virtual:1741a75ae61f923664a4cec7986f876ee6260340a934cc887fd8de372be074710ca64c566692e848343dd64ae3de42af6c0c3fcb578a1e7bc17ba05ab8acf1b5#npm:1.29.0"],\ ["@opentelemetry/api", "npm:1.9.0"],\ ["@opentelemetry/semantic-conventions", "npm:1.28.0"],\ ["@types/opentelemetry__api", null]\ @@ -397,14 +397,14 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-exporter-zipkin-virtual-366efdfd25/5/.yarn/berry/cache/@opentelemetry-exporter-zipkin-npm-1.29.0-0990bb9e22-10c0.zip/node_modules/@opentelemetry/exporter-zipkin/",\ + ["virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-exporter-zipkin-virtual-1741a75ae6/5/.yarn/berry/cache/@opentelemetry-exporter-zipkin-npm-1.29.0-0990bb9e22-10c0.zip/node_modules/@opentelemetry/exporter-zipkin/",\ "packageDependencies": [\ - ["@opentelemetry/exporter-zipkin", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ + ["@opentelemetry/exporter-zipkin", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ ["@opentelemetry/api", "npm:1.9.0"],\ - ["@opentelemetry/core", "virtual:366efdfd2522735abe2c398dfa627dbe5e99d190736b68fd1dfedfb18a99a981c5063d84520a16ade651d448ad724ccf74f87c01f4b12bb1a78631cf6c8058b4#npm:1.29.0"],\ - ["@opentelemetry/resources", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ - ["@opentelemetry/sdk-trace-base", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ + ["@opentelemetry/core", "virtual:1741a75ae61f923664a4cec7986f876ee6260340a934cc887fd8de372be074710ca64c566692e848343dd64ae3de42af6c0c3fcb578a1e7bc17ba05ab8acf1b5#npm:1.29.0"],\ + ["@opentelemetry/resources", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ + ["@opentelemetry/sdk-trace-base", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ ["@opentelemetry/semantic-conventions", "npm:1.28.0"],\ ["@types/opentelemetry__api", null]\ ],\ @@ -416,22 +416,22 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@opentelemetry/instrumentation", [\ - ["npm:0.52.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-instrumentation-npm-0.52.1-8477b6362c-10c0.zip/node_modules/@opentelemetry/instrumentation/",\ + ["npm:0.55.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-instrumentation-npm-0.55.0-55c76601fc-10c0.zip/node_modules/@opentelemetry/instrumentation/",\ "packageDependencies": [\ - ["@opentelemetry/instrumentation", "npm:0.52.1"]\ + ["@opentelemetry/instrumentation", "npm:0.55.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:0.52.1", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-instrumentation-virtual-a831fac7e6/5/.yarn/berry/cache/@opentelemetry-instrumentation-npm-0.52.1-8477b6362c-10c0.zip/node_modules/@opentelemetry/instrumentation/",\ + ["virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:0.55.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-instrumentation-virtual-7ee8f29057/5/.yarn/berry/cache/@opentelemetry-instrumentation-npm-0.55.0-55c76601fc-10c0.zip/node_modules/@opentelemetry/instrumentation/",\ "packageDependencies": [\ - ["@opentelemetry/instrumentation", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:0.52.1"],\ + ["@opentelemetry/instrumentation", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:0.55.0"],\ ["@opentelemetry/api", "npm:1.9.0"],\ - ["@opentelemetry/api-logs", "npm:0.52.1"],\ + ["@opentelemetry/api-logs", "npm:0.55.0"],\ ["@types/opentelemetry__api", null],\ ["@types/shimmer", "npm:1.2.0"],\ - ["import-in-the-middle", "npm:1.11.3"],\ + ["import-in-the-middle", "npm:1.12.0"],\ ["require-in-the-middle", "npm:7.4.0"],\ ["semver", "npm:7.6.3"],\ ["shimmer", "npm:1.2.1"]\ @@ -444,20 +444,20 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@opentelemetry/instrumentation-grpc", [\ - ["npm:0.52.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-instrumentation-grpc-npm-0.52.1-22a7f03e76-10c0.zip/node_modules/@opentelemetry/instrumentation-grpc/",\ + ["npm:0.55.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-instrumentation-grpc-npm-0.55.0-027ddaac0a-10c0.zip/node_modules/@opentelemetry/instrumentation-grpc/",\ "packageDependencies": [\ - ["@opentelemetry/instrumentation-grpc", "npm:0.52.1"]\ + ["@opentelemetry/instrumentation-grpc", "npm:0.55.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:0.52.1", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-instrumentation-grpc-virtual-b81fc92116/5/.yarn/berry/cache/@opentelemetry-instrumentation-grpc-npm-0.52.1-22a7f03e76-10c0.zip/node_modules/@opentelemetry/instrumentation-grpc/",\ + ["virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:0.55.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-instrumentation-grpc-virtual-9ac02bea3d/5/.yarn/berry/cache/@opentelemetry-instrumentation-grpc-npm-0.55.0-027ddaac0a-10c0.zip/node_modules/@opentelemetry/instrumentation-grpc/",\ "packageDependencies": [\ - ["@opentelemetry/instrumentation-grpc", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:0.52.1"],\ + ["@opentelemetry/instrumentation-grpc", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:0.55.0"],\ ["@opentelemetry/api", "npm:1.9.0"],\ - ["@opentelemetry/instrumentation", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:0.52.1"],\ - ["@opentelemetry/semantic-conventions", "npm:1.25.1"],\ + ["@opentelemetry/instrumentation", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:0.55.0"],\ + ["@opentelemetry/semantic-conventions", "npm:1.27.0"],\ ["@types/opentelemetry__api", null]\ ],\ "packagePeers": [\ @@ -475,12 +475,12 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:6e20a51cbc65313d0b5935f60b61da893433c9bc5d2b38a55d89e2efabe85d2ed2bca1be5fc36013bd858e7e05947e18e16f54cc90771cfa3d612d50b68da873#npm:1.29.0", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-propagator-b3-virtual-3234d5c512/5/.yarn/berry/cache/@opentelemetry-propagator-b3-npm-1.29.0-6ebd020846-10c0.zip/node_modules/@opentelemetry/propagator-b3/",\ + ["virtual:5f296d1991f6973f5ec442e26aac7a3a89d9e944c1753e991988c423edfab5e3f824caa9cc5066df93e540aeb6e161f13dd9ee4315741cc180df517de9a35e51#npm:1.29.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-propagator-b3-virtual-e64305eca9/5/.yarn/berry/cache/@opentelemetry-propagator-b3-npm-1.29.0-6ebd020846-10c0.zip/node_modules/@opentelemetry/propagator-b3/",\ "packageDependencies": [\ - ["@opentelemetry/propagator-b3", "virtual:6e20a51cbc65313d0b5935f60b61da893433c9bc5d2b38a55d89e2efabe85d2ed2bca1be5fc36013bd858e7e05947e18e16f54cc90771cfa3d612d50b68da873#npm:1.29.0"],\ + ["@opentelemetry/propagator-b3", "virtual:5f296d1991f6973f5ec442e26aac7a3a89d9e944c1753e991988c423edfab5e3f824caa9cc5066df93e540aeb6e161f13dd9ee4315741cc180df517de9a35e51#npm:1.29.0"],\ ["@opentelemetry/api", "npm:1.9.0"],\ - ["@opentelemetry/core", "virtual:366efdfd2522735abe2c398dfa627dbe5e99d190736b68fd1dfedfb18a99a981c5063d84520a16ade651d448ad724ccf74f87c01f4b12bb1a78631cf6c8058b4#npm:1.29.0"],\ + ["@opentelemetry/core", "virtual:1741a75ae61f923664a4cec7986f876ee6260340a934cc887fd8de372be074710ca64c566692e848343dd64ae3de42af6c0c3fcb578a1e7bc17ba05ab8acf1b5#npm:1.29.0"],\ ["@types/opentelemetry__api", null]\ ],\ "packagePeers": [\ @@ -498,12 +498,12 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:6e20a51cbc65313d0b5935f60b61da893433c9bc5d2b38a55d89e2efabe85d2ed2bca1be5fc36013bd858e7e05947e18e16f54cc90771cfa3d612d50b68da873#npm:1.29.0", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-propagator-jaeger-virtual-5bf7620e44/5/.yarn/berry/cache/@opentelemetry-propagator-jaeger-npm-1.29.0-bb4527af05-10c0.zip/node_modules/@opentelemetry/propagator-jaeger/",\ + ["virtual:5f296d1991f6973f5ec442e26aac7a3a89d9e944c1753e991988c423edfab5e3f824caa9cc5066df93e540aeb6e161f13dd9ee4315741cc180df517de9a35e51#npm:1.29.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-propagator-jaeger-virtual-9d6d5dcff2/5/.yarn/berry/cache/@opentelemetry-propagator-jaeger-npm-1.29.0-bb4527af05-10c0.zip/node_modules/@opentelemetry/propagator-jaeger/",\ "packageDependencies": [\ - ["@opentelemetry/propagator-jaeger", "virtual:6e20a51cbc65313d0b5935f60b61da893433c9bc5d2b38a55d89e2efabe85d2ed2bca1be5fc36013bd858e7e05947e18e16f54cc90771cfa3d612d50b68da873#npm:1.29.0"],\ + ["@opentelemetry/propagator-jaeger", "virtual:5f296d1991f6973f5ec442e26aac7a3a89d9e944c1753e991988c423edfab5e3f824caa9cc5066df93e540aeb6e161f13dd9ee4315741cc180df517de9a35e51#npm:1.29.0"],\ ["@opentelemetry/api", "npm:1.9.0"],\ - ["@opentelemetry/core", "virtual:366efdfd2522735abe2c398dfa627dbe5e99d190736b68fd1dfedfb18a99a981c5063d84520a16ade651d448ad724ccf74f87c01f4b12bb1a78631cf6c8058b4#npm:1.29.0"],\ + ["@opentelemetry/core", "virtual:1741a75ae61f923664a4cec7986f876ee6260340a934cc887fd8de372be074710ca64c566692e848343dd64ae3de42af6c0c3fcb578a1e7bc17ba05ab8acf1b5#npm:1.29.0"],\ ["@types/opentelemetry__api", null]\ ],\ "packagePeers": [\ @@ -521,12 +521,12 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-resources-virtual-c96d19ae5e/5/.yarn/berry/cache/@opentelemetry-resources-npm-1.29.0-112f89f0c5-10c0.zip/node_modules/@opentelemetry/resources/",\ + ["virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-resources-virtual-160af3c3fb/5/.yarn/berry/cache/@opentelemetry-resources-npm-1.29.0-112f89f0c5-10c0.zip/node_modules/@opentelemetry/resources/",\ "packageDependencies": [\ - ["@opentelemetry/resources", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ + ["@opentelemetry/resources", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ ["@opentelemetry/api", "npm:1.9.0"],\ - ["@opentelemetry/core", "virtual:366efdfd2522735abe2c398dfa627dbe5e99d190736b68fd1dfedfb18a99a981c5063d84520a16ade651d448ad724ccf74f87c01f4b12bb1a78631cf6c8058b4#npm:1.29.0"],\ + ["@opentelemetry/core", "virtual:1741a75ae61f923664a4cec7986f876ee6260340a934cc887fd8de372be074710ca64c566692e848343dd64ae3de42af6c0c3fcb578a1e7bc17ba05ab8acf1b5#npm:1.29.0"],\ ["@opentelemetry/semantic-conventions", "npm:1.28.0"],\ ["@types/opentelemetry__api", null]\ ],\ @@ -545,13 +545,13 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-sdk-trace-base-virtual-58c2824fbd/5/.yarn/berry/cache/@opentelemetry-sdk-trace-base-npm-1.29.0-078d96fa8a-10c0.zip/node_modules/@opentelemetry/sdk-trace-base/",\ + ["virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-sdk-trace-base-virtual-7f327787f3/5/.yarn/berry/cache/@opentelemetry-sdk-trace-base-npm-1.29.0-078d96fa8a-10c0.zip/node_modules/@opentelemetry/sdk-trace-base/",\ "packageDependencies": [\ - ["@opentelemetry/sdk-trace-base", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ + ["@opentelemetry/sdk-trace-base", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ ["@opentelemetry/api", "npm:1.9.0"],\ - ["@opentelemetry/core", "virtual:366efdfd2522735abe2c398dfa627dbe5e99d190736b68fd1dfedfb18a99a981c5063d84520a16ade651d448ad724ccf74f87c01f4b12bb1a78631cf6c8058b4#npm:1.29.0"],\ - ["@opentelemetry/resources", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ + ["@opentelemetry/core", "virtual:1741a75ae61f923664a4cec7986f876ee6260340a934cc887fd8de372be074710ca64c566692e848343dd64ae3de42af6c0c3fcb578a1e7bc17ba05ab8acf1b5#npm:1.29.0"],\ + ["@opentelemetry/resources", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ ["@opentelemetry/semantic-conventions", "npm:1.28.0"],\ ["@types/opentelemetry__api", null]\ ],\ @@ -570,16 +570,16 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-sdk-trace-node-virtual-6e20a51cbc/5/.yarn/berry/cache/@opentelemetry-sdk-trace-node-npm-1.29.0-410d74ee56-10c0.zip/node_modules/@opentelemetry/sdk-trace-node/",\ + ["virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-sdk-trace-node-virtual-5f296d1991/5/.yarn/berry/cache/@opentelemetry-sdk-trace-node-npm-1.29.0-410d74ee56-10c0.zip/node_modules/@opentelemetry/sdk-trace-node/",\ "packageDependencies": [\ - ["@opentelemetry/sdk-trace-node", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ + ["@opentelemetry/sdk-trace-node", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ ["@opentelemetry/api", "npm:1.9.0"],\ - ["@opentelemetry/context-async-hooks", "virtual:6e20a51cbc65313d0b5935f60b61da893433c9bc5d2b38a55d89e2efabe85d2ed2bca1be5fc36013bd858e7e05947e18e16f54cc90771cfa3d612d50b68da873#npm:1.29.0"],\ - ["@opentelemetry/core", "virtual:366efdfd2522735abe2c398dfa627dbe5e99d190736b68fd1dfedfb18a99a981c5063d84520a16ade651d448ad724ccf74f87c01f4b12bb1a78631cf6c8058b4#npm:1.29.0"],\ - ["@opentelemetry/propagator-b3", "virtual:6e20a51cbc65313d0b5935f60b61da893433c9bc5d2b38a55d89e2efabe85d2ed2bca1be5fc36013bd858e7e05947e18e16f54cc90771cfa3d612d50b68da873#npm:1.29.0"],\ - ["@opentelemetry/propagator-jaeger", "virtual:6e20a51cbc65313d0b5935f60b61da893433c9bc5d2b38a55d89e2efabe85d2ed2bca1be5fc36013bd858e7e05947e18e16f54cc90771cfa3d612d50b68da873#npm:1.29.0"],\ - ["@opentelemetry/sdk-trace-base", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ + ["@opentelemetry/context-async-hooks", "virtual:5f296d1991f6973f5ec442e26aac7a3a89d9e944c1753e991988c423edfab5e3f824caa9cc5066df93e540aeb6e161f13dd9ee4315741cc180df517de9a35e51#npm:1.29.0"],\ + ["@opentelemetry/core", "virtual:1741a75ae61f923664a4cec7986f876ee6260340a934cc887fd8de372be074710ca64c566692e848343dd64ae3de42af6c0c3fcb578a1e7bc17ba05ab8acf1b5#npm:1.29.0"],\ + ["@opentelemetry/propagator-b3", "virtual:5f296d1991f6973f5ec442e26aac7a3a89d9e944c1753e991988c423edfab5e3f824caa9cc5066df93e540aeb6e161f13dd9ee4315741cc180df517de9a35e51#npm:1.29.0"],\ + ["@opentelemetry/propagator-jaeger", "virtual:5f296d1991f6973f5ec442e26aac7a3a89d9e944c1753e991988c423edfab5e3f824caa9cc5066df93e540aeb6e161f13dd9ee4315741cc180df517de9a35e51#npm:1.29.0"],\ + ["@opentelemetry/sdk-trace-base", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ ["@types/opentelemetry__api", null],\ ["semver", "npm:7.6.3"]\ ],\ @@ -591,10 +591,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@opentelemetry/semantic-conventions", [\ - ["npm:1.25.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-semantic-conventions-npm-1.25.1-e2e79093b3-10c0.zip/node_modules/@opentelemetry/semantic-conventions/",\ + ["npm:1.27.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-semantic-conventions-npm-1.27.0-392d95c70d-10c0.zip/node_modules/@opentelemetry/semantic-conventions/",\ "packageDependencies": [\ - ["@opentelemetry/semantic-conventions", "npm:1.25.1"]\ + ["@opentelemetry/semantic-conventions", "npm:1.27.0"]\ ],\ "linkType": "HARD"\ }],\ @@ -708,27 +708,27 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@pulumi/pulumi", [\ - ["npm:3.142.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@pulumi-pulumi-npm-3.142.0-d6026df539-10c0.zip/node_modules/@pulumi/pulumi/",\ + ["npm:3.143.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@pulumi-pulumi-npm-3.143.0-c6629ff428-10c0.zip/node_modules/@pulumi/pulumi/",\ "packageDependencies": [\ - ["@pulumi/pulumi", "npm:3.142.0"]\ + ["@pulumi/pulumi", "npm:3.143.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:e3ea5596057613f291e16aefd182df0dffbcd648afc59958478e10ea0ea51a3f83e06f13f67e87917b0e48034bc768eb4bbff7fe0fb77981a25950767a2254e6#npm:3.142.0", {\ - "packageLocation": "./.yarn/__virtual__/@pulumi-pulumi-virtual-14d8e94a0c/5/.yarn/berry/cache/@pulumi-pulumi-npm-3.142.0-d6026df539-10c0.zip/node_modules/@pulumi/pulumi/",\ + ["virtual:e3ea5596057613f291e16aefd182df0dffbcd648afc59958478e10ea0ea51a3f83e06f13f67e87917b0e48034bc768eb4bbff7fe0fb77981a25950767a2254e6#npm:3.143.0", {\ + "packageLocation": "./.yarn/__virtual__/@pulumi-pulumi-virtual-116552f691/5/.yarn/berry/cache/@pulumi-pulumi-npm-3.143.0-c6629ff428-10c0.zip/node_modules/@pulumi/pulumi/",\ "packageDependencies": [\ - ["@pulumi/pulumi", "virtual:e3ea5596057613f291e16aefd182df0dffbcd648afc59958478e10ea0ea51a3f83e06f13f67e87917b0e48034bc768eb4bbff7fe0fb77981a25950767a2254e6#npm:3.142.0"],\ + ["@pulumi/pulumi", "virtual:e3ea5596057613f291e16aefd182df0dffbcd648afc59958478e10ea0ea51a3f83e06f13f67e87917b0e48034bc768eb4bbff7fe0fb77981a25950767a2254e6#npm:3.143.0"],\ ["@grpc/grpc-js", "npm:1.12.4"],\ ["@logdna/tail-file", "npm:2.2.0"],\ ["@npmcli/arborist", "npm:7.5.4"],\ ["@opentelemetry/api", "npm:1.9.0"],\ - ["@opentelemetry/exporter-zipkin", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ - ["@opentelemetry/instrumentation", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:0.52.1"],\ - ["@opentelemetry/instrumentation-grpc", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:0.52.1"],\ - ["@opentelemetry/resources", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ - ["@opentelemetry/sdk-trace-base", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ - ["@opentelemetry/sdk-trace-node", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:1.29.0"],\ + ["@opentelemetry/exporter-zipkin", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ + ["@opentelemetry/instrumentation", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:0.55.0"],\ + ["@opentelemetry/instrumentation-grpc", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:0.55.0"],\ + ["@opentelemetry/resources", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ + ["@opentelemetry/sdk-trace-base", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ + ["@opentelemetry/sdk-trace-node", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:1.29.0"],\ ["@opentelemetry/semantic-conventions", "npm:1.28.0"],\ ["@pulumi/query", "npm:0.3.0"],\ ["@types/google-protobuf", "npm:3.15.12"],\ @@ -737,7 +737,7 @@ const RAW_RUNTIME_STATE = ["@types/ts-node", null],\ ["@types/typescript", null],\ ["execa", "npm:5.1.1"],\ - ["fdir", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:6.4.2"],\ + ["fdir", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:6.4.2"],\ ["google-protobuf", "npm:3.21.4"],\ ["got", "npm:11.8.6"],\ ["ini", "npm:2.0.0"],\ @@ -884,7 +884,7 @@ const RAW_RUNTIME_STATE = ["@types/cacheable-request", "npm:6.0.3"],\ ["@types/http-cache-semantics", "npm:4.0.4"],\ ["@types/keyv", "npm:3.1.4"],\ - ["@types/node", "npm:22.10.1"],\ + ["@types/node", "npm:22.10.2"],\ ["@types/responselike", "npm:1.0.3"]\ ],\ "linkType": "HARD"\ @@ -913,7 +913,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "../../../../.yarn/berry/cache/@types-keyv-npm-3.1.4-a8082ea56b-10c0.zip/node_modules/@types/keyv/",\ "packageDependencies": [\ ["@types/keyv", "npm:3.1.4"],\ - ["@types/node", "npm:22.10.1"]\ + ["@types/node", "npm:22.10.2"]\ ],\ "linkType": "HARD"\ }]\ @@ -935,10 +935,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["npm:22.10.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@types-node-npm-22.10.1-db989fc54b-10c0.zip/node_modules/@types/node/",\ + ["npm:22.10.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@types-node-npm-22.10.2-572466b048-10c0.zip/node_modules/@types/node/",\ "packageDependencies": [\ - ["@types/node", "npm:22.10.1"],\ + ["@types/node", "npm:22.10.2"],\ ["undici-types", "npm:6.20.0"]\ ],\ "linkType": "HARD"\ @@ -949,7 +949,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "../../../../.yarn/berry/cache/@types-responselike-npm-1.0.3-de0150f03d-10c0.zip/node_modules/@types/responselike/",\ "packageDependencies": [\ ["@types/responselike", "npm:1.0.3"],\ - ["@types/node", "npm:22.10.1"]\ + ["@types/node", "npm:22.10.2"]\ ],\ "linkType": "HARD"\ }]\ @@ -1007,10 +1007,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:20d6342361cd370621af3a17a523dd0a0c0cc42935743ba28e2009cdd9c347d88ce9d5a877758c2df029692df3debda93019a38be97f8760355b5715475ad378#npm:1.9.5", {\ - "packageLocation": "./.yarn/__virtual__/acorn-import-attributes-virtual-5d16b6a541/5/.yarn/berry/cache/acorn-import-attributes-npm-1.9.5-d1e666eb35-10c0.zip/node_modules/acorn-import-attributes/",\ + ["virtual:8c467c78c511130e7f449cebaa1a8f557c1d1036fdb7e805ea5bc53117beaf0d1d438a316804d86aafc2c714aea5ec434af68228cff80ace09cf21469d0c7c44#npm:1.9.5", {\ + "packageLocation": "./.yarn/__virtual__/acorn-import-attributes-virtual-f6285c93f7/5/.yarn/berry/cache/acorn-import-attributes-npm-1.9.5-d1e666eb35-10c0.zip/node_modules/acorn-import-attributes/",\ "packageDependencies": [\ - ["acorn-import-attributes", "virtual:20d6342361cd370621af3a17a523dd0a0c0cc42935743ba28e2009cdd9c347d88ce9d5a877758c2df029692df3debda93019a38be97f8760355b5715475ad378#npm:1.9.5"],\ + ["acorn-import-attributes", "virtual:8c467c78c511130e7f449cebaa1a8f557c1d1036fdb7e805ea5bc53117beaf0d1d438a316804d86aafc2c714aea5ec434af68228cff80ace09cf21469d0c7c44#npm:1.9.5"],\ ["@types/acorn", null],\ ["acorn", "npm:8.14.0"]\ ],\ @@ -1022,11 +1022,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["agent-base", [\ - ["npm:7.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/agent-base-npm-7.1.2-232e386c14-10c0.zip/node_modules/agent-base/",\ + ["npm:7.1.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/agent-base-npm-7.1.3-b2c16e72fb-10c0.zip/node_modules/agent-base/",\ "packageDependencies": [\ - ["agent-base", "npm:7.1.2"],\ - ["debug", "virtual:232e386c14d3f30890eb64875cfaaa3c7da74f94c272bfa8be626684dd77edaff29001257955f95f67f2bca1ba08438143adf7749693eba41e21073affc532cc#npm:4.4.0"]\ + ["agent-base", "npm:7.1.3"]\ ],\ "linkType": "HARD"\ }]\ @@ -1287,10 +1286,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:232e386c14d3f30890eb64875cfaaa3c7da74f94c272bfa8be626684dd77edaff29001257955f95f67f2bca1ba08438143adf7749693eba41e21073affc532cc#npm:4.4.0", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-9840eaab5d/5/.yarn/berry/cache/debug-npm-4.4.0-f6efe76023-10c0.zip/node_modules/debug/",\ + ["virtual:643ed7cc338bcf145a82d8b05b3bef6bcf150ca545df386225596f10ce53cc90b88b3ca83e348ade1ccea5f3f8e76c92d2f0e2ba544da60d40aff9921c56872d#npm:4.4.0", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-245766b4e7/5/.yarn/berry/cache/debug-npm-4.4.0-f6efe76023-10c0.zip/node_modules/debug/",\ "packageDependencies": [\ - ["debug", "virtual:232e386c14d3f30890eb64875cfaaa3c7da74f94c272bfa8be626684dd77edaff29001257955f95f67f2bca1ba08438143adf7749693eba41e21073affc532cc#npm:4.4.0"],\ + ["debug", "virtual:643ed7cc338bcf145a82d8b05b3bef6bcf150ca545df386225596f10ce53cc90b88b3ca83e348ade1ccea5f3f8e76c92d2f0e2ba544da60d40aff9921c56872d#npm:4.4.0"],\ ["@types/supports-color", null],\ ["ms", "npm:2.1.3"],\ ["supports-color", null]\ @@ -1437,10 +1436,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:6.4.2", {\ - "packageLocation": "./.yarn/__virtual__/fdir-virtual-2cae9c06cb/5/.yarn/berry/cache/fdir-npm-6.4.2-83cd21b34c-10c0.zip/node_modules/fdir/",\ + ["virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:6.4.2", {\ + "packageLocation": "./.yarn/__virtual__/fdir-virtual-1e52c61fd3/5/.yarn/berry/cache/fdir-npm-6.4.2-83cd21b34c-10c0.zip/node_modules/fdir/",\ "packageDependencies": [\ - ["fdir", "virtual:14d8e94a0c6ad50dbe5a0583f00a22c4f54b4f73766f4d8b04dafe9b420567d622136b36a265f55c9dcaf55fce4d464a2bd2ff11c65e113910c2fa20453f7336#npm:6.4.2"],\ + ["fdir", "virtual:116552f691bb2f0436d9412acdceef25012bb0285f19b479f8c511f2abc6dba4472f7ce9aa5cf3c8d98268068968ebc6a43e3a950bc9230510103e76adb27d67#npm:6.4.2"],\ ["@types/picomatch", null],\ ["picomatch", "npm:3.0.1"]\ ],\ @@ -1613,8 +1612,8 @@ const RAW_RUNTIME_STATE = "packageLocation": "../../../../.yarn/berry/cache/http-proxy-agent-npm-7.0.2-643ed7cc33-10c0.zip/node_modules/http-proxy-agent/",\ "packageDependencies": [\ ["http-proxy-agent", "npm:7.0.2"],\ - ["agent-base", "npm:7.1.2"],\ - ["debug", "virtual:232e386c14d3f30890eb64875cfaaa3c7da74f94c272bfa8be626684dd77edaff29001257955f95f67f2bca1ba08438143adf7749693eba41e21073affc532cc#npm:4.4.0"]\ + ["agent-base", "npm:7.1.3"],\ + ["debug", "virtual:643ed7cc338bcf145a82d8b05b3bef6bcf150ca545df386225596f10ce53cc90b88b3ca83e348ade1ccea5f3f8e76c92d2f0e2ba544da60d40aff9921c56872d#npm:4.4.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -1635,8 +1634,8 @@ const RAW_RUNTIME_STATE = "packageLocation": "../../../../.yarn/berry/cache/https-proxy-agent-npm-7.0.6-27a95c2690-10c0.zip/node_modules/https-proxy-agent/",\ "packageDependencies": [\ ["https-proxy-agent", "npm:7.0.6"],\ - ["agent-base", "npm:7.1.2"],\ - ["debug", "virtual:232e386c14d3f30890eb64875cfaaa3c7da74f94c272bfa8be626684dd77edaff29001257955f95f67f2bca1ba08438143adf7749693eba41e21073affc532cc#npm:4.4.0"]\ + ["agent-base", "npm:7.1.3"],\ + ["debug", "virtual:643ed7cc338bcf145a82d8b05b3bef6bcf150ca545df386225596f10ce53cc90b88b3ca83e348ade1ccea5f3f8e76c92d2f0e2ba544da60d40aff9921c56872d#npm:4.4.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -1671,12 +1670,12 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["import-in-the-middle", [\ - ["npm:1.11.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/import-in-the-middle-npm-1.11.3-20d6342361-10c0.zip/node_modules/import-in-the-middle/",\ + ["npm:1.12.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/import-in-the-middle-npm-1.12.0-8c467c78c5-10c0.zip/node_modules/import-in-the-middle/",\ "packageDependencies": [\ - ["import-in-the-middle", "npm:1.11.3"],\ + ["import-in-the-middle", "npm:1.12.0"],\ ["acorn", "npm:8.14.0"],\ - ["acorn-import-attributes", "virtual:20d6342361cd370621af3a17a523dd0a0c0cc42935743ba28e2009cdd9c347d88ce9d5a877758c2df029692df3debda93019a38be97f8760355b5715475ad378#npm:1.9.5"],\ + ["acorn-import-attributes", "virtual:8c467c78c511130e7f449cebaa1a8f557c1d1036fdb7e805ea5bc53117beaf0d1d438a316804d86aafc2c714aea5ec434af68228cff80ace09cf21469d0c7c44#npm:1.9.5"],\ ["cjs-module-lexer", "npm:1.4.1"],\ ["module-details-from-path", "npm:1.0.3"]\ ],\ @@ -1729,10 +1728,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["is-core-module", [\ - ["npm:2.15.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/is-core-module-npm-2.15.1-34c73a6cbd-10c0.zip/node_modules/is-core-module/",\ + ["npm:2.16.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/is-core-module-npm-2.16.0-01e0df3b41-10c0.zip/node_modules/is-core-module/",\ "packageDependencies": [\ - ["is-core-module", "npm:2.15.1"],\ + ["is-core-module", "npm:2.16.0"],\ ["hasown", "npm:2.0.2"]\ ],\ "linkType": "HARD"\ @@ -2520,7 +2519,7 @@ const RAW_RUNTIME_STATE = ["@protobufjs/path", "npm:1.1.2"],\ ["@protobufjs/pool", "npm:1.1.0"],\ ["@protobufjs/utf8", "npm:1.1.0"],\ - ["@types/node", "npm:22.10.1"],\ + ["@types/node", "npm:22.10.2"],\ ["long", "npm:5.2.3"]\ ],\ "linkType": "HARD"\ @@ -2589,19 +2588,19 @@ const RAW_RUNTIME_STATE = "packageLocation": "../../../../.yarn/berry/cache/require-in-the-middle-npm-7.4.0-e794539e61-10c0.zip/node_modules/require-in-the-middle/",\ "packageDependencies": [\ ["require-in-the-middle", "npm:7.4.0"],\ - ["debug", "virtual:232e386c14d3f30890eb64875cfaaa3c7da74f94c272bfa8be626684dd77edaff29001257955f95f67f2bca1ba08438143adf7749693eba41e21073affc532cc#npm:4.4.0"],\ + ["debug", "virtual:643ed7cc338bcf145a82d8b05b3bef6bcf150ca545df386225596f10ce53cc90b88b3ca83e348ade1ccea5f3f8e76c92d2f0e2ba544da60d40aff9921c56872d#npm:4.4.0"],\ ["module-details-from-path", "npm:1.0.3"],\ - ["resolve", "patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"]\ + ["resolve", "patch:resolve@npm%3A1.22.9#optional!builtin::version=1.22.9&hash=c3c19d"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["resolve", [\ - ["patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d", {\ - "packageLocation": "../../../../.yarn/berry/cache/resolve-patch-4254c24959-10c0.zip/node_modules/resolve/",\ + ["patch:resolve@npm%3A1.22.9#optional!builtin::version=1.22.9&hash=c3c19d", {\ + "packageLocation": "../../../../.yarn/berry/cache/resolve-patch-3a52911b36-10c0.zip/node_modules/resolve/",\ "packageDependencies": [\ - ["resolve", "patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"],\ - ["is-core-module", "npm:2.15.1"],\ + ["resolve", "patch:resolve@npm%3A1.22.9#optional!builtin::version=1.22.9&hash=c3c19d"],\ + ["is-core-module", "npm:2.16.0"],\ ["path-parse", "npm:1.0.7"],\ ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ ],\ @@ -2738,8 +2737,8 @@ const RAW_RUNTIME_STATE = "packageLocation": "../../../../.yarn/berry/cache/socks-proxy-agent-npm-8.0.5-24d77a90dc-10c0.zip/node_modules/socks-proxy-agent/",\ "packageDependencies": [\ ["socks-proxy-agent", "npm:8.0.5"],\ - ["agent-base", "npm:7.1.2"],\ - ["debug", "virtual:232e386c14d3f30890eb64875cfaaa3c7da74f94c272bfa8be626684dd77edaff29001257955f95f67f2bca1ba08438143adf7749693eba41e21073affc532cc#npm:4.4.0"],\ + ["agent-base", "npm:7.1.3"],\ + ["debug", "virtual:643ed7cc338bcf145a82d8b05b3bef6bcf150ca545df386225596f10ce53cc90b88b3ca83e348ade1ccea5f3f8e76c92d2f0e2ba544da60d40aff9921c56872d#npm:4.4.0"],\ ["socks", "npm:2.8.3"]\ ],\ "linkType": "HARD"\ @@ -2928,7 +2927,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["tuf-js", "npm:2.2.1"],\ ["@tufjs/models", "npm:2.0.1"],\ - ["debug", "virtual:232e386c14d3f30890eb64875cfaaa3c7da74f94c272bfa8be626684dd77edaff29001257955f95f67f2bca1ba08438143adf7749693eba41e21073affc532cc#npm:4.4.0"],\ + ["debug", "virtual:643ed7cc338bcf145a82d8b05b3bef6bcf150ca545df386225596f10ce53cc90b88b3ca83e348ade1ccea5f3f8e76c92d2f0e2ba544da60d40aff9921c56872d#npm:4.4.0"],\ ["make-fetch-happen", "npm:13.0.1"]\ ],\ "linkType": "HARD"\ diff --git a/sdk/nodejs/.yarn/install-state.gz b/sdk/nodejs/.yarn/install-state.gz index 8be8881837ce37011eb99b5f9978c5dd5d4838e5..9930a9be268c7d2a9f9610dd1b16e4884c940dd7 100644 GIT binary patch literal 214606 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�B3XNZt;HJ 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 Z7F2n6Tstm7#n=0vhhNOAcN#)I3IM&p(P97q literal 223463 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
    Ei>7Ey}m!#i0 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

    pDwnQG$FHB(M)-8TJZ*5=CcOAW$6Bi@ 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

    9gWIZ(PYdT*xD_My}X8v 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 diff --git a/sdk/nodejs/acme/getAccount.ts b/sdk/nodejs/acme/getAccount.ts index 6bd1c995..ae61cf5a 100644 --- a/sdk/nodejs/acme/getAccount.ts +++ b/sdk/nodejs/acme/getAccount.ts @@ -16,7 +16,7 @@ import * as utilities from "../utilities"; * import * as proxmoxve from "@pulumi/proxmoxve"; * * const all = proxmoxve.Acme.getAccounts({}); - * const example = all.then(all => .map(([, ]) => (proxmoxve.Acme.getAccount({ + * const example = all.then(all => .map(([__key, __value]) => (proxmoxve.Acme.getAccount({ * name: __value, * })))); * export const dataProxmoxVirtualEnvironmentAcmeAccount = example; @@ -79,13 +79,13 @@ export interface GetAccountResult { * import * as proxmoxve from "@pulumi/proxmoxve"; * * const all = proxmoxve.Acme.getAccounts({}); - * const example = all.then(all => .map(([, ]) => (proxmoxve.Acme.getAccount({ + * const example = all.then(all => .map(([__key, __value]) => (proxmoxve.Acme.getAccount({ * name: __value, * })))); * export const dataProxmoxVirtualEnvironmentAcmeAccount = example; * ``` */ -export function getAccountOutput(args?: GetAccountOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getAccountOutput(args?: GetAccountOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { args = args || {}; opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Acme/getAccount:getAccount", { diff --git a/sdk/nodejs/acme/getAccounts.ts b/sdk/nodejs/acme/getAccounts.ts index 6f12716c..a43ee9f3 100644 --- a/sdk/nodejs/acme/getAccounts.ts +++ b/sdk/nodejs/acme/getAccounts.ts @@ -49,7 +49,7 @@ export interface GetAccountsResult { * export const dataProxmoxVirtualEnvironmentAcmeAccounts = example.then(example => example.accounts); * ``` */ -export function getAccountsOutput(opts?: pulumi.InvokeOptions): pulumi.Output { +export function getAccountsOutput(opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Acme/getAccounts:getAccounts", { }, opts); diff --git a/sdk/nodejs/acme/getPlugin.ts b/sdk/nodejs/acme/getPlugin.ts index 42a6234b..3d47fd12 100644 --- a/sdk/nodejs/acme/getPlugin.ts +++ b/sdk/nodejs/acme/getPlugin.ts @@ -84,7 +84,7 @@ export interface GetPluginResult { * export const dataProxmoxVirtualEnvironmentAcmePlugin = example; * ``` */ -export function getPluginOutput(args: GetPluginOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getPluginOutput(args: GetPluginOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Acme/getPlugin:getPlugin", { "plugin": args.plugin, diff --git a/sdk/nodejs/acme/getPlugins.ts b/sdk/nodejs/acme/getPlugins.ts index 888c6b26..d5a70ba0 100644 --- a/sdk/nodejs/acme/getPlugins.ts +++ b/sdk/nodejs/acme/getPlugins.ts @@ -51,7 +51,7 @@ export interface GetPluginsResult { * export const dataProxmoxVirtualEnvironmentAcmePlugins = example.then(example => example.plugins); * ``` */ -export function getPluginsOutput(opts?: pulumi.InvokeOptions): pulumi.Output { +export function getPluginsOutput(opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Acme/getPlugins:getPlugins", { }, opts); diff --git a/sdk/nodejs/apt/getRepository.ts b/sdk/nodejs/apt/getRepository.ts index e5f29dea..acc9f8e4 100644 --- a/sdk/nodejs/apt/getRepository.ts +++ b/sdk/nodejs/apt/getRepository.ts @@ -114,7 +114,7 @@ export interface GetRepositoryResult { * export const proxmoxVirtualEnvironmentAptRepository = example; * ``` */ -export function getRepositoryOutput(args: GetRepositoryOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getRepositoryOutput(args: GetRepositoryOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Apt/getRepository:getRepository", { "filePath": args.filePath, diff --git a/sdk/nodejs/apt/standard/getRepository.ts b/sdk/nodejs/apt/standard/getRepository.ts index c67dfe9b..1b5b0103 100644 --- a/sdk/nodejs/apt/standard/getRepository.ts +++ b/sdk/nodejs/apt/standard/getRepository.ts @@ -95,7 +95,7 @@ export interface GetRepositoryResult { * export const proxmoxVirtualEnvironmentAptStandardRepository = example; * ``` */ -export function getRepositoryOutput(args: GetRepositoryOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getRepositoryOutput(args: GetRepositoryOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Apt/standard/getRepository:getRepository", { "handle": args.handle, diff --git a/sdk/nodejs/cluster/getNodes.ts b/sdk/nodejs/cluster/getNodes.ts index c0f2dfb0..3cbe7145 100644 --- a/sdk/nodejs/cluster/getNodes.ts +++ b/sdk/nodejs/cluster/getNodes.ts @@ -79,7 +79,7 @@ export interface GetNodesResult { * const availableNodes = proxmoxve.Cluster.getNodes({}); * ``` */ -export function getNodesOutput(opts?: pulumi.InvokeOptions): pulumi.Output { +export function getNodesOutput(opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Cluster/getNodes:getNodes", { }, opts); diff --git a/sdk/nodejs/getNode.ts b/sdk/nodejs/getNode.ts index eb49577c..e56c4326 100644 --- a/sdk/nodejs/getNode.ts +++ b/sdk/nodejs/getNode.ts @@ -83,7 +83,7 @@ export interface GetNodeResult { * const node = proxmoxve.getNode({}); * ``` */ -export function getNodeOutput(args: GetNodeOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getNodeOutput(args: GetNodeOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:index/getNode:getNode", { "nodeName": args.nodeName, diff --git a/sdk/nodejs/getVm2.ts b/sdk/nodejs/getVm2.ts index 69998aeb..acabc66f 100644 --- a/sdk/nodejs/getVm2.ts +++ b/sdk/nodejs/getVm2.ts @@ -115,7 +115,7 @@ export interface GetVm2Result { * !> **DO NOT USE** * This is an experimental implementation of a Proxmox VM datasource using Plugin Framework. */ -export function getVm2Output(args: GetVm2OutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getVm2Output(args: GetVm2OutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:index/getVm2:getVm2", { "clone": args.clone, diff --git a/sdk/nodejs/ha/getHagroup.ts b/sdk/nodejs/ha/getHagroup.ts index 037c2037..c6554641 100644 --- a/sdk/nodejs/ha/getHagroup.ts +++ b/sdk/nodejs/ha/getHagroup.ts @@ -14,7 +14,7 @@ import * as utilities from "../utilities"; * import * as proxmoxve from "@pulumi/proxmoxve"; * * const all = proxmoxve.HA.getHAGroups({}); - * const example = all.then(all => .map(([, ]) => (proxmoxve.HA.getHAGroup({ + * const example = all.then(all => .map(([__key, __value]) => (proxmoxve.HA.getHAGroup({ * group: __value, * })))); * export const proxmoxVirtualEnvironmentHagroupsFull = example; @@ -76,13 +76,13 @@ export interface GetHAGroupResult { * import * as proxmoxve from "@pulumi/proxmoxve"; * * const all = proxmoxve.HA.getHAGroups({}); - * const example = all.then(all => .map(([, ]) => (proxmoxve.HA.getHAGroup({ + * const example = all.then(all => .map(([__key, __value]) => (proxmoxve.HA.getHAGroup({ * group: __value, * })))); * export const proxmoxVirtualEnvironmentHagroupsFull = example; * ``` */ -export function getHAGroupOutput(args: GetHAGroupOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getHAGroupOutput(args: GetHAGroupOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:HA/getHAGroup:getHAGroup", { "group": args.group, diff --git a/sdk/nodejs/ha/getHagroups.ts b/sdk/nodejs/ha/getHagroups.ts index 8350796f..482fb9a4 100644 --- a/sdk/nodejs/ha/getHagroups.ts +++ b/sdk/nodejs/ha/getHagroups.ts @@ -49,7 +49,7 @@ export interface GetHAGroupsResult { * export const dataProxmoxVirtualEnvironmentHagroups = example.then(example => example.groupIds); * ``` */ -export function getHAGroupsOutput(opts?: pulumi.InvokeOptions): pulumi.Output { +export function getHAGroupsOutput(opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:HA/getHAGroups:getHAGroups", { }, opts); diff --git a/sdk/nodejs/ha/getHaresource.ts b/sdk/nodejs/ha/getHaresource.ts index 39fb1f0e..f3890b03 100644 --- a/sdk/nodejs/ha/getHaresource.ts +++ b/sdk/nodejs/ha/getHaresource.ts @@ -14,7 +14,7 @@ import * as utilities from "../utilities"; * import * as proxmoxve from "@pulumi/proxmoxve"; * * const all = proxmoxve.HA.getHAResources({}); - * const example = all.then(all => .map(([, ]) => (proxmoxve.HA.getHAResource({ + * const example = all.then(all => .map(([__key, __value]) => (proxmoxve.HA.getHAResource({ * resourceId: __value, * })))); * export const proxmoxVirtualEnvironmentHaresourcesFull = example; @@ -84,13 +84,13 @@ export interface GetHAResourceResult { * import * as proxmoxve from "@pulumi/proxmoxve"; * * const all = proxmoxve.HA.getHAResources({}); - * const example = all.then(all => .map(([, ]) => (proxmoxve.HA.getHAResource({ + * const example = all.then(all => .map(([__key, __value]) => (proxmoxve.HA.getHAResource({ * resourceId: __value, * })))); * export const proxmoxVirtualEnvironmentHaresourcesFull = example; * ``` */ -export function getHAResourceOutput(args: GetHAResourceOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getHAResourceOutput(args: GetHAResourceOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:HA/getHAResource:getHAResource", { "resourceId": args.resourceId, diff --git a/sdk/nodejs/ha/getHaresources.ts b/sdk/nodejs/ha/getHaresources.ts index d9902efc..a5b68ff6 100644 --- a/sdk/nodejs/ha/getHaresources.ts +++ b/sdk/nodejs/ha/getHaresources.ts @@ -77,7 +77,7 @@ export interface GetHAResourcesResult { * }; * ``` */ -export function getHAResourcesOutput(args?: GetHAResourcesOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getHAResourcesOutput(args?: GetHAResourcesOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { args = args || {}; opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:HA/getHAResources:getHAResources", { diff --git a/sdk/nodejs/hardware/getMappings.ts b/sdk/nodejs/hardware/getMappings.ts index dbb43ce1..42d73c89 100644 --- a/sdk/nodejs/hardware/getMappings.ts +++ b/sdk/nodejs/hardware/getMappings.ts @@ -95,7 +95,7 @@ export interface GetMappingsResult { * export const dataProxmoxVirtualEnvironmentHardwareMappingsUsb = example_usb; * ``` */ -export function getMappingsOutput(args: GetMappingsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getMappingsOutput(args: GetMappingsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Hardware/getMappings:getMappings", { "checkNode": args.checkNode, diff --git a/sdk/nodejs/hardware/mapping/getPci.ts b/sdk/nodejs/hardware/mapping/getPci.ts index 1d40a879..2b6d2fb9 100644 --- a/sdk/nodejs/hardware/mapping/getPci.ts +++ b/sdk/nodejs/hardware/mapping/getPci.ts @@ -78,7 +78,7 @@ export interface GetPciResult { * export const dataProxmoxVirtualEnvironmentHardwareMappingPci = example; * ``` */ -export function getPciOutput(args: GetPciOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getPciOutput(args: GetPciOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Hardware/mapping/getPci:getPci", { "name": args.name, diff --git a/sdk/nodejs/hardware/mapping/getUsb.ts b/sdk/nodejs/hardware/mapping/getUsb.ts index a2fea4bd..94302df4 100644 --- a/sdk/nodejs/hardware/mapping/getUsb.ts +++ b/sdk/nodejs/hardware/mapping/getUsb.ts @@ -74,7 +74,7 @@ export interface GetUsbResult { * export const dataProxmoxVirtualEnvironmentHardwareMappingUsb = example; * ``` */ -export function getUsbOutput(args: GetUsbOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getUsbOutput(args: GetUsbOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Hardware/mapping/getUsb:getUsb", { "name": args.name, diff --git a/sdk/nodejs/network/getDNS.ts b/sdk/nodejs/network/getDNS.ts index 77c468cd..ae0fb862 100644 --- a/sdk/nodejs/network/getDNS.ts +++ b/sdk/nodejs/network/getDNS.ts @@ -67,7 +67,7 @@ export interface GetDNSResult { * }); * ``` */ -export function getDNSOutput(args: GetDNSOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getDNSOutput(args: GetDNSOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Network/getDNS:getDNS", { "nodeName": args.nodeName, diff --git a/sdk/nodejs/network/getHosts.ts b/sdk/nodejs/network/getHosts.ts index 265afe18..84a6e507 100644 --- a/sdk/nodejs/network/getHosts.ts +++ b/sdk/nodejs/network/getHosts.ts @@ -78,7 +78,7 @@ export interface GetHostsResult { * }); * ``` */ -export function getHostsOutput(args: GetHostsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getHostsOutput(args: GetHostsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Network/getHosts:getHosts", { "nodeName": args.nodeName, diff --git a/sdk/nodejs/network/getTime.ts b/sdk/nodejs/network/getTime.ts index 3057da48..2cd422fb 100644 --- a/sdk/nodejs/network/getTime.ts +++ b/sdk/nodejs/network/getTime.ts @@ -71,7 +71,7 @@ export interface GetTimeResult { * }); * ``` */ -export function getTimeOutput(args: GetTimeOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getTimeOutput(args: GetTimeOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Network/getTime:getTime", { "nodeName": args.nodeName, diff --git a/sdk/nodejs/network/getVersion.ts b/sdk/nodejs/network/getVersion.ts index d9911d26..7ea6bf99 100644 --- a/sdk/nodejs/network/getVersion.ts +++ b/sdk/nodejs/network/getVersion.ts @@ -65,7 +65,7 @@ export interface GetVersionResult { * }; * ``` */ -export function getVersionOutput(opts?: pulumi.InvokeOptions): pulumi.Output { +export function getVersionOutput(opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Network/getVersion:getVersion", { }, opts); diff --git a/sdk/nodejs/permission/getGroup.ts b/sdk/nodejs/permission/getGroup.ts index aa611982..b2765f9f 100644 --- a/sdk/nodejs/permission/getGroup.ts +++ b/sdk/nodejs/permission/getGroup.ts @@ -73,7 +73,7 @@ export interface GetGroupResult { * }); * ``` */ -export function getGroupOutput(args: GetGroupOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getGroupOutput(args: GetGroupOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Permission/getGroup:getGroup", { "groupId": args.groupId, diff --git a/sdk/nodejs/permission/getGroups.ts b/sdk/nodejs/permission/getGroups.ts index 2c5418a9..2272f9e9 100644 --- a/sdk/nodejs/permission/getGroups.ts +++ b/sdk/nodejs/permission/getGroups.ts @@ -51,7 +51,7 @@ export interface GetGroupsResult { * const availableGroups = proxmoxve.Permission.getGroups({}); * ``` */ -export function getGroupsOutput(opts?: pulumi.InvokeOptions): pulumi.Output { +export function getGroupsOutput(opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Permission/getGroups:getGroups", { }, opts); diff --git a/sdk/nodejs/permission/getPool.ts b/sdk/nodejs/permission/getPool.ts index 0360dd8b..4b1ede79 100644 --- a/sdk/nodejs/permission/getPool.ts +++ b/sdk/nodejs/permission/getPool.ts @@ -69,7 +69,7 @@ export interface GetPoolResult { * }); * ``` */ -export function getPoolOutput(args: GetPoolOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getPoolOutput(args: GetPoolOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Permission/getPool:getPool", { "poolId": args.poolId, diff --git a/sdk/nodejs/permission/getPools.ts b/sdk/nodejs/permission/getPools.ts index aadda650..9675957f 100644 --- a/sdk/nodejs/permission/getPools.ts +++ b/sdk/nodejs/permission/getPools.ts @@ -47,7 +47,7 @@ export interface GetPoolsResult { * const availablePools = proxmoxve.Permission.getPools({}); * ``` */ -export function getPoolsOutput(opts?: pulumi.InvokeOptions): pulumi.Output { +export function getPoolsOutput(opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Permission/getPools:getPools", { }, opts); diff --git a/sdk/nodejs/permission/getRole.ts b/sdk/nodejs/permission/getRole.ts index b0986f84..6a95e84f 100644 --- a/sdk/nodejs/permission/getRole.ts +++ b/sdk/nodejs/permission/getRole.ts @@ -63,7 +63,7 @@ export interface GetRoleResult { * }); * ``` */ -export function getRoleOutput(args: GetRoleOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getRoleOutput(args: GetRoleOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Permission/getRole:getRole", { "roleId": args.roleId, diff --git a/sdk/nodejs/permission/getRoles.ts b/sdk/nodejs/permission/getRoles.ts index c07fa8ce..19484c3c 100644 --- a/sdk/nodejs/permission/getRoles.ts +++ b/sdk/nodejs/permission/getRoles.ts @@ -55,7 +55,7 @@ export interface GetRolesResult { * const availableRoles = proxmoxve.Permission.getRoles({}); * ``` */ -export function getRolesOutput(opts?: pulumi.InvokeOptions): pulumi.Output { +export function getRolesOutput(opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Permission/getRoles:getRoles", { }, opts); diff --git a/sdk/nodejs/permission/getUser.ts b/sdk/nodejs/permission/getUser.ts index ef9e89d0..32557716 100644 --- a/sdk/nodejs/permission/getUser.ts +++ b/sdk/nodejs/permission/getUser.ts @@ -97,7 +97,7 @@ export interface GetUserResult { * }); * ``` */ -export function getUserOutput(args: GetUserOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getUserOutput(args: GetUserOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Permission/getUser:getUser", { "userId": args.userId, diff --git a/sdk/nodejs/permission/getUsers.ts b/sdk/nodejs/permission/getUsers.ts index b88d9d2f..44f26012 100644 --- a/sdk/nodejs/permission/getUsers.ts +++ b/sdk/nodejs/permission/getUsers.ts @@ -79,7 +79,7 @@ export interface GetUsersResult { * const availableUsers = proxmoxve.Permission.getUsers({}); * ``` */ -export function getUsersOutput(opts?: pulumi.InvokeOptions): pulumi.Output { +export function getUsersOutput(opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Permission/getUsers:getUsers", { }, opts); diff --git a/sdk/nodejs/storage/getDatastores.ts b/sdk/nodejs/storage/getDatastores.ts index ddf1a396..adb6b160 100644 --- a/sdk/nodejs/storage/getDatastores.ts +++ b/sdk/nodejs/storage/getDatastores.ts @@ -95,7 +95,7 @@ export interface GetDatastoresResult { * }); * ``` */ -export function getDatastoresOutput(args: GetDatastoresOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getDatastoresOutput(args: GetDatastoresOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:Storage/getDatastores:getDatastores", { "nodeName": args.nodeName, diff --git a/sdk/nodejs/vm/getVirtualMachine.ts b/sdk/nodejs/vm/getVirtualMachine.ts index 4455c195..9b133f67 100644 --- a/sdk/nodejs/vm/getVirtualMachine.ts +++ b/sdk/nodejs/vm/getVirtualMachine.ts @@ -93,7 +93,7 @@ export interface GetVirtualMachineResult { * }); * ``` */ -export function getVirtualMachineOutput(args: GetVirtualMachineOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getVirtualMachineOutput(args: GetVirtualMachineOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:VM/getVirtualMachine:getVirtualMachine", { "nodeName": args.nodeName, diff --git a/sdk/nodejs/vm/getVirtualMachines.ts b/sdk/nodejs/vm/getVirtualMachines.ts index 3c9f9897..6dc02f42 100644 --- a/sdk/nodejs/vm/getVirtualMachines.ts +++ b/sdk/nodejs/vm/getVirtualMachines.ts @@ -143,7 +143,7 @@ export interface GetVirtualMachinesResult { * }); * ``` */ -export function getVirtualMachinesOutput(args?: GetVirtualMachinesOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { +export function getVirtualMachinesOutput(args?: GetVirtualMachinesOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { args = args || {}; opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("proxmoxve:VM/getVirtualMachines:getVirtualMachines", { diff --git a/sdk/python/pulumi_proxmoxve/acme/get_account.py b/sdk/python/pulumi_proxmoxve/acme/get_account.py index 9e4c2387..720a1e8b 100644 --- a/sdk/python/pulumi_proxmoxve/acme/get_account.py +++ b/sdk/python/pulumi_proxmoxve/acme/get_account.py @@ -142,7 +142,7 @@ def get_account(name: Optional[str] = None, name=pulumi.get(__ret__, 'name'), tos=pulumi.get(__ret__, 'tos')) def get_account_output(name: Optional[pulumi.Input[Optional[str]]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAccountResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetAccountResult]: """ Retrieves information about a specific ACME account. @@ -162,7 +162,7 @@ def get_account_output(name: Optional[pulumi.Input[Optional[str]]] = None, """ __args__ = dict() __args__['name'] = name - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Acme/getAccount:getAccount', __args__, opts=opts, typ=GetAccountResult) return __ret__.apply(lambda __response__: GetAccountResult( account=pulumi.get(__response__, 'account'), diff --git a/sdk/python/pulumi_proxmoxve/acme/get_accounts.py b/sdk/python/pulumi_proxmoxve/acme/get_accounts.py index b3219af3..13e97557 100644 --- a/sdk/python/pulumi_proxmoxve/acme/get_accounts.py +++ b/sdk/python/pulumi_proxmoxve/acme/get_accounts.py @@ -82,7 +82,7 @@ def get_accounts(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAcc return AwaitableGetAccountsResult( accounts=pulumi.get(__ret__, 'accounts'), id=pulumi.get(__ret__, 'id')) -def get_accounts_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAccountsResult]: +def get_accounts_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetAccountsResult]: """ Retrieves the list of ACME accounts. @@ -97,7 +97,7 @@ def get_accounts_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.O ``` """ __args__ = dict() - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Acme/getAccounts:getAccounts', __args__, opts=opts, typ=GetAccountsResult) return __ret__.apply(lambda __response__: GetAccountsResult( accounts=pulumi.get(__response__, 'accounts'), diff --git a/sdk/python/pulumi_proxmoxve/acme/get_plugin.py b/sdk/python/pulumi_proxmoxve/acme/get_plugin.py index 39ca2a99..4da43767 100644 --- a/sdk/python/pulumi_proxmoxve/acme/get_plugin.py +++ b/sdk/python/pulumi_proxmoxve/acme/get_plugin.py @@ -153,7 +153,7 @@ def get_plugin(plugin: Optional[str] = None, type=pulumi.get(__ret__, 'type'), validation_delay=pulumi.get(__ret__, 'validation_delay')) def get_plugin_output(plugin: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPluginResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetPluginResult]: """ Retrieves a single ACME plugin by plugin ID name. @@ -172,7 +172,7 @@ def get_plugin_output(plugin: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['plugin'] = plugin - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Acme/getPlugin:getPlugin', __args__, opts=opts, typ=GetPluginResult) return __ret__.apply(lambda __response__: GetPluginResult( api=pulumi.get(__response__, 'api'), diff --git a/sdk/python/pulumi_proxmoxve/acme/get_plugins.py b/sdk/python/pulumi_proxmoxve/acme/get_plugins.py index 521b62a9..e90231de 100644 --- a/sdk/python/pulumi_proxmoxve/acme/get_plugins.py +++ b/sdk/python/pulumi_proxmoxve/acme/get_plugins.py @@ -83,7 +83,7 @@ def get_plugins(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPlug return AwaitableGetPluginsResult( id=pulumi.get(__ret__, 'id'), plugins=pulumi.get(__ret__, 'plugins')) -def get_plugins_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPluginsResult]: +def get_plugins_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetPluginsResult]: """ Retrieves the list of ACME plugins. @@ -98,7 +98,7 @@ def get_plugins_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Ou ``` """ __args__ = dict() - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Acme/getPlugins:getPlugins', __args__, opts=opts, typ=GetPluginsResult) return __ret__.apply(lambda __response__: GetPluginsResult( id=pulumi.get(__response__, 'id'), diff --git a/sdk/python/pulumi_proxmoxve/apt/get_repository.py b/sdk/python/pulumi_proxmoxve/apt/get_repository.py index ea5e7681..20b09606 100644 --- a/sdk/python/pulumi_proxmoxve/apt/get_repository.py +++ b/sdk/python/pulumi_proxmoxve/apt/get_repository.py @@ -215,7 +215,7 @@ def get_repository(file_path: Optional[str] = None, def get_repository_output(file_path: Optional[pulumi.Input[str]] = None, index: Optional[pulumi.Input[int]] = None, node: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetRepositoryResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetRepositoryResult]: """ Retrieves an APT repository from a Proxmox VE cluster. @@ -240,7 +240,7 @@ def get_repository_output(file_path: Optional[pulumi.Input[str]] = None, __args__['filePath'] = file_path __args__['index'] = index __args__['node'] = node - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Apt/getRepository:getRepository', __args__, opts=opts, typ=GetRepositoryResult) return __ret__.apply(lambda __response__: GetRepositoryResult( comment=pulumi.get(__response__, 'comment'), diff --git a/sdk/python/pulumi_proxmoxve/apt/standard/get_repository.py b/sdk/python/pulumi_proxmoxve/apt/standard/get_repository.py index 3e65d804..30d7361b 100644 --- a/sdk/python/pulumi_proxmoxve/apt/standard/get_repository.py +++ b/sdk/python/pulumi_proxmoxve/apt/standard/get_repository.py @@ -171,7 +171,7 @@ def get_repository(handle: Optional[str] = None, status=pulumi.get(__ret__, 'status')) def get_repository_output(handle: Optional[pulumi.Input[str]] = None, node: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetRepositoryResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetRepositoryResult]: """ Retrieves an APT standard repository from a Proxmox VE cluster. @@ -193,7 +193,7 @@ def get_repository_output(handle: Optional[pulumi.Input[str]] = None, __args__ = dict() __args__['handle'] = handle __args__['node'] = node - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Apt/standard/getRepository:getRepository', __args__, opts=opts, typ=GetRepositoryResult) return __ret__.apply(lambda __response__: GetRepositoryResult( description=pulumi.get(__response__, 'description'), diff --git a/sdk/python/pulumi_proxmoxve/cluster/get_nodes.py b/sdk/python/pulumi_proxmoxve/cluster/get_nodes.py index 9bef863d..ae6d0d42 100644 --- a/sdk/python/pulumi_proxmoxve/cluster/get_nodes.py +++ b/sdk/python/pulumi_proxmoxve/cluster/get_nodes.py @@ -185,7 +185,7 @@ def get_nodes(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetNodesR ssl_fingerprints=pulumi.get(__ret__, 'ssl_fingerprints'), support_levels=pulumi.get(__ret__, 'support_levels'), uptimes=pulumi.get(__ret__, 'uptimes')) -def get_nodes_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetNodesResult]: +def get_nodes_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetNodesResult]: """ Retrieves information about all available nodes. @@ -199,7 +199,7 @@ def get_nodes_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Outp ``` """ __args__ = dict() - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Cluster/getNodes:getNodes', __args__, opts=opts, typ=GetNodesResult) return __ret__.apply(lambda __response__: GetNodesResult( cpu_counts=pulumi.get(__response__, 'cpu_counts'), diff --git a/sdk/python/pulumi_proxmoxve/get_node.py b/sdk/python/pulumi_proxmoxve/get_node.py index 32bed092..eef2fd0c 100644 --- a/sdk/python/pulumi_proxmoxve/get_node.py +++ b/sdk/python/pulumi_proxmoxve/get_node.py @@ -175,7 +175,7 @@ def get_node(node_name: Optional[str] = None, node_name=pulumi.get(__ret__, 'node_name'), uptime=pulumi.get(__ret__, 'uptime')) def get_node_output(node_name: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetNodeResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetNodeResult]: """ Retrieves information about node. @@ -193,7 +193,7 @@ def get_node_output(node_name: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['nodeName'] = node_name - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:index/getNode:getNode', __args__, opts=opts, typ=GetNodeResult) return __ret__.apply(lambda __response__: GetNodeResult( cpu_count=pulumi.get(__response__, 'cpu_count'), diff --git a/sdk/python/pulumi_proxmoxve/get_vm2.py b/sdk/python/pulumi_proxmoxve/get_vm2.py index 181dadcb..e48310d8 100644 --- a/sdk/python/pulumi_proxmoxve/get_vm2.py +++ b/sdk/python/pulumi_proxmoxve/get_vm2.py @@ -217,7 +217,7 @@ def get_vm2_output(clone: Optional[pulumi.Input[Optional[Union['GetVm2CloneArgs' template: Optional[pulumi.Input[Optional[bool]]] = None, timeouts: Optional[pulumi.Input[Optional[Union['GetVm2TimeoutsArgs', 'GetVm2TimeoutsArgsDict']]]] = None, vga: Optional[pulumi.Input[Optional[Union['GetVm2VgaArgs', 'GetVm2VgaArgsDict']]]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetVm2Result]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetVm2Result]: """ !> **DO NOT USE** This is an experimental implementation of a Proxmox VM datasource using Plugin Framework. @@ -244,7 +244,7 @@ def get_vm2_output(clone: Optional[pulumi.Input[Optional[Union['GetVm2CloneArgs' __args__['template'] = template __args__['timeouts'] = timeouts __args__['vga'] = vga - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:index/getVm2:getVm2', __args__, opts=opts, typ=GetVm2Result) return __ret__.apply(lambda __response__: GetVm2Result( clone=pulumi.get(__response__, 'clone'), diff --git a/sdk/python/pulumi_proxmoxve/ha/get_ha_group.py b/sdk/python/pulumi_proxmoxve/ha/get_ha_group.py index e24f3478..7362ecaa 100644 --- a/sdk/python/pulumi_proxmoxve/ha/get_ha_group.py +++ b/sdk/python/pulumi_proxmoxve/ha/get_ha_group.py @@ -141,7 +141,7 @@ def get_ha_group(group: Optional[str] = None, nodes=pulumi.get(__ret__, 'nodes'), restricted=pulumi.get(__ret__, 'restricted')) def get_ha_group_output(group: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetHAGroupResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetHAGroupResult]: """ Retrieves information about a specific High Availability group. @@ -161,7 +161,7 @@ def get_ha_group_output(group: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['group'] = group - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:HA/getHAGroup:getHAGroup', __args__, opts=opts, typ=GetHAGroupResult) return __ret__.apply(lambda __response__: GetHAGroupResult( comment=pulumi.get(__response__, 'comment'), diff --git a/sdk/python/pulumi_proxmoxve/ha/get_ha_groups.py b/sdk/python/pulumi_proxmoxve/ha/get_ha_groups.py index 11de0b69..3cae4bef 100644 --- a/sdk/python/pulumi_proxmoxve/ha/get_ha_groups.py +++ b/sdk/python/pulumi_proxmoxve/ha/get_ha_groups.py @@ -82,7 +82,7 @@ def get_ha_groups(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetHA return AwaitableGetHAGroupsResult( group_ids=pulumi.get(__ret__, 'group_ids'), id=pulumi.get(__ret__, 'id')) -def get_ha_groups_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetHAGroupsResult]: +def get_ha_groups_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetHAGroupsResult]: """ Retrieves the list of High Availability groups. @@ -97,7 +97,7 @@ def get_ha_groups_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi. ``` """ __args__ = dict() - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:HA/getHAGroups:getHAGroups', __args__, opts=opts, typ=GetHAGroupsResult) return __ret__.apply(lambda __response__: GetHAGroupsResult( group_ids=pulumi.get(__response__, 'group_ids'), diff --git a/sdk/python/pulumi_proxmoxve/ha/get_ha_resource.py b/sdk/python/pulumi_proxmoxve/ha/get_ha_resource.py index 111c37ac..053479d5 100644 --- a/sdk/python/pulumi_proxmoxve/ha/get_ha_resource.py +++ b/sdk/python/pulumi_proxmoxve/ha/get_ha_resource.py @@ -167,7 +167,7 @@ def get_ha_resource(resource_id: Optional[str] = None, state=pulumi.get(__ret__, 'state'), type=pulumi.get(__ret__, 'type')) def get_ha_resource_output(resource_id: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetHAResourceResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetHAResourceResult]: """ Retrieves the list of High Availability resources. @@ -187,7 +187,7 @@ def get_ha_resource_output(resource_id: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['resourceId'] = resource_id - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:HA/getHAResource:getHAResource', __args__, opts=opts, typ=GetHAResourceResult) return __ret__.apply(lambda __response__: GetHAResourceResult( comment=pulumi.get(__response__, 'comment'), diff --git a/sdk/python/pulumi_proxmoxve/ha/get_ha_resources.py b/sdk/python/pulumi_proxmoxve/ha/get_ha_resources.py index ea7c2b2c..ede85817 100644 --- a/sdk/python/pulumi_proxmoxve/ha/get_ha_resources.py +++ b/sdk/python/pulumi_proxmoxve/ha/get_ha_resources.py @@ -105,7 +105,7 @@ def get_ha_resources(type: Optional[str] = None, resource_ids=pulumi.get(__ret__, 'resource_ids'), type=pulumi.get(__ret__, 'type')) def get_ha_resources_output(type: Optional[pulumi.Input[Optional[str]]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetHAResourcesResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetHAResourcesResult]: """ Retrieves the list of High Availability resources. @@ -128,7 +128,7 @@ def get_ha_resources_output(type: Optional[pulumi.Input[Optional[str]]] = None, """ __args__ = dict() __args__['type'] = type - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:HA/getHAResources:getHAResources', __args__, opts=opts, typ=GetHAResourcesResult) return __ret__.apply(lambda __response__: GetHAResourcesResult( id=pulumi.get(__response__, 'id'), diff --git a/sdk/python/pulumi_proxmoxve/hardware/get_mappings.py b/sdk/python/pulumi_proxmoxve/hardware/get_mappings.py index 6fb620c5..3d412de5 100644 --- a/sdk/python/pulumi_proxmoxve/hardware/get_mappings.py +++ b/sdk/python/pulumi_proxmoxve/hardware/get_mappings.py @@ -136,7 +136,7 @@ def get_mappings(check_node: Optional[str] = None, type=pulumi.get(__ret__, 'type')) def get_mappings_output(check_node: Optional[pulumi.Input[Optional[str]]] = None, type: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetMappingsResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetMappingsResult]: """ Retrieves a list of hardware mapping resources. @@ -161,7 +161,7 @@ def get_mappings_output(check_node: Optional[pulumi.Input[Optional[str]]] = None __args__ = dict() __args__['checkNode'] = check_node __args__['type'] = type - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Hardware/getMappings:getMappings', __args__, opts=opts, typ=GetMappingsResult) return __ret__.apply(lambda __response__: GetMappingsResult( check_node=pulumi.get(__response__, 'check_node'), diff --git a/sdk/python/pulumi_proxmoxve/hardware/mapping/get_pci.py b/sdk/python/pulumi_proxmoxve/hardware/mapping/get_pci.py index dca40394..83b7ea0c 100644 --- a/sdk/python/pulumi_proxmoxve/hardware/mapping/get_pci.py +++ b/sdk/python/pulumi_proxmoxve/hardware/mapping/get_pci.py @@ -128,7 +128,7 @@ def get_pci(name: Optional[str] = None, mediated_devices=pulumi.get(__ret__, 'mediated_devices'), name=pulumi.get(__ret__, 'name')) def get_pci_output(name: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPciResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetPciResult]: """ Retrieves a PCI hardware mapping from a Proxmox VE cluster. @@ -147,7 +147,7 @@ def get_pci_output(name: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['name'] = name - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Hardware/mapping/getPci:getPci', __args__, opts=opts, typ=GetPciResult) return __ret__.apply(lambda __response__: GetPciResult( comment=pulumi.get(__response__, 'comment'), diff --git a/sdk/python/pulumi_proxmoxve/hardware/mapping/get_usb.py b/sdk/python/pulumi_proxmoxve/hardware/mapping/get_usb.py index 3aefd06d..f67df063 100644 --- a/sdk/python/pulumi_proxmoxve/hardware/mapping/get_usb.py +++ b/sdk/python/pulumi_proxmoxve/hardware/mapping/get_usb.py @@ -115,7 +115,7 @@ def get_usb(name: Optional[str] = None, maps=pulumi.get(__ret__, 'maps'), name=pulumi.get(__ret__, 'name')) def get_usb_output(name: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetUsbResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetUsbResult]: """ Retrieves a USB hardware mapping from a Proxmox VE cluster. @@ -134,7 +134,7 @@ def get_usb_output(name: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['name'] = name - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Hardware/mapping/getUsb:getUsb', __args__, opts=opts, typ=GetUsbResult) return __ret__.apply(lambda __response__: GetUsbResult( comment=pulumi.get(__response__, 'comment'), diff --git a/sdk/python/pulumi_proxmoxve/network/get_dns.py b/sdk/python/pulumi_proxmoxve/network/get_dns.py index fc9e0ba8..6907c913 100644 --- a/sdk/python/pulumi_proxmoxve/network/get_dns.py +++ b/sdk/python/pulumi_proxmoxve/network/get_dns.py @@ -110,7 +110,7 @@ def get_dns(node_name: Optional[str] = None, node_name=pulumi.get(__ret__, 'node_name'), servers=pulumi.get(__ret__, 'servers')) def get_dns_output(node_name: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetDNSResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetDNSResult]: """ Retrieves the DNS configuration for a specific node. @@ -128,7 +128,7 @@ def get_dns_output(node_name: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['nodeName'] = node_name - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Network/getDNS:getDNS', __args__, opts=opts, typ=GetDNSResult) return __ret__.apply(lambda __response__: GetDNSResult( domain=pulumi.get(__response__, 'domain'), diff --git a/sdk/python/pulumi_proxmoxve/network/get_hosts.py b/sdk/python/pulumi_proxmoxve/network/get_hosts.py index d29498e4..6d243b8f 100644 --- a/sdk/python/pulumi_proxmoxve/network/get_hosts.py +++ b/sdk/python/pulumi_proxmoxve/network/get_hosts.py @@ -138,7 +138,7 @@ def get_hosts(node_name: Optional[str] = None, id=pulumi.get(__ret__, 'id'), node_name=pulumi.get(__ret__, 'node_name')) def get_hosts_output(node_name: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetHostsResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetHostsResult]: """ Retrieves all the host entries from a specific node. @@ -156,7 +156,7 @@ def get_hosts_output(node_name: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['nodeName'] = node_name - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Network/getHosts:getHosts', __args__, opts=opts, typ=GetHostsResult) return __ret__.apply(lambda __response__: GetHostsResult( addresses=pulumi.get(__response__, 'addresses'), diff --git a/sdk/python/pulumi_proxmoxve/network/get_time.py b/sdk/python/pulumi_proxmoxve/network/get_time.py index 1572fb56..3f7a5689 100644 --- a/sdk/python/pulumi_proxmoxve/network/get_time.py +++ b/sdk/python/pulumi_proxmoxve/network/get_time.py @@ -123,7 +123,7 @@ def get_time(node_name: Optional[str] = None, time_zone=pulumi.get(__ret__, 'time_zone'), utc_time=pulumi.get(__ret__, 'utc_time')) def get_time_output(node_name: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetTimeResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetTimeResult]: """ Retrieves the current time for a specific node. @@ -141,7 +141,7 @@ def get_time_output(node_name: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['nodeName'] = node_name - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Network/getTime:getTime', __args__, opts=opts, typ=GetTimeResult) return __ret__.apply(lambda __response__: GetTimeResult( id=pulumi.get(__response__, 'id'), diff --git a/sdk/python/pulumi_proxmoxve/network/get_version.py b/sdk/python/pulumi_proxmoxve/network/get_version.py index 80f27a1a..30629faf 100644 --- a/sdk/python/pulumi_proxmoxve/network/get_version.py +++ b/sdk/python/pulumi_proxmoxve/network/get_version.py @@ -112,7 +112,7 @@ def get_version(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetVers release=pulumi.get(__ret__, 'release'), repository_id=pulumi.get(__ret__, 'repository_id'), version=pulumi.get(__ret__, 'version')) -def get_version_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetVersionResult]: +def get_version_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetVersionResult]: """ Retrieves API version details. @@ -131,7 +131,7 @@ def get_version_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Ou ``` """ __args__ = dict() - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Network/getVersion:getVersion', __args__, opts=opts, typ=GetVersionResult) return __ret__.apply(lambda __response__: GetVersionResult( id=pulumi.get(__response__, 'id'), diff --git a/sdk/python/pulumi_proxmoxve/permission/get_group.py b/sdk/python/pulumi_proxmoxve/permission/get_group.py index 96d875df..99e013c3 100644 --- a/sdk/python/pulumi_proxmoxve/permission/get_group.py +++ b/sdk/python/pulumi_proxmoxve/permission/get_group.py @@ -124,7 +124,7 @@ def get_group(group_id: Optional[str] = None, id=pulumi.get(__ret__, 'id'), members=pulumi.get(__ret__, 'members')) def get_group_output(group_id: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetGroupResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetGroupResult]: """ Retrieves information about a specific user group. @@ -142,7 +142,7 @@ def get_group_output(group_id: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['groupId'] = group_id - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Permission/getGroup:getGroup', __args__, opts=opts, typ=GetGroupResult) return __ret__.apply(lambda __response__: GetGroupResult( acls=pulumi.get(__response__, 'acls'), diff --git a/sdk/python/pulumi_proxmoxve/permission/get_groups.py b/sdk/python/pulumi_proxmoxve/permission/get_groups.py index b2a17ee7..ca73f035 100644 --- a/sdk/python/pulumi_proxmoxve/permission/get_groups.py +++ b/sdk/python/pulumi_proxmoxve/permission/get_groups.py @@ -94,7 +94,7 @@ def get_groups(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetGroup comments=pulumi.get(__ret__, 'comments'), group_ids=pulumi.get(__ret__, 'group_ids'), id=pulumi.get(__ret__, 'id')) -def get_groups_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetGroupsResult]: +def get_groups_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetGroupsResult]: """ Retrieves basic information about all available user groups. @@ -108,7 +108,7 @@ def get_groups_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Out ``` """ __args__ = dict() - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Permission/getGroups:getGroups', __args__, opts=opts, typ=GetGroupsResult) return __ret__.apply(lambda __response__: GetGroupsResult( comments=pulumi.get(__response__, 'comments'), diff --git a/sdk/python/pulumi_proxmoxve/permission/get_pool.py b/sdk/python/pulumi_proxmoxve/permission/get_pool.py index 4e63e7c8..afc16366 100644 --- a/sdk/python/pulumi_proxmoxve/permission/get_pool.py +++ b/sdk/python/pulumi_proxmoxve/permission/get_pool.py @@ -111,7 +111,7 @@ def get_pool(pool_id: Optional[str] = None, members=pulumi.get(__ret__, 'members'), pool_id=pulumi.get(__ret__, 'pool_id')) def get_pool_output(pool_id: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPoolResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetPoolResult]: """ Retrieves information about a specific resource pool. @@ -129,7 +129,7 @@ def get_pool_output(pool_id: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['poolId'] = pool_id - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Permission/getPool:getPool', __args__, opts=opts, typ=GetPoolResult) return __ret__.apply(lambda __response__: GetPoolResult( comment=pulumi.get(__response__, 'comment'), diff --git a/sdk/python/pulumi_proxmoxve/permission/get_pools.py b/sdk/python/pulumi_proxmoxve/permission/get_pools.py index 10beac4d..9dc053c8 100644 --- a/sdk/python/pulumi_proxmoxve/permission/get_pools.py +++ b/sdk/python/pulumi_proxmoxve/permission/get_pools.py @@ -81,7 +81,7 @@ def get_pools(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPoolsR return AwaitableGetPoolsResult( id=pulumi.get(__ret__, 'id'), pool_ids=pulumi.get(__ret__, 'pool_ids')) -def get_pools_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPoolsResult]: +def get_pools_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetPoolsResult]: """ Retrieves the identifiers for all the available resource pools. @@ -95,7 +95,7 @@ def get_pools_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Outp ``` """ __args__ = dict() - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Permission/getPools:getPools', __args__, opts=opts, typ=GetPoolsResult) return __ret__.apply(lambda __response__: GetPoolsResult( id=pulumi.get(__response__, 'id'), diff --git a/sdk/python/pulumi_proxmoxve/permission/get_role.py b/sdk/python/pulumi_proxmoxve/permission/get_role.py index 2bc9b037..02f0f1fe 100644 --- a/sdk/python/pulumi_proxmoxve/permission/get_role.py +++ b/sdk/python/pulumi_proxmoxve/permission/get_role.py @@ -97,7 +97,7 @@ def get_role(role_id: Optional[str] = None, privileges=pulumi.get(__ret__, 'privileges'), role_id=pulumi.get(__ret__, 'role_id')) def get_role_output(role_id: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetRoleResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetRoleResult]: """ Retrieves information about a specific role. @@ -115,7 +115,7 @@ def get_role_output(role_id: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['roleId'] = role_id - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Permission/getRole:getRole', __args__, opts=opts, typ=GetRoleResult) return __ret__.apply(lambda __response__: GetRoleResult( id=pulumi.get(__response__, 'id'), diff --git a/sdk/python/pulumi_proxmoxve/permission/get_roles.py b/sdk/python/pulumi_proxmoxve/permission/get_roles.py index 18dfd725..af093d59 100644 --- a/sdk/python/pulumi_proxmoxve/permission/get_roles.py +++ b/sdk/python/pulumi_proxmoxve/permission/get_roles.py @@ -107,7 +107,7 @@ def get_roles(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetRolesR privileges=pulumi.get(__ret__, 'privileges'), role_ids=pulumi.get(__ret__, 'role_ids'), specials=pulumi.get(__ret__, 'specials')) -def get_roles_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetRolesResult]: +def get_roles_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetRolesResult]: """ Retrieves information about all the available roles. @@ -121,7 +121,7 @@ def get_roles_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Outp ``` """ __args__ = dict() - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Permission/getRoles:getRoles', __args__, opts=opts, typ=GetRolesResult) return __ret__.apply(lambda __response__: GetRolesResult( id=pulumi.get(__response__, 'id'), diff --git a/sdk/python/pulumi_proxmoxve/permission/get_user.py b/sdk/python/pulumi_proxmoxve/permission/get_user.py index 556df438..764ea52c 100644 --- a/sdk/python/pulumi_proxmoxve/permission/get_user.py +++ b/sdk/python/pulumi_proxmoxve/permission/get_user.py @@ -202,7 +202,7 @@ def get_user(user_id: Optional[str] = None, last_name=pulumi.get(__ret__, 'last_name'), user_id=pulumi.get(__ret__, 'user_id')) def get_user_output(user_id: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetUserResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetUserResult]: """ Retrieves information about a specific user. @@ -220,7 +220,7 @@ def get_user_output(user_id: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['userId'] = user_id - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Permission/getUser:getUser', __args__, opts=opts, typ=GetUserResult) return __ret__.apply(lambda __response__: GetUserResult( acls=pulumi.get(__response__, 'acls'), diff --git a/sdk/python/pulumi_proxmoxve/permission/get_users.py b/sdk/python/pulumi_proxmoxve/permission/get_users.py index 918c70aa..14b1f4d4 100644 --- a/sdk/python/pulumi_proxmoxve/permission/get_users.py +++ b/sdk/python/pulumi_proxmoxve/permission/get_users.py @@ -185,7 +185,7 @@ def get_users(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetUsersR keys=pulumi.get(__ret__, 'keys'), last_names=pulumi.get(__ret__, 'last_names'), user_ids=pulumi.get(__ret__, 'user_ids')) -def get_users_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetUsersResult]: +def get_users_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetUsersResult]: """ Retrieves information about all the available users. @@ -199,7 +199,7 @@ def get_users_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Outp ``` """ __args__ = dict() - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Permission/getUsers:getUsers', __args__, opts=opts, typ=GetUsersResult) return __ret__.apply(lambda __response__: GetUsersResult( comments=pulumi.get(__response__, 'comments'), diff --git a/sdk/python/pulumi_proxmoxve/storage/get_datastores.py b/sdk/python/pulumi_proxmoxve/storage/get_datastores.py index 12b9422e..821f02da 100644 --- a/sdk/python/pulumi_proxmoxve/storage/get_datastores.py +++ b/sdk/python/pulumi_proxmoxve/storage/get_datastores.py @@ -201,7 +201,7 @@ def get_datastores(node_name: Optional[str] = None, space_useds=pulumi.get(__ret__, 'space_useds'), types=pulumi.get(__ret__, 'types')) def get_datastores_output(node_name: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetDatastoresResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetDatastoresResult]: """ Retrieves information about all the datastores available to a specific node. @@ -219,7 +219,7 @@ def get_datastores_output(node_name: Optional[pulumi.Input[str]] = None, """ __args__ = dict() __args__['nodeName'] = node_name - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:Storage/getDatastores:getDatastores', __args__, opts=opts, typ=GetDatastoresResult) return __ret__.apply(lambda __response__: GetDatastoresResult( actives=pulumi.get(__response__, 'actives'), diff --git a/sdk/python/pulumi_proxmoxve/vm/get_virtual_machine.py b/sdk/python/pulumi_proxmoxve/vm/get_virtual_machine.py index 8d9df279..76424953 100644 --- a/sdk/python/pulumi_proxmoxve/vm/get_virtual_machine.py +++ b/sdk/python/pulumi_proxmoxve/vm/get_virtual_machine.py @@ -159,7 +159,7 @@ def get_virtual_machine_output(node_name: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[Optional[str]]] = None, template: Optional[pulumi.Input[Optional[bool]]] = None, vm_id: Optional[pulumi.Input[int]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetVirtualMachineResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetVirtualMachineResult]: """ Retrieves information about a specific VM. @@ -184,7 +184,7 @@ def get_virtual_machine_output(node_name: Optional[pulumi.Input[str]] = None, __args__['status'] = status __args__['template'] = template __args__['vmId'] = vm_id - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:VM/getVirtualMachine:getVirtualMachine', __args__, opts=opts, typ=GetVirtualMachineResult) return __ret__.apply(lambda __response__: GetVirtualMachineResult( id=pulumi.get(__response__, 'id'), diff --git a/sdk/python/pulumi_proxmoxve/vm/get_virtual_machines.py b/sdk/python/pulumi_proxmoxve/vm/get_virtual_machines.py index 2a066fdb..342477a7 100644 --- a/sdk/python/pulumi_proxmoxve/vm/get_virtual_machines.py +++ b/sdk/python/pulumi_proxmoxve/vm/get_virtual_machines.py @@ -161,7 +161,7 @@ def get_virtual_machines(filters: Optional[Sequence[Union['GetVirtualMachinesFil def get_virtual_machines_output(filters: Optional[pulumi.Input[Optional[Sequence[Union['GetVirtualMachinesFilterArgs', 'GetVirtualMachinesFilterArgsDict']]]]] = None, node_name: Optional[pulumi.Input[Optional[str]]] = None, tags: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetVirtualMachinesResult]: + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetVirtualMachinesResult]: """ Retrieves information about all VMs in the Proxmox cluster. @@ -211,7 +211,7 @@ def get_virtual_machines_output(filters: Optional[pulumi.Input[Optional[Sequence __args__['filters'] = filters __args__['nodeName'] = node_name __args__['tags'] = tags - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('proxmoxve:VM/getVirtualMachines:getVirtualMachines', __args__, opts=opts, typ=GetVirtualMachinesResult) return __ret__.apply(lambda __response__: GetVirtualMachinesResult( filters=pulumi.get(__response__, 'filters'), diff --git a/sdk/python/setup.py b/sdk/python/setup.py index ba91c36a..a89c5991 100644 --- a/sdk/python/setup.py +++ b/sdk/python/setup.py @@ -18,7 +18,7 @@ def readme(): setup(name='pulumi_proxmoxve', - python_requires='>=3.8', + python_requires='>=3.9', version=VERSION, description="A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.", long_description=readme(),