diff --git a/Makefile b/Makefile index 20a6d887..dc13f885 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.9.7 +JAVA_GEN_VERSION := v0.9.8 TESTPARALLELISM := 4 diff --git a/provider/cmd/pulumi-resource-proxmoxve/schema-embed.json b/provider/cmd/pulumi-resource-proxmoxve/schema-embed.json index e54c81b9..7851b3b3 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":"5.15.0-alpha.1698747000+1afc9c96.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/v5/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":{"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},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\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},"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:CT/ContainerClone:ContainerClone":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create the\ndisk in (defaults to `local`).\n","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The name of the node to assign the container to.\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The container identifier\n","willReplaceOnChanges":true}},"type":"object","required":["vmId"]},"proxmoxve:CT/ContainerConsole:ContainerConsole":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the network device (defaults\nto `true`).\n"},"ttyCount":{"type":"integer","description":"The number of available TTY (defaults to `2`).\n"},"type":{"type":"string","description":"The type (defaults to `unmanaged`).\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":"Volume size (only for ZFS storage backed mount points).\nCan be specified with a unit suffix (e.g. `10G`).\n","willReplaceOnChanges":true}},"type":"object"},"proxmoxve:CT/ContainerFeatures:ContainerFeatures":{"properties":{"fuse":{"type":"boolean","description":"Whether the container supports FUSE mounts (defaults\nto `false`)\n","willReplaceOnChanges":true},"keyctl":{"type":"boolean","description":"Whether the container supports `keyctl()` system\ncall (defaults to `false`)\n","willReplaceOnChanges":true},"nesting":{"type":"boolean","description":"Whether the container is nested (defaults\nto `false`)\n","willReplaceOnChanges":true}},"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.\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 IPv6 address (use `dhcp` for\nautodiscovery).\n"},"gateway":{"type":"string","description":"The IPv6 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\nautodiscovery).\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).\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 ZFS storage backed 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.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type (defaults to `unmanaged`).\n"}},"type":"object","required":["templateFileId"]},"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 (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 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 and\nIPv6 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 several\nports 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 https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions\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 and\nIPv6 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 several\nports 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 definition.\nYou can also specify an address range like `20.34.101.207-201.3.9.99`, or\na list of IP addresses and networks (entries are separated by comma).\nPlease do not mix IPv4 and 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 in '/etc/services'.\nPort ranges can be specified with '\\d+:\\d+', for example `80:85`, and\nyou can use comma separated list to match several ports or ranges.\n"},"enabled":{"type":"boolean"},"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 https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions\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","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 addresses\ninside 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/services'.\nPort ranges can be specified with '\\d+:\\d+', for example `80:85`, and\nyou can use comma separated list to match several ports or ranges.\n"},"type":{"type":"string","description":"Rule type (`in`, `out`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["pos"]}}},"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","willReplaceOnChanges":true},"checksum":{"type":"string","description":"The SHA256 checksum of the source file.\n","willReplaceOnChanges":true},"fileName":{"type":"string","description":"The file name.\n","willReplaceOnChanges":true},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step for\nHTTPS sources (defaults to `false`).\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/VirtualMachineAgent:VirtualMachineAgent":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the VGA device (defaults\nto `true`).\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 VGA type (defaults to `std`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineAudioDevice:VirtualMachineAudioDevice":{"properties":{"device":{"type":"string","description":"The device (defaults to `socket`).\n- `/dev/*` - A host serial device.\n"},"driver":{"type":"string","description":"The driver (defaults to `spice`).\n"},"enabled":{"type":"boolean","description":"Whether to enable the VGA device (defaults\nto `true`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineCdrom:VirtualMachineCdrom":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the VGA device (defaults\nto `true`).\n"},"fileId":{"type":"string","description":"The file ID for a disk image (experimental -\nmight cause high CPU utilization during import, especially with large\ndisk images).\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"}},"type":"object"},"proxmoxve:VM/VirtualMachineClone:VirtualMachineClone":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create the\ncloud-init disk in (defaults to `local-lvm`).\n","willReplaceOnChanges":true},"full":{"type":"boolean","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The name of the node to assign the virtual machine\nto.\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 VM identifier.\n","willReplaceOnChanges":true}},"type":"object","required":["vmId"]},"proxmoxve:VM/VirtualMachineCpu:VirtualMachineCpu":{"properties":{"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"},"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 VGA type (defaults to `std`).\n"},"units":{"type":"integer","description":"The CPU units (defaults to `1024`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineDisk:VirtualMachineDisk":{"properties":{"cache":{"type":"string","description":"The cache type (defaults to `none`).\n"},"datastoreId":{"type":"string","description":"The identifier for the datastore to create the\ncloud-init 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.\n","willReplaceOnChanges":true},"fileId":{"type":"string","description":"The file ID for a disk image (experimental -\nmight cause high CPU utilization during import, especially with large\ndisk images).\n","willReplaceOnChanges":true},"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"},"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"},"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":{"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 the\ncloud-init disk in (defaults to `local-lvm`).\n"},"fileFormat":{"type":"string","description":"The file format.\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":"The VGA type (defaults to `std`).\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["fileFormat"]}}},"proxmoxve:VM/VirtualMachineHostpci:VirtualMachineHostpci":{"properties":{"device":{"type":"string","description":"The device (defaults to `socket`).\n- `/dev/*` - A host serial device.\n"},"id":{"type":"string","description":"The PCI device ID. Use either this or `mapping`.\n"},"mapping":{"type":"string","description":"The resource mapping name of the device, for\nexample usbdevice. 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 VGA type (defaults to `std`).\n","willReplaceOnChanges":true},"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"},"proxmoxve:VM/VirtualMachineInitializationDns:VirtualMachineInitializationDns":{"properties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"server":{"type":"string","description":"The DNS server.\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 IPv4 configuration.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineInitializationIpConfigIpv4:VirtualMachineInitializationIpConfigIpv4":{"properties":{"address":{"type":"string","description":"The IPv6 address (use `dhcp` for\nautodiscovery).\n"},"gateway":{"type":"string","description":"The IPv6 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 (use `dhcp` for\nautodiscovery).\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\nto `512`).\n"},"floating":{"type":"integer","description":"The floating memory in megabytes (defaults\nto `0`).\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\nto `vmbr0`).\n"},"enabled":{"type":"boolean","description":"Whether to enable the VGA 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"},"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\nMTU. 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"},"vlanId":{"type":"integer","description":"The VLAN identifier.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["macAddress"]}}},"proxmoxve:VM/VirtualMachineOperatingSystem:VirtualMachineOperatingSystem":{"properties":{"type":{"type":"string","description":"The VGA type (defaults to `std`).\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"},"order":{"type":"integer","description":"A non-negative number defining the general startup\norder.\n"},"upDelay":{"type":"integer"}},"type":"object"},"proxmoxve:VM/VirtualMachineUsb:VirtualMachineUsb":{"properties":{"host":{"type":"string","description":"The USB device ID. Use either this or `mapping`.\n"},"mapping":{"type":"string","description":"The resource mapping name of the device, for\nexample usbdevice. Use either this or `id`.\n"},"usb3":{"type":"boolean","description":"Makes the USB device a USB3 device for the VM (defaults\nto `false`).\n"}},"type":"object","required":["host"]},"proxmoxve:VM/VirtualMachineVga:VirtualMachineVga":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the VGA device (defaults\nto `true`).\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/getVirtualMachinesVm:getVirtualMachinesVm":{"properties":{"name":{"type":"string","description":"The virtual machine name.\n"},"nodeName":{"type":"string","description":"The node name.\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"},"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"},"agentSocket":{"type":"string"},"nodes":{"type":"array","items":{"$ref":"#/types/proxmoxve:config/sshNode:sshNode"}},"password":{"type":"string","secret":true},"username":{"type":"string"}},"type":"object"},"proxmoxve:config/sshNode:sshNode":{"properties":{"address":{"type":"string"},"name":{"type":"string"},"port":{"type":"integer"}},"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"},"agentSocket":{"type":"string"},"nodes":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/ProviderSshNode:ProviderSshNode"}},"password":{"type":"string","secret":true},"username":{"type":"string"}},"type":"object"},"proxmoxve:index/ProviderSshNode:ProviderSshNode":{"properties":{"address":{"type":"string"},"name":{"type":"string"},"port":{"type":"integer"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredOutputs":[]}}},"proxmoxve:index/getHostsEntry:getHostsEntry":{"properties":{"address":{"type":"string"},"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":[]}}}},"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},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\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},"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},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\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},"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:CT/container:Container":{"description":"Manages a container.\n\n\n## Import\n\nInstances can be imported using the `node_name` and the `vm_id`, e.g., bash\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":"Console.\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 features\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"},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host system boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\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"},"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"],"inputProperties":{"clone":{"$ref":"#/types/proxmoxve:CT/ContainerClone:ContainerClone","description":"The cloning configuration.\n"},"console":{"$ref":"#/types/proxmoxve:CT/ContainerConsole:ContainerConsole","description":"Console.\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 features\n","willReplaceOnChanges":true},"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},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host system boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\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},"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","willReplaceOnChanges":true}},"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":"Console.\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 features\n","willReplaceOnChanges":true},"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},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host system boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\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},"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","willReplaceOnChanges":true}},"type":"object"}},"proxmoxve:Network/firewall:Firewall":{"description":"Manages firewall options on the cluster level.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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=proxmoxve.network.FirewallLogRatelimitArgs(\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/v5/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{{% /example %}}\n{{% /examples %}}\n## Important Notes\n\nBe careful not to use this resource multiple times for the same node.\n\n\n## Import\n\nInstances can be imported without an ID, but you still need to pass one, e.g., bash\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 log rate limit.\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 log rate limit.\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 log rate limit.\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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 Terraform\",\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 Terraform\",\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 Terraform\")\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 Terraform\",\n }, new CustomResourceOptions\n {\n DependsOn = new[]\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 Terraform\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/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 Terraform\"),\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 Terraform\"),\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 Terraform\")\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 Terraform\")\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 Terraform\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 Terraform\n```\n{{% /example %}}\n{{% /examples %}}","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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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 Terraform\",\n cidrs=[\n proxmoxve.network.FirewallIPSetCidrArgs(\n name=\"192.168.0.0/23\",\n comment=\"Local network 1\",\n ),\n proxmoxve.network.FirewallIPSetCidrArgs(\n name=\"192.168.0.1\",\n comment=\"Server 1\",\n nomatch=True,\n ),\n proxmoxve.network.FirewallIPSetCidrArgs(\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 Terraform\",\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 = new[]\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/v5/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 Terraform\"),\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 Terraform\")\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 Terraform\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{{% /example %}}\n{{% /examples %}}","properties":{"cidrs":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallIPSetCidr:FirewallIPSetCidr"},"description":"IP/CIDR block (multiple blocks supported).\n"},"comment":{"type":"string","description":"Arbitrary string annotation.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Network/IP specification in CIDR format.\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":"Arbitrary string annotation.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Network/IP specification in CIDR format.\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":"Arbitrary string annotation.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Network/IP specification in CIDR format.\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 = new[]\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/v5/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{{% /example %}}\n{{% /examples %}}","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`, `debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`, `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`, `debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`, `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`, `debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`, `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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 proxmoxve.network.FirewallRulesRuleArgs(\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 proxmoxve.network.FirewallRulesRuleArgs(\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 proxmoxve.network.FirewallRulesRuleArgs(\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 = new[]\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/v5/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{{% /example %}}\n{{% /examples %}}","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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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 Terraform\",\n rules=[\n proxmoxve.network.FirewallSecurityGroupRuleArgs(\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 proxmoxve.network.FirewallSecurityGroupRuleArgs(\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 Terraform\",\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/v5/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 Terraform\"),\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 Terraform\")\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 Terraform\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `name`, e.g., bash\n\n```sh\n $ pulumi import proxmoxve:Network/firewallSecurityGroup:FirewallSecurityGroup webserver webserver\n```\n\n ","properties":{"comment":{"type":"string","description":"Rule 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":"Rule 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":"Rule 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:Permission/group:Group":{"description":"Manages a user group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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 Terraform\",\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 Terraform\",\n GroupId = \"operations-team\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/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 Terraform\"),\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 Terraform\")\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 Terraform\n groupId: operations-team\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `group_id`, e.g., bash\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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 Terraform\",\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 Terraform\",\n PoolId = \"operations-pool\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/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 Terraform\"),\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 Terraform\")\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 Terraform\n poolId: operations-pool\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `pool_id`, e.g., bash\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `role_id`, e.g., bash\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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=[proxmoxve.permission.UserAclArgs(\n path=\"/vms/1234\",\n propagate=True,\n role_id=operations_monitoring.role_id,\n )],\n comment=\"Managed by Terraform\",\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 Terraform\",\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/v5/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 Terraform\"),\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 Terraform\")\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 Terraform\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `user_id`, e.g., bash\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"},"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"},"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"},"userId":{"type":"string","description":"The user identifier.\n","willReplaceOnChanges":true}},"type":"object"}},"proxmoxve:Storage/file:File":{"description":"Manages a file.\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\nMake sure the target datastore supports the content type you are uploading. For\nexample, the `snippets` content type can be disabled by default on the `local`\ndatastore.\n\n\n## Import\n\nInstances can be imported using the `node_name`, `datastore_id`, `content_type` and the `file_name` in the following formattext node_name:datastore_id/content_type/file_name Examplebash\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 type will be inferred from the file\nextension. Valid values are:\n"},"datastoreId":{"type":"string","description":"The datastore id.\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`), could be a\nlocal file or a URL. If the source file is a URL, the file will be downloaded\nand 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 type will be inferred from the file\nextension. Valid values are:\n","willReplaceOnChanges":true},"datastoreId":{"type":"string","description":"The datastore id.\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`), could be a\nlocal file or a URL. If the source file is a URL, the file will be downloaded\nand 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 type will be inferred from the file\nextension. Valid values are:\n","willReplaceOnChanges":true},"datastoreId":{"type":"string","description":"The datastore id.\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`), could be a\nlocal file or a URL. If the source file is a URL, the file will be downloaded\nand 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:VM/virtualMachine:VirtualMachine":{"description":"Manages a virtual machine.\n\n## Qemu guest agent\n\nQemu-guest-agent is an application which can be installed inside guest VM, see\n[Proxmox Wiki](https://pve.proxmox.com/wiki/Qemu-guest-agent) and [Proxmox\nDocumentation](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_qemu_agent)\n\nFor VM with `agent.enabled = false`, Proxmox uses ACPI for `Shutdown` and\n`Reboot`, and `qemu-guest-agent` is not needed inside the VM.\n\nSetting `agent.enabled = true` informs Proxmox that the guest agent is expected\nto be *running* inside the VM. Proxmox then uses `qemu-guest-agent` instead of\nACPI to control the VM. If the agent is not running, Proxmox operations\n`Shutdown` and `Reboot` time out and fail. The failing operation gets a lock on\nthe VM, and until the operation times out, other operations like `Stop` and\n`Reboot` cannot be used.\n\nDo **not** run VM with `agent.enabled = true`, unless the VM is configured to\nautomatically **start** `qemu-guest-agent` at some point.\n\n\"Monitor\" tab in Proxmox GUI can be used to send low-level commands to `qemu`.\nSee the [documentation](https://www.qemu.org/docs/master/system/monitor.html).\nCommands `system_powerdown` and `quit` have proven useful in shutting down VMs\nwith `agent.enabled = true` and no agent running.\n\nCloud images usually do not have `qemu-guest-agent` installed. It is possible to\ninstall and *start* it using cloud-init, e.g. using custom `user_data_file_id`\nfile.\n\nThis provider requires `agent.enabled = true` to populate `ipv4_addresses`,\n`ipv6_addresses` and `network_interface_names` output attributes.\n\nSetting `agent.enabled = true` without running `qemu-guest-agent` in the VM will\nalso result in long timeouts when using the provider, both when creating VMs,\nand when refreshing resources. The provider has no way to distinguish between\n\"qemu-guest-agent not installed\" and \"very long boot due to a disk check\", it\ntrusts the user to set `agent.enabled` correctly and waits for\n`qemu-guest-agent` to start.\n\n## Important Notes\n\nWhen cloning an existing virtual machine, whether it's a template or not, the\nresource will only detect changes to the arguments which are not set to their\ndefault values.\n\nFurthermore, when cloning from one node to a different one, the behavior changes\ndepening on the datastores of the source VM. If at least one non-shared\ndatastore is used, the VM is first cloned to the source node before being\nmigrated to the target node. This circumvents a limitation in the Proxmox clone\nAPI.\n\n**Note:** Because the migration step after the clone tries to preserve the used\ndatastores by their name, it may fail if a datastore used in the source VM is\nnot available on the target node (e.g. `local-lvm` is used on the source node in\nthe VM but no `local-lvm` datastore is available on the target node). In this\ncase, it is recommended to set the `datastore_id` argument in the `clone` block\nto force the migration step to migrate all disks to a specific datastore on the\ntarget node. If you need certain disks to be on specific datastores, set\nthe `datastore_id` argument of the disks in the `disks` block to move the disks\nto the correct datastore after the cloning and migrating succeeded.\n\n\n## Import\n\nInstances can be imported using the `node_name` and the `vm_id`, e.g., bash\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"},"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 `i440fx`).\n"},"memory":{"$ref":"#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory","description":"The VGA memory in megabytes (defaults to `16`).\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"},"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\nto.\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults\nto `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults\nto `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"},"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":"Timeout for moving the disk of a VM in\nseconds (defaults to 1800).\n"},"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"},"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"}},"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","willReplaceOnChanges":true},"efiDisk":{"$ref":"#/types/proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk","description":"The efi disk device (required if `bios` is set\nto `ovmf`)\n","willReplaceOnChanges":true},"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"},"machine":{"type":"string","description":"The VM machine type (defaults to `i440fx`).\n"},"memory":{"$ref":"#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory","description":"The VGA memory in megabytes (defaults to `16`).\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"},"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\nto.\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults\nto `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults\nto `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"},"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":"Timeout for moving the disk of a VM in\nseconds (defaults to 1800).\n"},"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"},"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"}},"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","willReplaceOnChanges":true},"efiDisk":{"$ref":"#/types/proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk","description":"The efi disk device (required if `bios` is set\nto `ovmf`)\n","willReplaceOnChanges":true},"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 `i440fx`).\n"},"memory":{"$ref":"#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory","description":"The VGA memory in megabytes (defaults to `16`).\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"},"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\nto.\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults\nto `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults\nto `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"},"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":"Timeout for moving the disk of a VM in\nseconds (defaults to 1800).\n"},"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"},"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"}},"type":"object"}},"proxmoxve:index/certifi:Certifi":{"description":"Manages the custom SSL/TLS certificate for a specific node.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\nimport * as tls from \"@pulumi/tls\";\n\nconst proxmoxVirtualEnvironmentCertificatePrivateKey = new tls.PrivateKey(\"proxmoxVirtualEnvironmentCertificatePrivateKey\", {\n algorithm: \"RSA\",\n rsaBits: 2048,\n});\nconst proxmoxVirtualEnvironmentCertificateSelfSignedCert = new tls.SelfSignedCert(\"proxmoxVirtualEnvironmentCertificateSelfSignedCert\", {\n keyAlgorithm: proxmoxVirtualEnvironmentCertificatePrivateKey.algorithm,\n privateKeyPem: proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem,\n subject: {\n commonName: \"example.com\",\n organization: \"Terraform Provider for Proxmox\",\n },\n validityPeriodHours: 8760,\n allowedUses: [\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n});\nconst example = new proxmoxve.Certifi(\"example\", {\n certificate: proxmoxVirtualEnvironmentCertificateSelfSignedCert.certPem,\n nodeName: \"first-node\",\n privateKey: proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\nimport pulumi_tls as tls\n\nproxmox_virtual_environment_certificate_private_key = tls.PrivateKey(\"proxmoxVirtualEnvironmentCertificatePrivateKey\",\n algorithm=\"RSA\",\n rsa_bits=2048)\nproxmox_virtual_environment_certificate_self_signed_cert = tls.SelfSignedCert(\"proxmoxVirtualEnvironmentCertificateSelfSignedCert\",\n key_algorithm=proxmox_virtual_environment_certificate_private_key.algorithm,\n private_key_pem=proxmox_virtual_environment_certificate_private_key.private_key_pem,\n subject=tls.SelfSignedCertSubjectArgs(\n common_name=\"example.com\",\n organization=\"Terraform Provider for Proxmox\",\n ),\n validity_period_hours=8760,\n allowed_uses=[\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ])\nexample = proxmoxve.Certifi(\"example\",\n certificate=proxmox_virtual_environment_certificate_self_signed_cert.cert_pem,\n node_name=\"first-node\",\n private_key=proxmox_virtual_environment_certificate_private_key.private_key_pem)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\nusing Tls = Pulumi.Tls;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var proxmoxVirtualEnvironmentCertificatePrivateKey = new Tls.PrivateKey(\"proxmoxVirtualEnvironmentCertificatePrivateKey\", new()\n {\n Algorithm = \"RSA\",\n RsaBits = 2048,\n });\n\n var proxmoxVirtualEnvironmentCertificateSelfSignedCert = new Tls.SelfSignedCert(\"proxmoxVirtualEnvironmentCertificateSelfSignedCert\", new()\n {\n KeyAlgorithm = proxmoxVirtualEnvironmentCertificatePrivateKey.Algorithm,\n PrivateKeyPem = proxmoxVirtualEnvironmentCertificatePrivateKey.PrivateKeyPem,\n Subject = new Tls.Inputs.SelfSignedCertSubjectArgs\n {\n CommonName = \"example.com\",\n Organization = \"Terraform Provider for Proxmox\",\n },\n ValidityPeriodHours = 8760,\n AllowedUses = new[]\n {\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n },\n });\n\n var example = new ProxmoxVE.Certifi(\"example\", new()\n {\n Certificate = proxmoxVirtualEnvironmentCertificateSelfSignedCert.CertPem,\n NodeName = \"first-node\",\n PrivateKey = proxmoxVirtualEnvironmentCertificatePrivateKey.PrivateKeyPem,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi-tls/sdk/v4/go/tls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproxmoxVirtualEnvironmentCertificatePrivateKey, err := tls.NewPrivateKey(ctx, \"proxmoxVirtualEnvironmentCertificatePrivateKey\", \u0026tls.PrivateKeyArgs{\n\t\t\tAlgorithm: pulumi.String(\"RSA\"),\n\t\t\tRsaBits: pulumi.Int(2048),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproxmoxVirtualEnvironmentCertificateSelfSignedCert, err := tls.NewSelfSignedCert(ctx, \"proxmoxVirtualEnvironmentCertificateSelfSignedCert\", \u0026tls.SelfSignedCertArgs{\n\t\t\tKeyAlgorithm: proxmoxVirtualEnvironmentCertificatePrivateKey.Algorithm,\n\t\t\tPrivateKeyPem: proxmoxVirtualEnvironmentCertificatePrivateKey.PrivateKeyPem,\n\t\t\tSubject: \u0026tls.SelfSignedCertSubjectArgs{\n\t\t\t\tCommonName: pulumi.String(\"example.com\"),\n\t\t\t\tOrganization: pulumi.String(\"Terraform Provider for Proxmox\"),\n\t\t\t},\n\t\t\tValidityPeriodHours: pulumi.Int(8760),\n\t\t\tAllowedUses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key_encipherment\"),\n\t\t\t\tpulumi.String(\"digital_signature\"),\n\t\t\t\tpulumi.String(\"server_auth\"),\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.NewCertifi(ctx, \"example\", \u0026proxmoxve.CertifiArgs{\n\t\t\tCertificate: proxmoxVirtualEnvironmentCertificateSelfSignedCert.CertPem,\n\t\t\tNodeName: pulumi.String(\"first-node\"),\n\t\t\tPrivateKey: proxmoxVirtualEnvironmentCertificatePrivateKey.PrivateKeyPem,\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.tls.PrivateKey;\nimport com.pulumi.tls.PrivateKeyArgs;\nimport com.pulumi.tls.SelfSignedCert;\nimport com.pulumi.tls.SelfSignedCertArgs;\nimport com.pulumi.tls.inputs.SelfSignedCertSubjectArgs;\nimport com.pulumi.proxmoxve.Certifi;\nimport com.pulumi.proxmoxve.CertifiArgs;\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 proxmoxVirtualEnvironmentCertificatePrivateKey = new PrivateKey(\"proxmoxVirtualEnvironmentCertificatePrivateKey\", PrivateKeyArgs.builder() \n .algorithm(\"RSA\")\n .rsaBits(2048)\n .build());\n\n var proxmoxVirtualEnvironmentCertificateSelfSignedCert = new SelfSignedCert(\"proxmoxVirtualEnvironmentCertificateSelfSignedCert\", SelfSignedCertArgs.builder() \n .keyAlgorithm(proxmoxVirtualEnvironmentCertificatePrivateKey.algorithm())\n .privateKeyPem(proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem())\n .subject(SelfSignedCertSubjectArgs.builder()\n .commonName(\"example.com\")\n .organization(\"Terraform Provider for Proxmox\")\n .build())\n .validityPeriodHours(8760)\n .allowedUses( \n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\")\n .build());\n\n var example = new Certifi(\"example\", CertifiArgs.builder() \n .certificate(proxmoxVirtualEnvironmentCertificateSelfSignedCert.certPem())\n .nodeName(\"first-node\")\n .privateKey(proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem())\n .build());\n\n }\n}\n```\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{{% /example %}}\n{{% /examples %}}","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## Important Notes\n\nBe careful not to use this resource multiple times for the same node.\n\n\n## Import\n\nInstances can be imported using the `node_name`, e.g., bash\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hosts;\nimport com.pulumi.proxmoxve.HostsArgs;\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 firstNodeHostEntries = new Hosts(\"firstNodeHostEntries\", HostsArgs.builder() \n .entries(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\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{{% /example %}}\n{{% /examples %}}\n## Important Notes\n\nBe careful not to use this resource multiple times for the same node.\n\n\n## Import\n\nInstances can be imported using the `node_name`, e.g., bash\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.\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.\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `node_name`, e.g., bash\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"}}},"functions":{"proxmoxve:Cluster/getNodes:getNodes":{"description":"Retrieves information about all available nodes.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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, nil, 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{{% /example %}}\n{{% /examples %}}","outputs":{"description":"A collection of values returned by getNodes.\n","properties":{"cpuCounts":{"type":"array","items":{"type":"integer"},"description":"The CPU count for each node.\n"},"cpuUtilizations":{"type":"array","items":{"type":"number"},"description":"The CPU utilization on each node.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"memoryAvailables":{"type":"array","items":{"type":"integer"},"description":"The memory available on each node.\n"},"memoryUseds":{"type":"array","items":{"type":"integer"},"description":"The memory used on each node.\n"},"names":{"type":"array","items":{"type":"string"},"description":"The node names.\n"},"onlines":{"type":"array","items":{"type":"boolean"},"description":"Whether a node is online.\n"},"sslFingerprints":{"type":"array","items":{"type":"string"},"description":"The SSL fingerprint for each node.\n"},"supportLevels":{"type":"array","items":{"type":"string"},"description":"The support level for each node.\n"},"uptimes":{"type":"array","items":{"type":"integer"},"description":"The uptime in seconds for each node.\n"}},"type":"object","required":["cpuCounts","cpuUtilizations","memoryAvailables","memoryUseds","names","onlines","sslFingerprints","supportLevels","uptimes","id"]}},"proxmoxve:Permission/getGroup:getGroup":{"description":"Retrieves information about a specific user group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","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":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/getGroupAcl:getGroupAcl"},"description":"The access control list.\n"},"comment":{"type":"string","description":"The group comment.\n"},"groupId":{"type":"string"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"members":{"type":"array","items":{"type":"string"},"description":"The group members as a list with `username@realm` entries.\n"}},"type":"object","required":["acls","comment","groupId","members","id"]}},"proxmoxve:Permission/getGroups:getGroups":{"description":"Retrieves basic information about all available user groups.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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, nil, 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{{% /example %}}\n{{% /examples %}}","outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"comments":{"type":"array","items":{"type":"string"},"description":"The group comments.\n"},"groupIds":{"type":"array","items":{"type":"string"},"description":"The group identifiers.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"}},"type":"object","required":["comments","groupIds","id"]}},"proxmoxve:Permission/getPool:getPool":{"description":"Retrieves information about a specific resource pool.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","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":{"type":"string","description":"The pool comment.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"members":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/getPoolMember:getPoolMember"},"description":"The pool members.\n"},"poolId":{"type":"string"}},"type":"object","required":["comment","members","poolId","id"]}},"proxmoxve:Permission/getPools:getPools":{"description":"Retrieves the identifiers for all the available resource pools.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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, nil, 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{{% /example %}}\n{{% /examples %}}","outputs":{"description":"A collection of values returned by getPools.\n","properties":{"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"poolIds":{"type":"array","items":{"type":"string"},"description":"The pool identifiers.\n"}},"type":"object","required":["poolIds","id"]}},"proxmoxve:Permission/getRole:getRole":{"description":"Retrieves information about a specific role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","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":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"privileges":{"type":"array","items":{"type":"string"},"description":"The role privileges\n"},"roleId":{"type":"string"}},"type":"object","required":["privileges","roleId","id"]}},"proxmoxve:Permission/getRoles:getRoles":{"description":"Retrieves information about all the available roles.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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, nil, 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{{% /example %}}\n{{% /examples %}}","outputs":{"description":"A collection of values returned by getRoles.\n","properties":{"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"privileges":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The role privileges.\n"},"roleIds":{"type":"array","items":{"type":"string"},"description":"The role identifiers.\n"},"specials":{"type":"array","items":{"type":"boolean"},"description":"Whether the role is special (built-in).\n"}},"type":"object","required":["privileges","roleIds","specials","id"]}},"proxmoxve:Permission/getUser:getUser":{"description":"Retrieves information about a specific user.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","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":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/getUserAcl:getUserAcl"},"description":"The access control list.\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"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"keys":{"type":"string","description":"The user's keys.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"userId":{"type":"string"}},"type":"object","required":["acls","comment","email","enabled","expirationDate","firstName","groups","keys","lastName","userId","id"]}},"proxmoxve:Permission/getUsers:getUsers":{"description":"Retrieves information about all the available users.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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, nil, 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{{% /example %}}\n{{% /examples %}}","outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"comments":{"type":"array","items":{"type":"string"},"description":"The user comments.\n"},"emails":{"type":"array","items":{"type":"string"},"description":"The users' email addresses.\n"},"enableds":{"type":"array","items":{"type":"boolean"},"description":"Whether a user account is enabled.\n"},"expirationDates":{"type":"array","items":{"type":"string"},"description":"The user accounts' expiration dates (RFC 3339).\n"},"firstNames":{"type":"array","items":{"type":"string"},"description":"The users' first names.\n"},"groups":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The users' groups.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"keys":{"type":"array","items":{"type":"string"},"description":"The users' keys.\n"},"lastNames":{"type":"array","items":{"type":"string"},"description":"The users' last names.\n"},"userIds":{"type":"array","items":{"type":"string"},"description":"The user identifiers.\n"}},"type":"object","required":["comments","emails","enableds","expirationDates","firstNames","groups","keys","lastNames","userIds","id"]}},"proxmoxve:Storage/getDatastores:getDatastores":{"description":"Retrieves information about all the datastores available to a specific node.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","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":{"type":"array","items":{"type":"boolean"},"description":"Whether the datastore is active.\n"},"contentTypes":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The allowed content types.\n"},"datastoreIds":{"type":"array","items":{"type":"string"},"description":"The datastore identifiers.\n"},"enableds":{"type":"array","items":{"type":"boolean"},"description":"Whether the datastore is enabled.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"nodeName":{"type":"string"},"shareds":{"type":"array","items":{"type":"boolean"},"description":"Whether the datastore is shared.\n"},"spaceAvailables":{"type":"array","items":{"type":"integer"},"description":"The available space in bytes.\n"},"spaceTotals":{"type":"array","items":{"type":"integer"},"description":"The total space in bytes.\n"},"spaceUseds":{"type":"array","items":{"type":"integer"},"description":"The used space in bytes.\n"},"types":{"type":"array","items":{"type":"string"},"description":"The storage types.\n"}},"type":"object","required":["actives","contentTypes","datastoreIds","enableds","nodeName","shareds","spaceAvailables","spaceTotals","spaceUseds","types","id"]}},"proxmoxve:VM/getVirtualMachine:getVirtualMachine":{"description":"Retrieves information about a specific VM.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","inputs":{"description":"A collection of arguments for invoking getVirtualMachine.\n","properties":{"nodeName":{"type":"string","description":"The node name.\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":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"name":{"type":"string","description":"The virtual machine name.\n"},"nodeName":{"type":"string"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags of the VM.\n"},"vmId":{"type":"integer"}},"type":"object","required":["name","nodeName","tags","vmId","id"]}},"proxmoxve:VM/getVirtualMachines:getVirtualMachines":{"description":"Retrieves information about all VMs in the Proxmox cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst ubuntuVms = proxmoxve.VM.getVirtualMachines({\n tags: [\"ubuntu\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nubuntu_vms = proxmoxve.VM.get_virtual_machines(tags=[\"ubuntu\"])\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});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/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\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 }\n}\n```\n```yaml\nvariables:\n ubuntuVms:\n fn::invoke:\n Function: proxmoxve:VM:getVirtualMachines\n Arguments:\n tags:\n - ubuntu\n```\n{{% /example %}}\n{{% /examples %}}","inputs":{"description":"A collection of arguments for invoking getVirtualMachines.\n","properties":{"nodeName":{"type":"string","description":"The node name.\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":{"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags of the VM.\n"},"vms":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/getVirtualMachinesVm:getVirtualMachinesVm"},"description":"The VMs list.\n"}},"type":"object","required":["vms","id"]}},"proxmoxve:index/getDNS:getDNS":{"description":"Retrieves the DNS configuration for a specific node.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNode = proxmoxve.getDNS({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node = proxmoxve.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.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/v5/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.LookupDNS(ctx, \u0026proxmoxve.LookupDNSArgs{\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.ProxmoxveFunctions;\nimport com.pulumi.proxmoxve.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 = ProxmoxveFunctions.getDNS(GetDNSArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNode:\n fn::invoke:\n Function: proxmoxve:getDNS\n Arguments:\n nodeName: first-node\n```\n{{% /example %}}\n{{% /examples %}}","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":{"type":"string","description":"The DNS search domain.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"nodeName":{"type":"string"},"servers":{"type":"array","items":{"type":"string"},"description":"The DNS servers.\n"}},"type":"object","required":["domain","nodeName","servers","id"]}},"proxmoxve:index/getHosts:getHosts":{"description":"Retrieves all the host entries from a specific node.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeHostEntries = proxmoxve.getHosts({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_host_entries = proxmoxve.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.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/v5/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.LookupHosts(ctx, \u0026proxmoxve.LookupHostsArgs{\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.ProxmoxveFunctions;\nimport com.pulumi.proxmoxve.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 = ProxmoxveFunctions.getHosts(GetHostsArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeHostEntries:\n fn::invoke:\n Function: proxmoxve:getHosts\n Arguments:\n nodeName: first-node\n```\n{{% /example %}}\n{{% /examples %}}","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":{"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/getHostsEntry:getHostsEntry"},"description":"The host entries (conversion of `addresses` and `hostnames` into\nobjects).\n"},"hostnames":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The hostnames associated with each of the IP addresses.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"nodeName":{"type":"string"}},"type":"object","required":["addresses","digest","entries","hostnames","nodeName","id"]}},"proxmoxve:index/getTime:getTime":{"description":"Retrieves the current time for a specific node.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeTime = proxmoxve.getTime({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_time = proxmoxve.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.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/v5/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.LookupTime(ctx, \u0026proxmoxve.LookupTimeArgs{\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.ProxmoxveFunctions;\nimport com.pulumi.proxmoxve.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 = ProxmoxveFunctions.getTime(GetTimeArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeTime:\n fn::invoke:\n Function: proxmoxve:getTime\n Arguments:\n nodeName: first-node\n```\n{{% /example %}}\n{{% /examples %}}","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":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"localTime":{"type":"string","description":"The node's local time.\n"},"nodeName":{"type":"string"},"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","required":["localTime","nodeName","timeZone","utcTime","id"]}}}} \ No newline at end of file +{"name":"proxmoxve","displayName":"Proxmox Virtual Environment (Proxmox VE)","version":"5.16.0-alpha.1699775609+68672feb.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/v5/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":{"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},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\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},"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:CT/ContainerClone:ContainerClone":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create the\ndisk in (defaults to `local`).\n","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The name of the node to assign the container to.\n","willReplaceOnChanges":true},"vmId":{"type":"integer","description":"The container identifier\n","willReplaceOnChanges":true}},"type":"object","required":["vmId"]},"proxmoxve:CT/ContainerConsole:ContainerConsole":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the network device (defaults\nto `true`).\n"},"ttyCount":{"type":"integer","description":"The number of available TTY (defaults to `2`).\n"},"type":{"type":"string","description":"The type (defaults to `unmanaged`).\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":"Volume size (only for ZFS storage backed mount points).\nCan be specified with a unit suffix (e.g. `10G`).\n","willReplaceOnChanges":true}},"type":"object"},"proxmoxve:CT/ContainerFeatures:ContainerFeatures":{"properties":{"fuse":{"type":"boolean","description":"Whether the container supports FUSE mounts (defaults\nto `false`)\n","willReplaceOnChanges":true},"keyctl":{"type":"boolean","description":"Whether the container supports `keyctl()` system\ncall (defaults to `false`)\n","willReplaceOnChanges":true},"nesting":{"type":"boolean","description":"Whether the container is nested (defaults\nto `false`)\n","willReplaceOnChanges":true}},"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.\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 IPv6 address (use `dhcp` for\nautodiscovery).\n"},"gateway":{"type":"string","description":"The IPv6 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\nautodiscovery).\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).\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 ZFS storage backed 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.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type (defaults to `unmanaged`).\n"}},"type":"object","required":["templateFileId"]},"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 (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 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 and\nIPv6 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 several\nports 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 https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions\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 and\nIPv6 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 several\nports 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 definition.\nYou can also specify an address range like `20.34.101.207-201.3.9.99`, or\na list of IP addresses and networks (entries are separated by comma).\nPlease do not mix IPv4 and 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 in '/etc/services'.\nPort ranges can be specified with '\\d+:\\d+', for example `80:85`, and\nyou can use comma separated list to match several ports or ranges.\n"},"enabled":{"type":"boolean"},"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 https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions\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","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 addresses\ninside 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/services'.\nPort ranges can be specified with '\\d+:\\d+', for example `80:85`, and\nyou can use comma separated list to match several ports or ranges.\n"},"type":{"type":"string","description":"Rule type (`in`, `out`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["pos"]}}},"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","willReplaceOnChanges":true},"checksum":{"type":"string","description":"The SHA256 checksum of the source file.\n","willReplaceOnChanges":true},"fileName":{"type":"string","description":"The file name.\n","willReplaceOnChanges":true},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step for\nHTTPS sources (defaults to `false`).\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/VirtualMachineAgent:VirtualMachineAgent":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the VGA device (defaults\nto `true`).\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 VGA type (defaults to `std`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineAudioDevice:VirtualMachineAudioDevice":{"properties":{"device":{"type":"string","description":"The device (defaults to `socket`).\n- `/dev/*` - A host serial device.\n"},"driver":{"type":"string","description":"The driver (defaults to `spice`).\n"},"enabled":{"type":"boolean","description":"Whether to enable the VGA device (defaults\nto `true`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineCdrom:VirtualMachineCdrom":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the VGA device (defaults\nto `true`).\n"},"fileId":{"type":"string","description":"The file ID for a disk image (experimental -\nmight cause high CPU utilization during import, especially with large\ndisk images).\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"}},"type":"object"},"proxmoxve:VM/VirtualMachineClone:VirtualMachineClone":{"properties":{"datastoreId":{"type":"string","description":"The identifier for the datastore to create the\ncloud-init disk in (defaults to `local-lvm`).\n","willReplaceOnChanges":true},"full":{"type":"boolean","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The name of the node to assign the virtual machine\nto.\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 VM identifier.\n","willReplaceOnChanges":true}},"type":"object","required":["vmId"]},"proxmoxve:VM/VirtualMachineCpu:VirtualMachineCpu":{"properties":{"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"},"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 VGA type (defaults to `std`).\n"},"units":{"type":"integer","description":"The CPU units (defaults to `1024`).\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineDisk:VirtualMachineDisk":{"properties":{"cache":{"type":"string","description":"The cache type (defaults to `none`).\n"},"datastoreId":{"type":"string","description":"The identifier for the datastore to create the\ncloud-init 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.\n","willReplaceOnChanges":true},"fileId":{"type":"string","description":"The file ID for a disk image (experimental -\nmight cause high CPU utilization during import, especially with large\ndisk images).\n","willReplaceOnChanges":true},"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"},"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"},"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":{"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 the\ncloud-init disk in (defaults to `local-lvm`).\n"},"fileFormat":{"type":"string","description":"The file format.\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":"The VGA type (defaults to `std`).\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["fileFormat"]}}},"proxmoxve:VM/VirtualMachineHostpci:VirtualMachineHostpci":{"properties":{"device":{"type":"string","description":"The device (defaults to `socket`).\n- `/dev/*` - A host serial device.\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 usbdevice. 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 VGA type (defaults to `std`).\n","willReplaceOnChanges":true},"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"},"proxmoxve:VM/VirtualMachineInitializationDns:VirtualMachineInitializationDns":{"properties":{"domain":{"type":"string","description":"The DNS search domain.\n"},"server":{"type":"string","description":"The DNS server.\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 IPv4 configuration.\n"}},"type":"object"},"proxmoxve:VM/VirtualMachineInitializationIpConfigIpv4:VirtualMachineInitializationIpConfigIpv4":{"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/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\nto `512`).\n"},"floating":{"type":"integer","description":"The floating memory in megabytes (defaults\nto `0`).\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\nto `vmbr0`).\n"},"enabled":{"type":"boolean","description":"Whether to enable the VGA 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"},"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\nMTU. 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"},"vlanId":{"type":"integer","description":"The VLAN identifier.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["macAddress"]}}},"proxmoxve:VM/VirtualMachineOperatingSystem:VirtualMachineOperatingSystem":{"properties":{"type":{"type":"string","description":"The VGA type (defaults to `std`).\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"},"order":{"type":"integer","description":"A non-negative number defining the general startup\norder.\n"},"upDelay":{"type":"integer"}},"type":"object"},"proxmoxve:VM/VirtualMachineUsb:VirtualMachineUsb":{"properties":{"host":{"type":"string","description":"The USB device ID. Use either this or `mapping`.\n"},"mapping":{"type":"string","description":"The resource mapping name of the device, for\nexample usbdevice. Use either this or `id`.\n"},"usb3":{"type":"boolean","description":"Makes the USB device a USB3 device for the VM (defaults\nto `false`).\n"}},"type":"object","required":["host"]},"proxmoxve:VM/VirtualMachineVga:VirtualMachineVga":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the VGA device (defaults\nto `true`).\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/getVirtualMachinesVm:getVirtualMachinesVm":{"properties":{"name":{"type":"string","description":"The virtual machine name.\n"},"nodeName":{"type":"string","description":"The node name.\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"},"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"},"agentSocket":{"type":"string"},"nodes":{"type":"array","items":{"$ref":"#/types/proxmoxve:config/sshNode:sshNode"}},"password":{"type":"string","secret":true},"username":{"type":"string"}},"type":"object"},"proxmoxve:config/sshNode:sshNode":{"properties":{"address":{"type":"string"},"name":{"type":"string"},"port":{"type":"integer"}},"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"},"agentSocket":{"type":"string"},"nodes":{"type":"array","items":{"$ref":"#/types/proxmoxve:index/ProviderSshNode:ProviderSshNode"}},"password":{"type":"string","secret":true},"username":{"type":"string"}},"type":"object"},"proxmoxve:index/ProviderSshNode:ProviderSshNode":{"properties":{"address":{"type":"string"},"name":{"type":"string"},"port":{"type":"integer"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredOutputs":[]}}},"proxmoxve:index/getHostsEntry:getHostsEntry":{"properties":{"address":{"type":"string"},"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":[]}}}},"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},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\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},"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},"endpoint":{"type":"string","description":"The endpoint for the Proxmox VE API.\n"},"insecure":{"type":"boolean","description":"Whether to skip the TLS verification step.\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},"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:CT/container:Container":{"description":"Manages a container.\n\n\n## Import\n\nInstances can be imported using the `node_name` and the `vm_id`, e.g., bash\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":"Console.\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 features\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"},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host system boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\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"},"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"],"inputProperties":{"clone":{"$ref":"#/types/proxmoxve:CT/ContainerClone:ContainerClone","description":"The cloning configuration.\n"},"console":{"$ref":"#/types/proxmoxve:CT/ContainerConsole:ContainerConsole","description":"Console.\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 features\n","willReplaceOnChanges":true},"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},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host system boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\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},"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","willReplaceOnChanges":true}},"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":"Console.\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 features\n","willReplaceOnChanges":true},"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},"startOnBoot":{"type":"boolean","description":"Automatically start container when the host system boots (defaults to `true`).\n"},"started":{"type":"boolean","description":"Whether to start the container (defaults to `true`).\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},"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","willReplaceOnChanges":true}},"type":"object"}},"proxmoxve:Network/firewall:Firewall":{"description":"Manages firewall options on the cluster level.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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=proxmoxve.network.FirewallLogRatelimitArgs(\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/v5/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{{% /example %}}\n{{% /examples %}}\n## Important Notes\n\nBe careful not to use this resource multiple times for the same node.\n\n\n## Import\n\nInstances can be imported without an ID, but you still need to pass one, e.g., bash\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 log rate limit.\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 log rate limit.\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 log rate limit.\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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 Terraform\",\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 Terraform\",\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 Terraform\")\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 Terraform\",\n }, new CustomResourceOptions\n {\n DependsOn = new[]\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 Terraform\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/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 Terraform\"),\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 Terraform\"),\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 Terraform\")\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 Terraform\")\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 Terraform\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 Terraform\n```\n{{% /example %}}\n{{% /examples %}}","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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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 Terraform\",\n cidrs=[\n proxmoxve.network.FirewallIPSetCidrArgs(\n name=\"192.168.0.0/23\",\n comment=\"Local network 1\",\n ),\n proxmoxve.network.FirewallIPSetCidrArgs(\n name=\"192.168.0.1\",\n comment=\"Server 1\",\n nomatch=True,\n ),\n proxmoxve.network.FirewallIPSetCidrArgs(\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 Terraform\",\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 = new[]\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/v5/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 Terraform\"),\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 Terraform\")\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 Terraform\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{{% /example %}}\n{{% /examples %}}","properties":{"cidrs":{"type":"array","items":{"$ref":"#/types/proxmoxve:Network/FirewallIPSetCidr:FirewallIPSetCidr"},"description":"IP/CIDR block (multiple blocks supported).\n"},"comment":{"type":"string","description":"Arbitrary string annotation.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Network/IP specification in CIDR format.\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":"Arbitrary string annotation.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Network/IP specification in CIDR format.\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":"Arbitrary string annotation.\n"},"containerId":{"type":"integer","description":"Container ID. Leave empty for cluster level aliases.\n"},"name":{"type":"string","description":"Network/IP specification in CIDR format.\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 = new[]\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/v5/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{{% /example %}}\n{{% /examples %}}","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`, `debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`, `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`, `debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`, `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`, `debug`, `nolog`).\n"},"logLevelOut":{"type":"string","description":"Log level for outgoing\npackets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`, `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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 proxmoxve.network.FirewallRulesRuleArgs(\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 proxmoxve.network.FirewallRulesRuleArgs(\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 proxmoxve.network.FirewallRulesRuleArgs(\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 = new[]\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/v5/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{{% /example %}}\n{{% /examples %}}","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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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 Terraform\",\n rules=[\n proxmoxve.network.FirewallSecurityGroupRuleArgs(\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 proxmoxve.network.FirewallSecurityGroupRuleArgs(\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 Terraform\",\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/v5/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 Terraform\"),\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 Terraform\")\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 Terraform\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `name`, e.g., bash\n\n```sh\n $ pulumi import proxmoxve:Network/firewallSecurityGroup:FirewallSecurityGroup webserver webserver\n```\n\n ","properties":{"comment":{"type":"string","description":"Rule 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":"Rule 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":"Rule 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:Permission/group:Group":{"description":"Manages a user group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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 Terraform\",\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 Terraform\",\n GroupId = \"operations-team\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/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 Terraform\"),\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 Terraform\")\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 Terraform\n groupId: operations-team\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `group_id`, e.g., bash\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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 Terraform\",\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 Terraform\",\n PoolId = \"operations-pool\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/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 Terraform\"),\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 Terraform\")\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 Terraform\n poolId: operations-pool\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `pool_id`, e.g., bash\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `role_id`, e.g., bash\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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 Terraform\",\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=[proxmoxve.permission.UserAclArgs(\n path=\"/vms/1234\",\n propagate=True,\n role_id=operations_monitoring.role_id,\n )],\n comment=\"Managed by Terraform\",\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 Terraform\",\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/v5/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 Terraform\"),\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 Terraform\")\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 Terraform\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `user_id`, e.g., bash\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"},"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"},"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"},"userId":{"type":"string","description":"The user identifier.\n","willReplaceOnChanges":true}},"type":"object"}},"proxmoxve:Storage/file:File":{"description":"Manages a file.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Backups\n\n\u003e **Note:** 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```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst backup = new proxmoxve.storage.File(\"backup\", {\n contentType: \"backup\",\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=\"backup\",\n datastore_id=\"local\",\n node_name=\"pve\",\n source_file=proxmoxve.storage.FileSourceFileArgs(\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 = \"backup\",\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/v5/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(\"backup\"),\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(\"backup\")\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: backup\n datastoreId: local\n nodeName: pve\n sourceFile:\n path: vzdump-lxc-100-2023_11_08-23_10_05.tar\n```\n{{% /example %}}\n{{% example %}}\n### Images\n\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=proxmoxve.storage.FileSourceFileArgs(\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/v5/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{{% /example %}}\n{{% example %}}\n### Container Template (`vztmpl`)\n\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=proxmoxve.storage.FileSourceFileArgs(\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/v5/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\n{{% /example %}}\n{{% /examples %}}\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\n## Import\n\nInstances can be imported using the `node_name`, `datastore_id`, `content_type` and the `file_name` in the following formattext node_name:datastore_id/content_type/file_name Examplebash\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 type will be inferred from the file\nextension. Valid values are:\n"},"datastoreId":{"type":"string","description":"The datastore id.\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`), could be a\nlocal file or a URL. If the source file is a URL, the file will be downloaded\nand 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 type will be inferred from the file\nextension. Valid values are:\n","willReplaceOnChanges":true},"datastoreId":{"type":"string","description":"The datastore id.\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`), could be a\nlocal file or a URL. If the source file is a URL, the file will be downloaded\nand 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 type will be inferred from the file\nextension. Valid values are:\n","willReplaceOnChanges":true},"datastoreId":{"type":"string","description":"The datastore id.\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`), could be a\nlocal file or a URL. If the source file is a URL, the file will be downloaded\nand 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: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## Qemu guest agent\n\nQemu-guest-agent is an application which can be installed inside guest VM, see\n[Proxmox Wiki](https://pve.proxmox.com/wiki/Qemu-guest-agent) and [Proxmox\nDocumentation](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_qemu_agent)\n\nFor VM with `agent.enabled = false`, Proxmox uses ACPI for `Shutdown` and\n`Reboot`, and `qemu-guest-agent` is not needed inside the VM.\n\nSetting `agent.enabled = true` informs Proxmox that the guest agent is expected\nto be *running* inside the VM. Proxmox then uses `qemu-guest-agent` instead of\nACPI to control the VM. If the agent is not running, Proxmox operations\n`Shutdown` and `Reboot` time out and fail. The failing operation gets a lock on\nthe VM, and until the operation times out, other operations like `Stop` and\n`Reboot` cannot be used.\n\nDo **not** run VM with `agent.enabled = true`, unless the VM is configured to\nautomatically **start** `qemu-guest-agent` at some point.\n\n\"Monitor\" tab in Proxmox GUI can be used to send low-level commands to `qemu`.\nSee the [documentation](https://www.qemu.org/docs/master/system/monitor.html).\nCommands `system_powerdown` and `quit` have proven useful in shutting down VMs\nwith `agent.enabled = true` and no agent running.\n\nCloud images usually do not have `qemu-guest-agent` installed. It is possible to\ninstall and *start* it using cloud-init, e.g. using custom `user_data_file_id`\nfile.\n\nThis provider requires `agent.enabled = true` to populate `ipv4_addresses`,\n`ipv6_addresses` and `network_interface_names` output attributes.\n\nSetting `agent.enabled = true` without running `qemu-guest-agent` in the VM will\nalso result in long timeouts when using the provider, both when creating VMs,\nand when refreshing resources. The provider has no way to distinguish between\n\"qemu-guest-agent not installed\" and \"very long boot due to a disk check\", it\ntrusts the user to set `agent.enabled` correctly and waits for\n`qemu-guest-agent` to start.\n\n## Important Notes\n\nWhen cloning an existing virtual machine, whether it's a template or not, the\nresource will only detect changes to the arguments which are not set to their\ndefault values.\n\nFurthermore, when cloning from one node to a different one, the behavior changes\ndepening on the datastores of the source VM. If at least one non-shared\ndatastore is used, the VM is first cloned to the source node before being\nmigrated to the target node. This circumvents a limitation in the Proxmox clone\nAPI.\n\n**Note:** Because the migration step after the clone tries to preserve the used\ndatastores by their name, it may fail if a datastore used in the source VM is\nnot available on the target node (e.g. `local-lvm` is used on the source node in\nthe VM but no `local-lvm` datastore is available on the target node). In this\ncase, it is recommended to set the `datastore_id` argument in the `clone` block\nto force the migration step to migrate all disks to a specific datastore on the\ntarget node. If you need certain disks to be on specific datastores, set\nthe `datastore_id` argument of the disks in the `disks` block to move the disks\nto the correct datastore after the cloning and migrating succeeded.\n\n\n## Import\n\nInstances can be imported using the `node_name` and the `vm_id`, e.g., bash\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"},"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 VGA memory in megabytes (defaults to `16`).\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"},"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\nto.\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults\nto `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults\nto `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"},"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":"Timeout for moving the disk of a VM in\nseconds (defaults to 1800).\n"},"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"},"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"}},"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","willReplaceOnChanges":true},"efiDisk":{"$ref":"#/types/proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk","description":"The efi disk device (required if `bios` is set\nto `ovmf`)\n","willReplaceOnChanges":true},"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"},"machine":{"type":"string","description":"The VM machine type (defaults to `pc`).\n"},"memory":{"$ref":"#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory","description":"The VGA memory in megabytes (defaults to `16`).\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"},"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\nto.\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults\nto `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults\nto `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"},"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":"Timeout for moving the disk of a VM in\nseconds (defaults to 1800).\n"},"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"},"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"}},"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","willReplaceOnChanges":true},"efiDisk":{"$ref":"#/types/proxmoxve:VM/VirtualMachineEfiDisk:VirtualMachineEfiDisk","description":"The efi disk device (required if `bios` is set\nto `ovmf`)\n","willReplaceOnChanges":true},"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 VGA memory in megabytes (defaults to `16`).\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"},"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\nto.\n"},"reboot":{"type":"boolean","description":"Reboot the VM after initial creation. (defaults\nto `false`)\n"},"scsiHardware":{"type":"string","description":"The SCSI hardware type (defaults\nto `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"},"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":"Timeout for moving the disk of a VM in\nseconds (defaults to 1800).\n"},"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"},"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"}},"type":"object"}},"proxmoxve:index/certifi:Certifi":{"description":"Manages the custom SSL/TLS certificate for a specific node.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\nimport * as tls from \"@pulumi/tls\";\n\nconst proxmoxVirtualEnvironmentCertificatePrivateKey = new tls.PrivateKey(\"proxmoxVirtualEnvironmentCertificatePrivateKey\", {\n algorithm: \"RSA\",\n rsaBits: 2048,\n});\nconst proxmoxVirtualEnvironmentCertificateSelfSignedCert = new tls.SelfSignedCert(\"proxmoxVirtualEnvironmentCertificateSelfSignedCert\", {\n keyAlgorithm: proxmoxVirtualEnvironmentCertificatePrivateKey.algorithm,\n privateKeyPem: proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem,\n subject: {\n commonName: \"example.com\",\n organization: \"Terraform Provider for Proxmox\",\n },\n validityPeriodHours: 8760,\n allowedUses: [\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n});\nconst example = new proxmoxve.Certifi(\"example\", {\n certificate: proxmoxVirtualEnvironmentCertificateSelfSignedCert.certPem,\n nodeName: \"first-node\",\n privateKey: proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem,\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\nimport pulumi_tls as tls\n\nproxmox_virtual_environment_certificate_private_key = tls.PrivateKey(\"proxmoxVirtualEnvironmentCertificatePrivateKey\",\n algorithm=\"RSA\",\n rsa_bits=2048)\nproxmox_virtual_environment_certificate_self_signed_cert = tls.SelfSignedCert(\"proxmoxVirtualEnvironmentCertificateSelfSignedCert\",\n key_algorithm=proxmox_virtual_environment_certificate_private_key.algorithm,\n private_key_pem=proxmox_virtual_environment_certificate_private_key.private_key_pem,\n subject=tls.SelfSignedCertSubjectArgs(\n common_name=\"example.com\",\n organization=\"Terraform Provider for Proxmox\",\n ),\n validity_period_hours=8760,\n allowed_uses=[\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ])\nexample = proxmoxve.Certifi(\"example\",\n certificate=proxmox_virtual_environment_certificate_self_signed_cert.cert_pem,\n node_name=\"first-node\",\n private_key=proxmox_virtual_environment_certificate_private_key.private_key_pem)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing ProxmoxVE = Pulumi.ProxmoxVE;\nusing Tls = Pulumi.Tls;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var proxmoxVirtualEnvironmentCertificatePrivateKey = new Tls.PrivateKey(\"proxmoxVirtualEnvironmentCertificatePrivateKey\", new()\n {\n Algorithm = \"RSA\",\n RsaBits = 2048,\n });\n\n var proxmoxVirtualEnvironmentCertificateSelfSignedCert = new Tls.SelfSignedCert(\"proxmoxVirtualEnvironmentCertificateSelfSignedCert\", new()\n {\n KeyAlgorithm = proxmoxVirtualEnvironmentCertificatePrivateKey.Algorithm,\n PrivateKeyPem = proxmoxVirtualEnvironmentCertificatePrivateKey.PrivateKeyPem,\n Subject = new Tls.Inputs.SelfSignedCertSubjectArgs\n {\n CommonName = \"example.com\",\n Organization = \"Terraform Provider for Proxmox\",\n },\n ValidityPeriodHours = 8760,\n AllowedUses = new[]\n {\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n },\n });\n\n var example = new ProxmoxVE.Certifi(\"example\", new()\n {\n Certificate = proxmoxVirtualEnvironmentCertificateSelfSignedCert.CertPem,\n NodeName = \"first-node\",\n PrivateKey = proxmoxVirtualEnvironmentCertificatePrivateKey.PrivateKeyPem,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/go/proxmoxve\"\n\t\"github.com/pulumi/pulumi-tls/sdk/v4/go/tls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproxmoxVirtualEnvironmentCertificatePrivateKey, err := tls.NewPrivateKey(ctx, \"proxmoxVirtualEnvironmentCertificatePrivateKey\", \u0026tls.PrivateKeyArgs{\n\t\t\tAlgorithm: pulumi.String(\"RSA\"),\n\t\t\tRsaBits: pulumi.Int(2048),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproxmoxVirtualEnvironmentCertificateSelfSignedCert, err := tls.NewSelfSignedCert(ctx, \"proxmoxVirtualEnvironmentCertificateSelfSignedCert\", \u0026tls.SelfSignedCertArgs{\n\t\t\tKeyAlgorithm: proxmoxVirtualEnvironmentCertificatePrivateKey.Algorithm,\n\t\t\tPrivateKeyPem: proxmoxVirtualEnvironmentCertificatePrivateKey.PrivateKeyPem,\n\t\t\tSubject: \u0026tls.SelfSignedCertSubjectArgs{\n\t\t\t\tCommonName: pulumi.String(\"example.com\"),\n\t\t\t\tOrganization: pulumi.String(\"Terraform Provider for Proxmox\"),\n\t\t\t},\n\t\t\tValidityPeriodHours: pulumi.Int(8760),\n\t\t\tAllowedUses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key_encipherment\"),\n\t\t\t\tpulumi.String(\"digital_signature\"),\n\t\t\t\tpulumi.String(\"server_auth\"),\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.NewCertifi(ctx, \"example\", \u0026proxmoxve.CertifiArgs{\n\t\t\tCertificate: proxmoxVirtualEnvironmentCertificateSelfSignedCert.CertPem,\n\t\t\tNodeName: pulumi.String(\"first-node\"),\n\t\t\tPrivateKey: proxmoxVirtualEnvironmentCertificatePrivateKey.PrivateKeyPem,\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.tls.PrivateKey;\nimport com.pulumi.tls.PrivateKeyArgs;\nimport com.pulumi.tls.SelfSignedCert;\nimport com.pulumi.tls.SelfSignedCertArgs;\nimport com.pulumi.tls.inputs.SelfSignedCertSubjectArgs;\nimport com.pulumi.proxmoxve.Certifi;\nimport com.pulumi.proxmoxve.CertifiArgs;\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 proxmoxVirtualEnvironmentCertificatePrivateKey = new PrivateKey(\"proxmoxVirtualEnvironmentCertificatePrivateKey\", PrivateKeyArgs.builder() \n .algorithm(\"RSA\")\n .rsaBits(2048)\n .build());\n\n var proxmoxVirtualEnvironmentCertificateSelfSignedCert = new SelfSignedCert(\"proxmoxVirtualEnvironmentCertificateSelfSignedCert\", SelfSignedCertArgs.builder() \n .keyAlgorithm(proxmoxVirtualEnvironmentCertificatePrivateKey.algorithm())\n .privateKeyPem(proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem())\n .subject(SelfSignedCertSubjectArgs.builder()\n .commonName(\"example.com\")\n .organization(\"Terraform Provider for Proxmox\")\n .build())\n .validityPeriodHours(8760)\n .allowedUses( \n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\")\n .build());\n\n var example = new Certifi(\"example\", CertifiArgs.builder() \n .certificate(proxmoxVirtualEnvironmentCertificateSelfSignedCert.certPem())\n .nodeName(\"first-node\")\n .privateKey(proxmoxVirtualEnvironmentCertificatePrivateKey.privateKeyPem())\n .build());\n\n }\n}\n```\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{{% /example %}}\n{{% /examples %}}","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## Important Notes\n\nBe careful not to use this resource multiple times for the same node.\n\n\n## Import\n\nInstances can be imported using the `node_name`, e.g., bash\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.proxmoxve.Hosts;\nimport com.pulumi.proxmoxve.HostsArgs;\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 firstNodeHostEntries = new Hosts(\"firstNodeHostEntries\", HostsArgs.builder() \n .entries(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\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{{% /example %}}\n{{% /examples %}}\n## Important Notes\n\nBe careful not to use this resource multiple times for the same node.\n\n\n## Import\n\nInstances can be imported using the `node_name`, e.g., bash\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.\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.\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `node_name`, e.g., bash\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"}}},"functions":{"proxmoxve:Cluster/getNodes:getNodes":{"description":"Retrieves information about all available nodes.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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, nil, 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{{% /example %}}\n{{% /examples %}}","outputs":{"description":"A collection of values returned by getNodes.\n","properties":{"cpuCounts":{"type":"array","items":{"type":"integer"},"description":"The CPU count for each node.\n"},"cpuUtilizations":{"type":"array","items":{"type":"number"},"description":"The CPU utilization on each node.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"memoryAvailables":{"type":"array","items":{"type":"integer"},"description":"The memory available on each node.\n"},"memoryUseds":{"type":"array","items":{"type":"integer"},"description":"The memory used on each node.\n"},"names":{"type":"array","items":{"type":"string"},"description":"The node names.\n"},"onlines":{"type":"array","items":{"type":"boolean"},"description":"Whether a node is online.\n"},"sslFingerprints":{"type":"array","items":{"type":"string"},"description":"The SSL fingerprint for each node.\n"},"supportLevels":{"type":"array","items":{"type":"string"},"description":"The support level for each node.\n"},"uptimes":{"type":"array","items":{"type":"integer"},"description":"The uptime in seconds for each node.\n"}},"type":"object","required":["cpuCounts","cpuUtilizations","memoryAvailables","memoryUseds","names","onlines","sslFingerprints","supportLevels","uptimes","id"]}},"proxmoxve:Permission/getGroup:getGroup":{"description":"Retrieves information about a specific user group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","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":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/getGroupAcl:getGroupAcl"},"description":"The access control list.\n"},"comment":{"type":"string","description":"The group comment.\n"},"groupId":{"type":"string"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"members":{"type":"array","items":{"type":"string"},"description":"The group members as a list with `username@realm` entries.\n"}},"type":"object","required":["acls","comment","groupId","members","id"]}},"proxmoxve:Permission/getGroups:getGroups":{"description":"Retrieves basic information about all available user groups.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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, nil, 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{{% /example %}}\n{{% /examples %}}","outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"comments":{"type":"array","items":{"type":"string"},"description":"The group comments.\n"},"groupIds":{"type":"array","items":{"type":"string"},"description":"The group identifiers.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"}},"type":"object","required":["comments","groupIds","id"]}},"proxmoxve:Permission/getPool:getPool":{"description":"Retrieves information about a specific resource pool.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","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":{"type":"string","description":"The pool comment.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"members":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/getPoolMember:getPoolMember"},"description":"The pool members.\n"},"poolId":{"type":"string"}},"type":"object","required":["comment","members","poolId","id"]}},"proxmoxve:Permission/getPools:getPools":{"description":"Retrieves the identifiers for all the available resource pools.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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, nil, 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{{% /example %}}\n{{% /examples %}}","outputs":{"description":"A collection of values returned by getPools.\n","properties":{"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"poolIds":{"type":"array","items":{"type":"string"},"description":"The pool identifiers.\n"}},"type":"object","required":["poolIds","id"]}},"proxmoxve:Permission/getRole:getRole":{"description":"Retrieves information about a specific role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","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":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"privileges":{"type":"array","items":{"type":"string"},"description":"The role privileges\n"},"roleId":{"type":"string"}},"type":"object","required":["privileges","roleId","id"]}},"proxmoxve:Permission/getRoles:getRoles":{"description":"Retrieves information about all the available roles.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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, nil, 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{{% /example %}}\n{{% /examples %}}","outputs":{"description":"A collection of values returned by getRoles.\n","properties":{"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"privileges":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The role privileges.\n"},"roleIds":{"type":"array","items":{"type":"string"},"description":"The role identifiers.\n"},"specials":{"type":"array","items":{"type":"boolean"},"description":"Whether the role is special (built-in).\n"}},"type":"object","required":["privileges","roleIds","specials","id"]}},"proxmoxve:Permission/getUser:getUser":{"description":"Retrieves information about a specific user.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","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":{"type":"array","items":{"$ref":"#/types/proxmoxve:Permission/getUserAcl:getUserAcl"},"description":"The access control list.\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"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"keys":{"type":"string","description":"The user's keys.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"userId":{"type":"string"}},"type":"object","required":["acls","comment","email","enabled","expirationDate","firstName","groups","keys","lastName","userId","id"]}},"proxmoxve:Permission/getUsers:getUsers":{"description":"Retrieves information about all the available users.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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, nil, 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{{% /example %}}\n{{% /examples %}}","outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"comments":{"type":"array","items":{"type":"string"},"description":"The user comments.\n"},"emails":{"type":"array","items":{"type":"string"},"description":"The users' email addresses.\n"},"enableds":{"type":"array","items":{"type":"boolean"},"description":"Whether a user account is enabled.\n"},"expirationDates":{"type":"array","items":{"type":"string"},"description":"The user accounts' expiration dates (RFC 3339).\n"},"firstNames":{"type":"array","items":{"type":"string"},"description":"The users' first names.\n"},"groups":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The users' groups.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"keys":{"type":"array","items":{"type":"string"},"description":"The users' keys.\n"},"lastNames":{"type":"array","items":{"type":"string"},"description":"The users' last names.\n"},"userIds":{"type":"array","items":{"type":"string"},"description":"The user identifiers.\n"}},"type":"object","required":["comments","emails","enableds","expirationDates","firstNames","groups","keys","lastNames","userIds","id"]}},"proxmoxve:Storage/getDatastores:getDatastores":{"description":"Retrieves information about all the datastores available to a specific node.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","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":{"type":"array","items":{"type":"boolean"},"description":"Whether the datastore is active.\n"},"contentTypes":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The allowed content types.\n"},"datastoreIds":{"type":"array","items":{"type":"string"},"description":"The datastore identifiers.\n"},"enableds":{"type":"array","items":{"type":"boolean"},"description":"Whether the datastore is enabled.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"nodeName":{"type":"string"},"shareds":{"type":"array","items":{"type":"boolean"},"description":"Whether the datastore is shared.\n"},"spaceAvailables":{"type":"array","items":{"type":"integer"},"description":"The available space in bytes.\n"},"spaceTotals":{"type":"array","items":{"type":"integer"},"description":"The total space in bytes.\n"},"spaceUseds":{"type":"array","items":{"type":"integer"},"description":"The used space in bytes.\n"},"types":{"type":"array","items":{"type":"string"},"description":"The storage types.\n"}},"type":"object","required":["actives","contentTypes","datastoreIds","enableds","nodeName","shareds","spaceAvailables","spaceTotals","spaceUseds","types","id"]}},"proxmoxve:VM/getVirtualMachine:getVirtualMachine":{"description":"Retrieves information about a specific VM.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\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/v5/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{{% /example %}}\n{{% /examples %}}","inputs":{"description":"A collection of arguments for invoking getVirtualMachine.\n","properties":{"nodeName":{"type":"string","description":"The node name.\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":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"name":{"type":"string","description":"The virtual machine name.\n"},"nodeName":{"type":"string"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags of the VM.\n"},"vmId":{"type":"integer"}},"type":"object","required":["name","nodeName","tags","vmId","id"]}},"proxmoxve:VM/getVirtualMachines:getVirtualMachines":{"description":"Retrieves information about all VMs in the Proxmox cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst ubuntuVms = proxmoxve.VM.getVirtualMachines({\n tags: [\"ubuntu\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nubuntu_vms = proxmoxve.VM.get_virtual_machines(tags=[\"ubuntu\"])\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});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/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\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 }\n}\n```\n```yaml\nvariables:\n ubuntuVms:\n fn::invoke:\n Function: proxmoxve:VM:getVirtualMachines\n Arguments:\n tags:\n - ubuntu\n```\n{{% /example %}}\n{{% /examples %}}","inputs":{"description":"A collection of arguments for invoking getVirtualMachines.\n","properties":{"nodeName":{"type":"string","description":"The node name.\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":{"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"nodeName":{"type":"string","description":"The node name.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags of the VM.\n"},"vms":{"type":"array","items":{"$ref":"#/types/proxmoxve:VM/getVirtualMachinesVm:getVirtualMachinesVm"},"description":"The VMs list.\n"}},"type":"object","required":["vms","id"]}},"proxmoxve:index/getDNS:getDNS":{"description":"Retrieves the DNS configuration for a specific node.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNode = proxmoxve.getDNS({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node = proxmoxve.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.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/v5/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.LookupDNS(ctx, \u0026proxmoxve.LookupDNSArgs{\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.ProxmoxveFunctions;\nimport com.pulumi.proxmoxve.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 = ProxmoxveFunctions.getDNS(GetDNSArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNode:\n fn::invoke:\n Function: proxmoxve:getDNS\n Arguments:\n nodeName: first-node\n```\n{{% /example %}}\n{{% /examples %}}","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":{"type":"string","description":"The DNS search domain.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"nodeName":{"type":"string"},"servers":{"type":"array","items":{"type":"string"},"description":"The DNS servers.\n"}},"type":"object","required":["domain","nodeName","servers","id"]}},"proxmoxve:index/getHosts:getHosts":{"description":"Retrieves all the host entries from a specific node.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeHostEntries = proxmoxve.getHosts({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_host_entries = proxmoxve.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.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/v5/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.LookupHosts(ctx, \u0026proxmoxve.LookupHostsArgs{\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.ProxmoxveFunctions;\nimport com.pulumi.proxmoxve.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 = ProxmoxveFunctions.getHosts(GetHostsArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeHostEntries:\n fn::invoke:\n Function: proxmoxve:getHosts\n Arguments:\n nodeName: first-node\n```\n{{% /example %}}\n{{% /examples %}}","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":{"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/getHostsEntry:getHostsEntry"},"description":"The host entries (conversion of `addresses` and `hostnames` into\nobjects).\n"},"hostnames":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The hostnames associated with each of the IP addresses.\n"},"id":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"nodeName":{"type":"string"}},"type":"object","required":["addresses","digest","entries","hostnames","nodeName","id"]}},"proxmoxve:index/getTime:getTime":{"description":"Retrieves the current time for a specific node.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@pulumi/proxmoxve\";\n\nconst firstNodeTime = proxmoxve.getTime({\n nodeName: \"first-node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_proxmoxve as proxmoxve\n\nfirst_node_time = proxmoxve.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.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/v5/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.LookupTime(ctx, \u0026proxmoxve.LookupTimeArgs{\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.ProxmoxveFunctions;\nimport com.pulumi.proxmoxve.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 = ProxmoxveFunctions.getTime(GetTimeArgs.builder()\n .nodeName(\"first-node\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n firstNodeTime:\n fn::invoke:\n Function: proxmoxve:getTime\n Arguments:\n nodeName: first-node\n```\n{{% /example %}}\n{{% /examples %}}","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":{"type":"string","description":"The provider-assigned unique ID for this managed resource.\n"},"localTime":{"type":"string","description":"The node's local time.\n"},"nodeName":{"type":"string"},"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","required":["localTime","nodeName","timeZone","utcTime","id"]}}}} \ 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 b4a9df54..7a3782a3 100644 --- a/provider/cmd/pulumi-resource-proxmoxve/schema.json +++ b/provider/cmd/pulumi-resource-proxmoxve/schema.json @@ -1062,7 +1062,7 @@ }, "id": { "type": "string", - "description": "The PCI device ID. Use either this or `mapping`.\n" + "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", @@ -1178,7 +1178,7 @@ "properties": { "address": { "type": "string", - "description": "The IPv6 address (use `dhcp` for\nautodiscovery).\n" + "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", @@ -1191,7 +1191,7 @@ "properties": { "address": { "type": "string", - "description": "The IPv6 address (use `dhcp` for\nautodiscovery).\n" + "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", @@ -2930,7 +2930,7 @@ } }, "proxmoxve:Storage/file:File": { - "description": "Manages a file.\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\nMake sure the target datastore supports the content type you are uploading. For\nexample, the `snippets` content type can be disabled by default on the `local`\ndatastore.\n\n\n## Import\n\nInstances can be imported using the `node_name`, `datastore_id`, `content_type` and the `file_name` in the following formattext node_name:datastore_id/content_type/file_name Examplebash\n\n```sh\n $ pulumi import proxmoxve:Storage/file:File cloud_config pve/local:snippets/example.cloud-config.yaml\n```\n\n ", + "description": "Manages a file.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Backups\n\n\u003e **Note:** 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```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as proxmoxve from \"@muhlba91/pulumi-proxmoxve\";\n\nconst backup = new proxmoxve.storage.File(\"backup\", {\n contentType: \"backup\",\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=\"backup\",\n datastore_id=\"local\",\n node_name=\"pve\",\n source_file=proxmoxve.storage.FileSourceFileArgs(\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 = \"backup\",\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/v5/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(\"backup\"),\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(\"backup\")\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: backup\n datastoreId: local\n nodeName: pve\n sourceFile:\n path: vzdump-lxc-100-2023_11_08-23_10_05.tar\n```\n{{% /example %}}\n{{% example %}}\n### Images\n\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=proxmoxve.storage.FileSourceFileArgs(\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/v5/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{{% /example %}}\n{{% example %}}\n### Container Template (`vztmpl`)\n\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=proxmoxve.storage.FileSourceFileArgs(\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/v5/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\n{{% /example %}}\n{{% /examples %}}\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\n## Import\n\nInstances can be imported using the `node_name`, `datastore_id`, `content_type` and the `file_name` in the following formattext node_name:datastore_id/content_type/file_name Examplebash\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", @@ -3085,7 +3085,7 @@ } }, "proxmoxve:VM/virtualMachine:VirtualMachine": { - "description": "Manages a virtual machine.\n\n## Qemu guest agent\n\nQemu-guest-agent is an application which can be installed inside guest VM, see\n[Proxmox Wiki](https://pve.proxmox.com/wiki/Qemu-guest-agent) and [Proxmox\nDocumentation](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_qemu_agent)\n\nFor VM with `agent.enabled = false`, Proxmox uses ACPI for `Shutdown` and\n`Reboot`, and `qemu-guest-agent` is not needed inside the VM.\n\nSetting `agent.enabled = true` informs Proxmox that the guest agent is expected\nto be *running* inside the VM. Proxmox then uses `qemu-guest-agent` instead of\nACPI to control the VM. If the agent is not running, Proxmox operations\n`Shutdown` and `Reboot` time out and fail. The failing operation gets a lock on\nthe VM, and until the operation times out, other operations like `Stop` and\n`Reboot` cannot be used.\n\nDo **not** run VM with `agent.enabled = true`, unless the VM is configured to\nautomatically **start** `qemu-guest-agent` at some point.\n\n\"Monitor\" tab in Proxmox GUI can be used to send low-level commands to `qemu`.\nSee the [documentation](https://www.qemu.org/docs/master/system/monitor.html).\nCommands `system_powerdown` and `quit` have proven useful in shutting down VMs\nwith `agent.enabled = true` and no agent running.\n\nCloud images usually do not have `qemu-guest-agent` installed. It is possible to\ninstall and *start* it using cloud-init, e.g. using custom `user_data_file_id`\nfile.\n\nThis provider requires `agent.enabled = true` to populate `ipv4_addresses`,\n`ipv6_addresses` and `network_interface_names` output attributes.\n\nSetting `agent.enabled = true` without running `qemu-guest-agent` in the VM will\nalso result in long timeouts when using the provider, both when creating VMs,\nand when refreshing resources. The provider has no way to distinguish between\n\"qemu-guest-agent not installed\" and \"very long boot due to a disk check\", it\ntrusts the user to set `agent.enabled` correctly and waits for\n`qemu-guest-agent` to start.\n\n## Important Notes\n\nWhen cloning an existing virtual machine, whether it's a template or not, the\nresource will only detect changes to the arguments which are not set to their\ndefault values.\n\nFurthermore, when cloning from one node to a different one, the behavior changes\ndepening on the datastores of the source VM. If at least one non-shared\ndatastore is used, the VM is first cloned to the source node before being\nmigrated to the target node. This circumvents a limitation in the Proxmox clone\nAPI.\n\n**Note:** Because the migration step after the clone tries to preserve the used\ndatastores by their name, it may fail if a datastore used in the source VM is\nnot available on the target node (e.g. `local-lvm` is used on the source node in\nthe VM but no `local-lvm` datastore is available on the target node). In this\ncase, it is recommended to set the `datastore_id` argument in the `clone` block\nto force the migration step to migrate all disks to a specific datastore on the\ntarget node. If you need certain disks to be on specific datastores, set\nthe `datastore_id` argument of the disks in the `disks` block to move the disks\nto the correct datastore after the cloning and migrating succeeded.\n\n\n## Import\n\nInstances can be imported using the `node_name` and the `vm_id`, e.g., bash\n\n```sh\n $ pulumi import proxmoxve:VM/virtualMachine:VirtualMachine ubuntu_vm first-node/4321\n```\n\n ", + "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## Qemu guest agent\n\nQemu-guest-agent is an application which can be installed inside guest VM, see\n[Proxmox Wiki](https://pve.proxmox.com/wiki/Qemu-guest-agent) and [Proxmox\nDocumentation](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_qemu_agent)\n\nFor VM with `agent.enabled = false`, Proxmox uses ACPI for `Shutdown` and\n`Reboot`, and `qemu-guest-agent` is not needed inside the VM.\n\nSetting `agent.enabled = true` informs Proxmox that the guest agent is expected\nto be *running* inside the VM. Proxmox then uses `qemu-guest-agent` instead of\nACPI to control the VM. If the agent is not running, Proxmox operations\n`Shutdown` and `Reboot` time out and fail. The failing operation gets a lock on\nthe VM, and until the operation times out, other operations like `Stop` and\n`Reboot` cannot be used.\n\nDo **not** run VM with `agent.enabled = true`, unless the VM is configured to\nautomatically **start** `qemu-guest-agent` at some point.\n\n\"Monitor\" tab in Proxmox GUI can be used to send low-level commands to `qemu`.\nSee the [documentation](https://www.qemu.org/docs/master/system/monitor.html).\nCommands `system_powerdown` and `quit` have proven useful in shutting down VMs\nwith `agent.enabled = true` and no agent running.\n\nCloud images usually do not have `qemu-guest-agent` installed. It is possible to\ninstall and *start* it using cloud-init, e.g. using custom `user_data_file_id`\nfile.\n\nThis provider requires `agent.enabled = true` to populate `ipv4_addresses`,\n`ipv6_addresses` and `network_interface_names` output attributes.\n\nSetting `agent.enabled = true` without running `qemu-guest-agent` in the VM will\nalso result in long timeouts when using the provider, both when creating VMs,\nand when refreshing resources. The provider has no way to distinguish between\n\"qemu-guest-agent not installed\" and \"very long boot due to a disk check\", it\ntrusts the user to set `agent.enabled` correctly and waits for\n`qemu-guest-agent` to start.\n\n## Important Notes\n\nWhen cloning an existing virtual machine, whether it's a template or not, the\nresource will only detect changes to the arguments which are not set to their\ndefault values.\n\nFurthermore, when cloning from one node to a different one, the behavior changes\ndepening on the datastores of the source VM. If at least one non-shared\ndatastore is used, the VM is first cloned to the source node before being\nmigrated to the target node. This circumvents a limitation in the Proxmox clone\nAPI.\n\n**Note:** Because the migration step after the clone tries to preserve the used\ndatastores by their name, it may fail if a datastore used in the source VM is\nnot available on the target node (e.g. `local-lvm` is used on the source node in\nthe VM but no `local-lvm` datastore is available on the target node). In this\ncase, it is recommended to set the `datastore_id` argument in the `clone` block\nto force the migration step to migrate all disks to a specific datastore on the\ntarget node. If you need certain disks to be on specific datastores, set\nthe `datastore_id` argument of the disks in the `disks` block to move the disks\nto the correct datastore after the cloning and migrating succeeded.\n\n\n## Import\n\nInstances can be imported using the `node_name` and the `vm_id`, e.g., bash\n\n```sh\n $ pulumi import proxmoxve:VM/virtualMachine:VirtualMachine ubuntu_vm first-node/4321\n```\n\n ", "properties": { "acpi": { "type": "boolean", @@ -3185,7 +3185,7 @@ }, "machine": { "type": "string", - "description": "The VM machine type (defaults to `i440fx`).\n" + "description": "The VM machine type (defaults to `pc`).\n" }, "memory": { "$ref": "#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory", @@ -3402,7 +3402,7 @@ }, "machine": { "type": "string", - "description": "The VM machine type (defaults to `i440fx`).\n" + "description": "The VM machine type (defaults to `pc`).\n" }, "memory": { "$ref": "#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory", @@ -3636,7 +3636,7 @@ }, "machine": { "type": "string", - "description": "The VM machine type (defaults to `i440fx`).\n" + "description": "The VM machine type (defaults to `pc`).\n" }, "memory": { "$ref": "#/types/proxmoxve:VM/VirtualMachineMemory:VirtualMachineMemory", diff --git a/sdk/dotnet/Storage/File.cs b/sdk/dotnet/Storage/File.cs index 3f4a2ba9..ecb3f0d9 100644 --- a/sdk/dotnet/Storage/File.cs +++ b/sdk/dotnet/Storage/File.cs @@ -12,6 +12,78 @@ namespace Pulumi.ProxmoxVE.Storage /// /// Manages a file. /// + /// ## Example Usage + /// ### Backups + /// + /// > **Note:** The resource with this content type uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var backup = new ProxmoxVE.Storage.File("backup", new() + /// { + /// ContentType = "backup", + /// DatastoreId = "local", + /// NodeName = "pve", + /// SourceFile = new ProxmoxVE.Storage.Inputs.FileSourceFileArgs + /// { + /// Path = "vzdump-lxc-100-2023_11_08-23_10_05.tar", + /// }, + /// }); + /// + /// }); + /// ``` + /// ### Images + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var ubuntuContainerTemplate = new ProxmoxVE.Storage.File("ubuntuContainerTemplate", new() + /// { + /// ContentType = "iso", + /// DatastoreId = "local", + /// NodeName = "pve", + /// SourceFile = new ProxmoxVE.Storage.Inputs.FileSourceFileArgs + /// { + /// Path = "https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img", + /// }, + /// }); + /// + /// }); + /// ``` + /// ### Container Template (`vztmpl`) + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using ProxmoxVE = Pulumi.ProxmoxVE; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var ubuntuContainerTemplate = new ProxmoxVE.Storage.File("ubuntuContainerTemplate", new() + /// { + /// ContentType = "vztmpl", + /// DatastoreId = "local", + /// NodeName = "first-node", + /// SourceFile = new ProxmoxVE.Storage.Inputs.FileSourceFileArgs + /// { + /// Path = "https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz", + /// }, + /// }); + /// + /// }); + /// ``` /// ## Important Notes /// /// The Proxmox VE API endpoint for file uploads does not support chunked transfer @@ -27,10 +99,6 @@ namespace Pulumi.ProxmoxVE.Storage /// the file will be deleted as if it did not exist before. If you want to prevent /// the resource from replacing the file, set `overwrite` to `false`. /// - /// Make sure the target datastore supports the content type you are uploading. For - /// example, the `snippets` content type can be disabled by default on the `local` - /// datastore. - /// /// ## Import /// /// Instances can be imported using the `node_name`, `datastore_id`, `content_type` and the `file_name` in the following formattext node_name:datastore_id/content_type/file_name Examplebash diff --git a/sdk/dotnet/VM/Inputs/VirtualMachineHostpciArgs.cs b/sdk/dotnet/VM/Inputs/VirtualMachineHostpciArgs.cs index 65478774..8c35b9fb 100644 --- a/sdk/dotnet/VM/Inputs/VirtualMachineHostpciArgs.cs +++ b/sdk/dotnet/VM/Inputs/VirtualMachineHostpciArgs.cs @@ -20,7 +20,9 @@ public sealed class VirtualMachineHostpciArgs : global::Pulumi.ResourceArgs public Input Device { get; set; } = null!; /// - /// The PCI device ID. Use either this or `mapping`. + /// The PCI device ID. This parameter is not compatible + /// with `api_token` and requires the root `username` and `password` + /// configured in the proxmox provider. Use either this or `mapping`. /// [Input("id")] public Input? Id { get; set; } diff --git a/sdk/dotnet/VM/Inputs/VirtualMachineHostpciGetArgs.cs b/sdk/dotnet/VM/Inputs/VirtualMachineHostpciGetArgs.cs index 627d148b..c40303ed 100644 --- a/sdk/dotnet/VM/Inputs/VirtualMachineHostpciGetArgs.cs +++ b/sdk/dotnet/VM/Inputs/VirtualMachineHostpciGetArgs.cs @@ -20,7 +20,9 @@ public sealed class VirtualMachineHostpciGetArgs : global::Pulumi.ResourceArgs public Input Device { get; set; } = null!; /// - /// The PCI device ID. Use either this or `mapping`. + /// The PCI device ID. This parameter is not compatible + /// with `api_token` and requires the root `username` and `password` + /// configured in the proxmox provider. Use either this or `mapping`. /// [Input("id")] public Input? Id { get; set; } diff --git a/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv4Args.cs b/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv4Args.cs index 468fc411..fcbf5205 100644 --- a/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv4Args.cs +++ b/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv4Args.cs @@ -13,8 +13,9 @@ namespace Pulumi.ProxmoxVE.VM.Inputs public sealed class VirtualMachineInitializationIpConfigIpv4Args : global::Pulumi.ResourceArgs { /// - /// The IPv6 address (use `dhcp` for - /// autodiscovery). + /// The IPv6 address in CIDR notation + /// (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + /// to `dhcp` for autodiscovery. /// [Input("address")] public Input? Address { get; set; } diff --git a/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv4GetArgs.cs b/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv4GetArgs.cs index 7db2bdf5..fcac637f 100644 --- a/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv4GetArgs.cs +++ b/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv4GetArgs.cs @@ -13,8 +13,9 @@ namespace Pulumi.ProxmoxVE.VM.Inputs public sealed class VirtualMachineInitializationIpConfigIpv4GetArgs : global::Pulumi.ResourceArgs { /// - /// The IPv6 address (use `dhcp` for - /// autodiscovery). + /// The IPv6 address in CIDR notation + /// (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + /// to `dhcp` for autodiscovery. /// [Input("address")] public Input? Address { get; set; } diff --git a/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv6Args.cs b/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv6Args.cs index 282661b4..db98fcd4 100644 --- a/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv6Args.cs +++ b/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv6Args.cs @@ -13,8 +13,9 @@ namespace Pulumi.ProxmoxVE.VM.Inputs public sealed class VirtualMachineInitializationIpConfigIpv6Args : global::Pulumi.ResourceArgs { /// - /// The IPv6 address (use `dhcp` for - /// autodiscovery). + /// The IPv6 address in CIDR notation + /// (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + /// to `dhcp` for autodiscovery. /// [Input("address")] public Input? Address { get; set; } diff --git a/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv6GetArgs.cs b/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv6GetArgs.cs index 0fb0fb96..2584f80c 100644 --- a/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv6GetArgs.cs +++ b/sdk/dotnet/VM/Inputs/VirtualMachineInitializationIpConfigIpv6GetArgs.cs @@ -13,8 +13,9 @@ namespace Pulumi.ProxmoxVE.VM.Inputs public sealed class VirtualMachineInitializationIpConfigIpv6GetArgs : global::Pulumi.ResourceArgs { /// - /// The IPv6 address (use `dhcp` for - /// autodiscovery). + /// The IPv6 address in CIDR notation + /// (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + /// to `dhcp` for autodiscovery. /// [Input("address")] public Input? Address { get; set; } diff --git a/sdk/dotnet/VM/Outputs/VirtualMachineHostpci.cs b/sdk/dotnet/VM/Outputs/VirtualMachineHostpci.cs index ab344755..5ecc4a44 100644 --- a/sdk/dotnet/VM/Outputs/VirtualMachineHostpci.cs +++ b/sdk/dotnet/VM/Outputs/VirtualMachineHostpci.cs @@ -19,7 +19,9 @@ public sealed class VirtualMachineHostpci /// public readonly string Device; /// - /// The PCI device ID. Use either this or `mapping`. + /// The PCI device ID. This parameter is not compatible + /// with `api_token` and requires the root `username` and `password` + /// configured in the proxmox provider. Use either this or `mapping`. /// public readonly string? Id; /// diff --git a/sdk/dotnet/VM/Outputs/VirtualMachineInitializationIpConfigIpv4.cs b/sdk/dotnet/VM/Outputs/VirtualMachineInitializationIpConfigIpv4.cs index 344e9027..a19f5f23 100644 --- a/sdk/dotnet/VM/Outputs/VirtualMachineInitializationIpConfigIpv4.cs +++ b/sdk/dotnet/VM/Outputs/VirtualMachineInitializationIpConfigIpv4.cs @@ -14,8 +14,9 @@ namespace Pulumi.ProxmoxVE.VM.Outputs public sealed class VirtualMachineInitializationIpConfigIpv4 { /// - /// The IPv6 address (use `dhcp` for - /// autodiscovery). + /// The IPv6 address in CIDR notation + /// (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + /// to `dhcp` for autodiscovery. /// public readonly string? Address; /// diff --git a/sdk/dotnet/VM/Outputs/VirtualMachineInitializationIpConfigIpv6.cs b/sdk/dotnet/VM/Outputs/VirtualMachineInitializationIpConfigIpv6.cs index 2f8dc3ed..decfe229 100644 --- a/sdk/dotnet/VM/Outputs/VirtualMachineInitializationIpConfigIpv6.cs +++ b/sdk/dotnet/VM/Outputs/VirtualMachineInitializationIpConfigIpv6.cs @@ -14,8 +14,9 @@ namespace Pulumi.ProxmoxVE.VM.Outputs public sealed class VirtualMachineInitializationIpConfigIpv6 { /// - /// The IPv6 address (use `dhcp` for - /// autodiscovery). + /// The IPv6 address in CIDR notation + /// (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + /// to `dhcp` for autodiscovery. /// public readonly string? Address; /// diff --git a/sdk/dotnet/VM/VirtualMachine.cs b/sdk/dotnet/VM/VirtualMachine.cs index e435e120..fac673af 100644 --- a/sdk/dotnet/VM/VirtualMachine.cs +++ b/sdk/dotnet/VM/VirtualMachine.cs @@ -12,6 +12,8 @@ namespace Pulumi.ProxmoxVE.VM /// /// Manages a virtual machine. /// + /// > This resource uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. + /// /// ## Qemu guest agent /// /// Qemu-guest-agent is an application which can be installed inside guest VM, see @@ -197,7 +199,7 @@ public partial class VirtualMachine : global::Pulumi.CustomResource public Output> MacAddresses { get; private set; } = null!; /// - /// The VM machine type (defaults to `i440fx`). + /// The VM machine type (defaults to `pc`). /// [Output("machine")] public Output Machine { get; private set; } = null!; @@ -555,7 +557,7 @@ public InputList Hostpcis public Input? KvmArguments { get; set; } /// - /// The VM machine type (defaults to `i440fx`). + /// The VM machine type (defaults to `pc`). /// [Input("machine")] public Input? Machine { get; set; } @@ -930,7 +932,7 @@ public InputList MacAddresses } /// - /// The VM machine type (defaults to `i440fx`). + /// The VM machine type (defaults to `pc`). /// [Input("machine")] public Input? Machine { get; set; } diff --git a/sdk/go/proxmoxve/storage/file.go b/sdk/go/proxmoxve/storage/file.go index e961cd4e..b7a0fe6a 100644 --- a/sdk/go/proxmoxve/storage/file.go +++ b/sdk/go/proxmoxve/storage/file.go @@ -15,6 +15,99 @@ import ( // Manages a file. // +// ## Example Usage +// ### Backups +// +// > **Note:** The resource with this content type uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. +// +// ```go +// package main +// +// import ( +// +// "github.com/muhlba91/pulumi-proxmoxve/sdk/v5/go/proxmoxve/Storage" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Storage.NewFile(ctx, "backup", &Storage.FileArgs{ +// ContentType: pulumi.String("backup"), +// DatastoreId: pulumi.String("local"), +// NodeName: pulumi.String("pve"), +// SourceFile: &storage.FileSourceFileArgs{ +// Path: pulumi.String("vzdump-lxc-100-2023_11_08-23_10_05.tar"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Images +// +// ```go +// package main +// +// import ( +// +// "github.com/muhlba91/pulumi-proxmoxve/sdk/v5/go/proxmoxve/Storage" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Storage.NewFile(ctx, "ubuntuContainerTemplate", &Storage.FileArgs{ +// ContentType: pulumi.String("iso"), +// DatastoreId: pulumi.String("local"), +// NodeName: pulumi.String("pve"), +// SourceFile: &storage.FileSourceFileArgs{ +// Path: pulumi.String("https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Container Template (`vztmpl`) +// +// ```go +// package main +// +// import ( +// +// "github.com/muhlba91/pulumi-proxmoxve/sdk/v5/go/proxmoxve/Storage" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Storage.NewFile(ctx, "ubuntuContainerTemplate", &Storage.FileArgs{ +// ContentType: pulumi.String("vztmpl"), +// DatastoreId: pulumi.String("local"), +// NodeName: pulumi.String("first-node"), +// SourceFile: &storage.FileSourceFileArgs{ +// Path: pulumi.String("https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // ## Important Notes // // The Proxmox VE API endpoint for file uploads does not support chunked transfer @@ -30,10 +123,6 @@ import ( // the file will be deleted as if it did not exist before. If you want to prevent // the resource from replacing the file, set `overwrite` to `false`. // -// Make sure the target datastore supports the content type you are uploading. For -// example, the `snippets` content type can be disabled by default on the `local` -// datastore. -// // ## Import // // Instances can be imported using the `node_name`, `datastore_id`, `content_type` and the `file_name` in the following formattext node_name:datastore_id/content_type/file_name Examplebash diff --git a/sdk/go/proxmoxve/vm/pulumiTypes.go b/sdk/go/proxmoxve/vm/pulumiTypes.go index 3a2e6dec..9676d2cb 100644 --- a/sdk/go/proxmoxve/vm/pulumiTypes.go +++ b/sdk/go/proxmoxve/vm/pulumiTypes.go @@ -2026,7 +2026,9 @@ type VirtualMachineHostpci struct { // The device (defaults to `socket`). // - `/dev/*` - A host serial device. Device string `pulumi:"device"` - // The PCI device ID. Use either this or `mapping`. + // The PCI device ID. This parameter is not compatible + // with `apiToken` and requires the root `username` and `password` + // configured in the proxmox provider. Use either this or `mapping`. Id *string `pulumi:"id"` // The resource mapping name of the device, for // example usbdevice. Use either this or `id`. @@ -2063,7 +2065,9 @@ type VirtualMachineHostpciArgs struct { // The device (defaults to `socket`). // - `/dev/*` - A host serial device. Device pulumi.StringInput `pulumi:"device"` - // The PCI device ID. Use either this or `mapping`. + // The PCI device ID. This parameter is not compatible + // with `apiToken` and requires the root `username` and `password` + // configured in the proxmox provider. Use either this or `mapping`. Id pulumi.StringPtrInput `pulumi:"id"` // The resource mapping name of the device, for // example usbdevice. Use either this or `id`. @@ -2160,7 +2164,9 @@ func (o VirtualMachineHostpciOutput) Device() pulumi.StringOutput { return o.ApplyT(func(v VirtualMachineHostpci) string { return v.Device }).(pulumi.StringOutput) } -// The PCI device ID. Use either this or `mapping`. +// The PCI device ID. This parameter is not compatible +// with `apiToken` and requires the root `username` and `password` +// configured in the proxmox provider. Use either this or `mapping`. func (o VirtualMachineHostpciOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineHostpci) *string { return v.Id }).(pulumi.StringPtrOutput) } @@ -2914,8 +2920,9 @@ func (o VirtualMachineInitializationIpConfigArrayOutput) Index(i pulumi.IntInput } type VirtualMachineInitializationIpConfigIpv4 struct { - // The IPv6 address (use `dhcp` for - // autodiscovery). + // The IPv6 address in CIDR notation + // (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + // to `dhcp` for autodiscovery. Address *string `pulumi:"address"` // The IPv6 gateway (must be omitted // when `dhcp` is used as the address). @@ -2934,8 +2941,9 @@ type VirtualMachineInitializationIpConfigIpv4Input interface { } type VirtualMachineInitializationIpConfigIpv4Args struct { - // The IPv6 address (use `dhcp` for - // autodiscovery). + // The IPv6 address in CIDR notation + // (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + // to `dhcp` for autodiscovery. Address pulumi.StringPtrInput `pulumi:"address"` // The IPv6 gateway (must be omitted // when `dhcp` is used as the address). @@ -3037,8 +3045,9 @@ func (o VirtualMachineInitializationIpConfigIpv4Output) ToOutput(ctx context.Con } } -// The IPv6 address (use `dhcp` for -// autodiscovery). +// The IPv6 address in CIDR notation +// (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this +// to `dhcp` for autodiscovery. func (o VirtualMachineInitializationIpConfigIpv4Output) Address() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineInitializationIpConfigIpv4) *string { return v.Address }).(pulumi.StringPtrOutput) } @@ -3079,8 +3088,9 @@ func (o VirtualMachineInitializationIpConfigIpv4PtrOutput) Elem() VirtualMachine }).(VirtualMachineInitializationIpConfigIpv4Output) } -// The IPv6 address (use `dhcp` for -// autodiscovery). +// The IPv6 address in CIDR notation +// (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this +// to `dhcp` for autodiscovery. func (o VirtualMachineInitializationIpConfigIpv4PtrOutput) Address() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineInitializationIpConfigIpv4) *string { if v == nil { @@ -3102,8 +3112,9 @@ func (o VirtualMachineInitializationIpConfigIpv4PtrOutput) Gateway() pulumi.Stri } type VirtualMachineInitializationIpConfigIpv6 struct { - // The IPv6 address (use `dhcp` for - // autodiscovery). + // The IPv6 address in CIDR notation + // (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + // to `dhcp` for autodiscovery. Address *string `pulumi:"address"` // The IPv6 gateway (must be omitted // when `dhcp` is used as the address). @@ -3122,8 +3133,9 @@ type VirtualMachineInitializationIpConfigIpv6Input interface { } type VirtualMachineInitializationIpConfigIpv6Args struct { - // The IPv6 address (use `dhcp` for - // autodiscovery). + // The IPv6 address in CIDR notation + // (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + // to `dhcp` for autodiscovery. Address pulumi.StringPtrInput `pulumi:"address"` // The IPv6 gateway (must be omitted // when `dhcp` is used as the address). @@ -3225,8 +3237,9 @@ func (o VirtualMachineInitializationIpConfigIpv6Output) ToOutput(ctx context.Con } } -// The IPv6 address (use `dhcp` for -// autodiscovery). +// The IPv6 address in CIDR notation +// (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this +// to `dhcp` for autodiscovery. func (o VirtualMachineInitializationIpConfigIpv6Output) Address() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineInitializationIpConfigIpv6) *string { return v.Address }).(pulumi.StringPtrOutput) } @@ -3267,8 +3280,9 @@ func (o VirtualMachineInitializationIpConfigIpv6PtrOutput) Elem() VirtualMachine }).(VirtualMachineInitializationIpConfigIpv6Output) } -// The IPv6 address (use `dhcp` for -// autodiscovery). +// The IPv6 address in CIDR notation +// (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this +// to `dhcp` for autodiscovery. func (o VirtualMachineInitializationIpConfigIpv6PtrOutput) Address() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineInitializationIpConfigIpv6) *string { if v == nil { diff --git a/sdk/go/proxmoxve/vm/virtualMachine.go b/sdk/go/proxmoxve/vm/virtualMachine.go index 88788628..6aaa41e4 100644 --- a/sdk/go/proxmoxve/vm/virtualMachine.go +++ b/sdk/go/proxmoxve/vm/virtualMachine.go @@ -15,6 +15,8 @@ import ( // Manages a virtual machine. // +// > This resource uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. +// // ## Qemu guest agent // // Qemu-guest-agent is an application which can be installed inside guest VM, see @@ -128,7 +130,7 @@ type VirtualMachine struct { // The MAC addresses published by the QEMU agent with fallback // to the network device configuration, if the agent is disabled MacAddresses pulumi.StringArrayOutput `pulumi:"macAddresses"` - // The VM machine type (defaults to `i440fx`). + // The VM machine type (defaults to `pc`). Machine pulumi.StringPtrOutput `pulumi:"machine"` // The VGA memory in megabytes (defaults to `16`). Memory VirtualMachineMemoryPtrOutput `pulumi:"memory"` @@ -285,7 +287,7 @@ type virtualMachineState struct { // The MAC addresses published by the QEMU agent with fallback // to the network device configuration, if the agent is disabled MacAddresses []string `pulumi:"macAddresses"` - // The VM machine type (defaults to `i440fx`). + // The VM machine type (defaults to `pc`). Machine *string `pulumi:"machine"` // The VGA memory in megabytes (defaults to `16`). Memory *VirtualMachineMemory `pulumi:"memory"` @@ -410,7 +412,7 @@ type VirtualMachineState struct { // The MAC addresses published by the QEMU agent with fallback // to the network device configuration, if the agent is disabled MacAddresses pulumi.StringArrayInput - // The VM machine type (defaults to `i440fx`). + // The VM machine type (defaults to `pc`). Machine pulumi.StringPtrInput // The VGA memory in megabytes (defaults to `16`). Memory VirtualMachineMemoryPtrInput @@ -530,7 +532,7 @@ type virtualMachineArgs struct { KeyboardLayout *string `pulumi:"keyboardLayout"` // Arbitrary arguments passed to kvm. KvmArguments *string `pulumi:"kvmArguments"` - // The VM machine type (defaults to `i440fx`). + // The VM machine type (defaults to `pc`). Machine *string `pulumi:"machine"` // The VGA memory in megabytes (defaults to `16`). Memory *VirtualMachineMemory `pulumi:"memory"` @@ -644,7 +646,7 @@ type VirtualMachineArgs struct { KeyboardLayout pulumi.StringPtrInput // Arbitrary arguments passed to kvm. KvmArguments pulumi.StringPtrInput - // The VM machine type (defaults to `i440fx`). + // The VM machine type (defaults to `pc`). Machine pulumi.StringPtrInput // The VGA memory in megabytes (defaults to `16`). Memory VirtualMachineMemoryPtrInput @@ -930,7 +932,7 @@ func (o VirtualMachineOutput) MacAddresses() pulumi.StringArrayOutput { return o.ApplyT(func(v *VirtualMachine) pulumi.StringArrayOutput { return v.MacAddresses }).(pulumi.StringArrayOutput) } -// The VM machine type (defaults to `i440fx`). +// The VM machine type (defaults to `pc`). func (o VirtualMachineOutput) Machine() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachine) pulumi.StringPtrOutput { return v.Machine }).(pulumi.StringPtrOutput) } diff --git a/sdk/java/build.gradle b/sdk/java/build.gradle index 68200666..d1df8254 100644 --- a/sdk/java/build.gradle +++ b/sdk/java/build.gradle @@ -30,6 +30,7 @@ java { compileJava { options.fork = true options.forkOptions.jvmArgs.addAll(["-Xmx16g"]) + options.encoding = "UTF-8" } repositories { @@ -43,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.9.7") + implementation("com.pulumi:pulumi:0.9.8") } task sourcesJar(type: Jar) { diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerClone.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerClone.java index 41c53585..9e1e7d9d 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerClone.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerClone.java @@ -89,11 +89,11 @@ public Builder vmId(Integer vmId) { return this; } public ContainerClone build() { - final var o = new ContainerClone(); - o.datastoreId = datastoreId; - o.nodeName = nodeName; - o.vmId = vmId; - return o; + final var _resultValue = new ContainerClone(); + _resultValue.datastoreId = datastoreId; + _resultValue.nodeName = nodeName; + _resultValue.vmId = vmId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerConsole.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerConsole.java index bbeb3cc4..e4091653 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerConsole.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerConsole.java @@ -90,11 +90,11 @@ public Builder type(@Nullable String type) { return this; } public ContainerConsole build() { - final var o = new ContainerConsole(); - o.enabled = enabled; - o.ttyCount = ttyCount; - o.type = type; - return o; + final var _resultValue = new ContainerConsole(); + _resultValue.enabled = enabled; + _resultValue.ttyCount = ttyCount; + _resultValue.type = type; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerCpu.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerCpu.java index 2a5d0271..f5f89074 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerCpu.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerCpu.java @@ -87,11 +87,11 @@ public Builder units(@Nullable Integer units) { return this; } public ContainerCpu build() { - final var o = new ContainerCpu(); - o.architecture = architecture; - o.cores = cores; - o.units = units; - return o; + final var _resultValue = new ContainerCpu(); + _resultValue.architecture = architecture; + _resultValue.cores = cores; + _resultValue.units = units; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerDisk.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerDisk.java index 42b4cc33..4afde319 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerDisk.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerDisk.java @@ -72,10 +72,10 @@ public Builder size(@Nullable Integer size) { return this; } public ContainerDisk build() { - final var o = new ContainerDisk(); - o.datastoreId = datastoreId; - o.size = size; - return o; + final var _resultValue = new ContainerDisk(); + _resultValue.datastoreId = datastoreId; + _resultValue.size = size; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerFeatures.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerFeatures.java index 9c48efa8..71fb82fe 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerFeatures.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerFeatures.java @@ -92,11 +92,11 @@ public Builder nesting(@Nullable Boolean nesting) { return this; } public ContainerFeatures build() { - final var o = new ContainerFeatures(); - o.fuse = fuse; - o.keyctl = keyctl; - o.nesting = nesting; - return o; + final var _resultValue = new ContainerFeatures(); + _resultValue.fuse = fuse; + _resultValue.keyctl = keyctl; + _resultValue.nesting = nesting; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitialization.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitialization.java index b948dfcf..0309710b 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitialization.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitialization.java @@ -114,12 +114,12 @@ public Builder userAccount(@Nullable ContainerInitializationUserAccount userAcco return this; } public ContainerInitialization build() { - final var o = new ContainerInitialization(); - o.dns = dns; - o.hostname = hostname; - o.ipConfigs = ipConfigs; - o.userAccount = userAccount; - return o; + final var _resultValue = new ContainerInitialization(); + _resultValue.dns = dns; + _resultValue.hostname = hostname; + _resultValue.ipConfigs = ipConfigs; + _resultValue.userAccount = userAccount; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationDns.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationDns.java index e64fd7c9..0789272c 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationDns.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationDns.java @@ -67,10 +67,10 @@ public Builder server(@Nullable String server) { return this; } public ContainerInitializationDns build() { - final var o = new ContainerInitializationDns(); - o.domain = domain; - o.server = server; - return o; + final var _resultValue = new ContainerInitializationDns(); + _resultValue.domain = domain; + _resultValue.server = server; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfig.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfig.java index 4d823df6..d20cb680 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfig.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfig.java @@ -68,10 +68,10 @@ public Builder ipv6(@Nullable ContainerInitializationIpConfigIpv6 ipv6) { return this; } public ContainerInitializationIpConfig build() { - final var o = new ContainerInitializationIpConfig(); - o.ipv4 = ipv4; - o.ipv6 = ipv6; - return o; + final var _resultValue = new ContainerInitializationIpConfig(); + _resultValue.ipv4 = ipv4; + _resultValue.ipv6 = ipv6; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfigIpv4.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfigIpv4.java index 44db0f60..c0440567 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfigIpv4.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfigIpv4.java @@ -71,10 +71,10 @@ public Builder gateway(@Nullable String gateway) { return this; } public ContainerInitializationIpConfigIpv4 build() { - final var o = new ContainerInitializationIpConfigIpv4(); - o.address = address; - o.gateway = gateway; - return o; + final var _resultValue = new ContainerInitializationIpConfigIpv4(); + _resultValue.address = address; + _resultValue.gateway = gateway; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfigIpv6.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfigIpv6.java index 8644b505..2088891f 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfigIpv6.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationIpConfigIpv6.java @@ -71,10 +71,10 @@ public Builder gateway(@Nullable String gateway) { return this; } public ContainerInitializationIpConfigIpv6 build() { - final var o = new ContainerInitializationIpConfigIpv6(); - o.address = address; - o.gateway = gateway; - return o; + final var _resultValue = new ContainerInitializationIpConfigIpv6(); + _resultValue.address = address; + _resultValue.gateway = gateway; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationUserAccount.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationUserAccount.java index 53130edd..15a9fa19 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationUserAccount.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerInitializationUserAccount.java @@ -71,10 +71,10 @@ public Builder password(@Nullable String password) { return this; } public ContainerInitializationUserAccount build() { - final var o = new ContainerInitializationUserAccount(); - o.keys = keys; - o.password = password; - return o; + final var _resultValue = new ContainerInitializationUserAccount(); + _resultValue.keys = keys; + _resultValue.password = password; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerMemory.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerMemory.java index b45f09f3..ed5d5c2e 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerMemory.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerMemory.java @@ -69,10 +69,10 @@ public Builder swap(@Nullable Integer swap) { return this; } public ContainerMemory build() { - final var o = new ContainerMemory(); - o.dedicated = dedicated; - o.swap = swap; - return o; + final var _resultValue = new ContainerMemory(); + _resultValue.dedicated = dedicated; + _resultValue.swap = swap; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerMountPoint.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerMountPoint.java index b66495ef..dc1c3f4d 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerMountPoint.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerMountPoint.java @@ -236,18 +236,18 @@ public Builder volume(String volume) { return this; } public ContainerMountPoint build() { - final var o = new ContainerMountPoint(); - o.acl = acl; - o.backup = backup; - o.mountOptions = mountOptions; - o.path = path; - o.quota = quota; - o.readOnly = readOnly; - o.replicate = replicate; - o.shared = shared; - o.size = size; - o.volume = volume; - return o; + final var _resultValue = new ContainerMountPoint(); + _resultValue.acl = acl; + _resultValue.backup = backup; + _resultValue.mountOptions = mountOptions; + _resultValue.path = path; + _resultValue.quota = quota; + _resultValue.readOnly = readOnly; + _resultValue.replicate = replicate; + _resultValue.shared = shared; + _resultValue.size = size; + _resultValue.volume = volume; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerNetworkInterface.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerNetworkInterface.java index 81feb4ac..664811d9 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerNetworkInterface.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerNetworkInterface.java @@ -192,16 +192,16 @@ public Builder vlanId(@Nullable Integer vlanId) { return this; } public ContainerNetworkInterface build() { - final var o = new ContainerNetworkInterface(); - o.bridge = bridge; - o.enabled = enabled; - o.firewall = firewall; - o.macAddress = macAddress; - o.mtu = mtu; - o.name = name; - o.rateLimit = rateLimit; - o.vlanId = vlanId; - return o; + final var _resultValue = new ContainerNetworkInterface(); + _resultValue.bridge = bridge; + _resultValue.enabled = enabled; + _resultValue.firewall = firewall; + _resultValue.macAddress = macAddress; + _resultValue.mtu = mtu; + _resultValue.name = name; + _resultValue.rateLimit = rateLimit; + _resultValue.vlanId = vlanId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerOperatingSystem.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerOperatingSystem.java index 0898b7c2..4d079272 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerOperatingSystem.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/CT/outputs/ContainerOperatingSystem.java @@ -67,10 +67,10 @@ public Builder type(@Nullable String type) { return this; } public ContainerOperatingSystem build() { - final var o = new ContainerOperatingSystem(); - o.templateFileId = templateFileId; - o.type = type; - return o; + final var _resultValue = new ContainerOperatingSystem(); + _resultValue.templateFileId = templateFileId; + _resultValue.type = type; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Cluster/outputs/GetNodesResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Cluster/outputs/GetNodesResult.java index 517e30da..d72c54cc 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Cluster/outputs/GetNodesResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Cluster/outputs/GetNodesResult.java @@ -248,18 +248,18 @@ public Builder uptimes(Integer... uptimes) { return uptimes(List.of(uptimes)); } public GetNodesResult build() { - final var o = new GetNodesResult(); - o.cpuCounts = cpuCounts; - o.cpuUtilizations = cpuUtilizations; - o.id = id; - o.memoryAvailables = memoryAvailables; - o.memoryUseds = memoryUseds; - o.names = names; - o.onlines = onlines; - o.sslFingerprints = sslFingerprints; - o.supportLevels = supportLevels; - o.uptimes = uptimes; - return o; + final var _resultValue = new GetNodesResult(); + _resultValue.cpuCounts = cpuCounts; + _resultValue.cpuUtilizations = cpuUtilizations; + _resultValue.id = id; + _resultValue.memoryAvailables = memoryAvailables; + _resultValue.memoryUseds = memoryUseds; + _resultValue.names = names; + _resultValue.onlines = onlines; + _resultValue.sslFingerprints = sslFingerprints; + _resultValue.supportLevels = supportLevels; + _resultValue.uptimes = uptimes; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallIPSetCidr.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallIPSetCidr.java index 1fd8a99e..9970585e 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallIPSetCidr.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallIPSetCidr.java @@ -89,11 +89,11 @@ public Builder nomatch(@Nullable Boolean nomatch) { return this; } public FirewallIPSetCidr build() { - final var o = new FirewallIPSetCidr(); - o.comment = comment; - o.name = name; - o.nomatch = nomatch; - return o; + final var _resultValue = new FirewallIPSetCidr(); + _resultValue.comment = comment; + _resultValue.name = name; + _resultValue.nomatch = nomatch; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallLogRatelimit.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallLogRatelimit.java index 0a3a99c6..4baab6fa 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallLogRatelimit.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallLogRatelimit.java @@ -90,11 +90,11 @@ public Builder rate(@Nullable String rate) { return this; } public FirewallLogRatelimit build() { - final var o = new FirewallLogRatelimit(); - o.burst = burst; - o.enabled = enabled; - o.rate = rate; - return o; + final var _resultValue = new FirewallLogRatelimit(); + _resultValue.burst = burst; + _resultValue.enabled = enabled; + _resultValue.rate = rate; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallRulesRule.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallRulesRule.java index f9bc926c..25a6da63 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallRulesRule.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallRulesRule.java @@ -345,22 +345,22 @@ public Builder type(@Nullable String type) { return this; } public FirewallRulesRule build() { - final var o = new FirewallRulesRule(); - o.action = action; - o.comment = comment; - o.dest = dest; - o.dport = dport; - o.enabled = enabled; - o.iface = iface; - o.log = log; - o.macro = macro; - o.pos = pos; - o.proto = proto; - o.securityGroup = securityGroup; - o.source = source; - o.sport = sport; - o.type = type; - return o; + final var _resultValue = new FirewallRulesRule(); + _resultValue.action = action; + _resultValue.comment = comment; + _resultValue.dest = dest; + _resultValue.dport = dport; + _resultValue.enabled = enabled; + _resultValue.iface = iface; + _resultValue.log = log; + _resultValue.macro = macro; + _resultValue.pos = pos; + _resultValue.proto = proto; + _resultValue.securityGroup = securityGroup; + _resultValue.source = source; + _resultValue.sport = sport; + _resultValue.type = type; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallSecurityGroupRule.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallSecurityGroupRule.java index 2dab3919..c9be0cfd 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallSecurityGroupRule.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Network/outputs/FirewallSecurityGroupRule.java @@ -321,22 +321,22 @@ public Builder type(@Nullable String type) { return this; } public FirewallSecurityGroupRule build() { - final var o = new FirewallSecurityGroupRule(); - o.action = action; - o.comment = comment; - o.dest = dest; - o.dport = dport; - o.enabled = enabled; - o.iface = iface; - o.log = log; - o.macro = macro; - o.pos = pos; - o.proto = proto; - o.securityGroup = securityGroup; - o.source = source; - o.sport = sport; - o.type = type; - return o; + final var _resultValue = new FirewallSecurityGroupRule(); + _resultValue.action = action; + _resultValue.comment = comment; + _resultValue.dest = dest; + _resultValue.dport = dport; + _resultValue.enabled = enabled; + _resultValue.iface = iface; + _resultValue.log = log; + _resultValue.macro = macro; + _resultValue.pos = pos; + _resultValue.proto = proto; + _resultValue.securityGroup = securityGroup; + _resultValue.source = source; + _resultValue.sport = sport; + _resultValue.type = type; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupAcl.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupAcl.java index cdc4682c..1ba5e8df 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupAcl.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupAcl.java @@ -85,11 +85,11 @@ public Builder roleId(String roleId) { return this; } public GetGroupAcl build() { - final var o = new GetGroupAcl(); - o.path = path; - o.propagate = propagate; - o.roleId = roleId; - return o; + final var _resultValue = new GetGroupAcl(); + _resultValue.path = path; + _resultValue.propagate = propagate; + _resultValue.roleId = roleId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupResult.java index f6a19d59..6cbe7b00 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupResult.java @@ -122,13 +122,13 @@ public Builder members(String... members) { return members(List.of(members)); } public GetGroupResult build() { - final var o = new GetGroupResult(); - o.acls = acls; - o.comment = comment; - o.groupId = groupId; - o.id = id; - o.members = members; - return o; + final var _resultValue = new GetGroupResult(); + _resultValue.acls = acls; + _resultValue.comment = comment; + _resultValue.groupId = groupId; + _resultValue.id = id; + _resultValue.members = members; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupsResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupsResult.java index 158a7ebc..b9080cac 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupsResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetGroupsResult.java @@ -91,11 +91,11 @@ public Builder id(String id) { return this; } public GetGroupsResult build() { - final var o = new GetGroupsResult(); - o.comments = comments; - o.groupIds = groupIds; - o.id = id; - return o; + final var _resultValue = new GetGroupsResult(); + _resultValue.comments = comments; + _resultValue.groupIds = groupIds; + _resultValue.id = id; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolMember.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolMember.java index a820fe30..d687ee26 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolMember.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolMember.java @@ -123,13 +123,13 @@ public Builder vmId(Integer vmId) { return this; } public GetPoolMember build() { - final var o = new GetPoolMember(); - o.datastoreId = datastoreId; - o.id = id; - o.nodeName = nodeName; - o.type = type; - o.vmId = vmId; - return o; + final var _resultValue = new GetPoolMember(); + _resultValue.datastoreId = datastoreId; + _resultValue.id = id; + _resultValue.nodeName = nodeName; + _resultValue.type = type; + _resultValue.vmId = vmId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolResult.java index fabea470..94584393 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolResult.java @@ -100,12 +100,12 @@ public Builder poolId(String poolId) { return this; } public GetPoolResult build() { - final var o = new GetPoolResult(); - o.comment = comment; - o.id = id; - o.members = members; - o.poolId = poolId; - return o; + final var _resultValue = new GetPoolResult(); + _resultValue.comment = comment; + _resultValue.id = id; + _resultValue.members = members; + _resultValue.poolId = poolId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolsResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolsResult.java index 9016d20c..32f58eae 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolsResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetPoolsResult.java @@ -69,10 +69,10 @@ public Builder poolIds(String... poolIds) { return poolIds(List.of(poolIds)); } public GetPoolsResult build() { - final var o = new GetPoolsResult(); - o.id = id; - o.poolIds = poolIds; - return o; + final var _resultValue = new GetPoolsResult(); + _resultValue.id = id; + _resultValue.poolIds = poolIds; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetRoleResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetRoleResult.java index 7813dec1..39c69b81 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetRoleResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetRoleResult.java @@ -80,11 +80,11 @@ public Builder roleId(String roleId) { return this; } public GetRoleResult build() { - final var o = new GetRoleResult(); - o.id = id; - o.privileges = privileges; - o.roleId = roleId; - return o; + final var _resultValue = new GetRoleResult(); + _resultValue.id = id; + _resultValue.privileges = privileges; + _resultValue.roleId = roleId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetRolesResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetRolesResult.java index db8b281c..1f737e35 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetRolesResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetRolesResult.java @@ -111,12 +111,12 @@ public Builder specials(Boolean... specials) { return specials(List.of(specials)); } public GetRolesResult build() { - final var o = new GetRolesResult(); - o.id = id; - o.privileges = privileges; - o.roleIds = roleIds; - o.specials = specials; - return o; + final var _resultValue = new GetRolesResult(); + _resultValue.id = id; + _resultValue.privileges = privileges; + _resultValue.roleIds = roleIds; + _resultValue.specials = specials; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUserAcl.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUserAcl.java index 6d381d9e..a23637eb 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUserAcl.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUserAcl.java @@ -85,11 +85,11 @@ public Builder roleId(String roleId) { return this; } public GetUserAcl build() { - final var o = new GetUserAcl(); - o.path = path; - o.propagate = propagate; - o.roleId = roleId; - return o; + final var _resultValue = new GetUserAcl(); + _resultValue.path = path; + _resultValue.propagate = propagate; + _resultValue.roleId = roleId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUserResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUserResult.java index 8961ebd2..c177c5df 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUserResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUserResult.java @@ -237,19 +237,19 @@ public Builder userId(String userId) { return this; } public GetUserResult build() { - final var o = new GetUserResult(); - o.acls = acls; - o.comment = comment; - o.email = email; - o.enabled = enabled; - o.expirationDate = expirationDate; - o.firstName = firstName; - o.groups = groups; - o.id = id; - o.keys = keys; - o.lastName = lastName; - o.userId = userId; - return o; + final var _resultValue = new GetUserResult(); + _resultValue.acls = acls; + _resultValue.comment = comment; + _resultValue.email = email; + _resultValue.enabled = enabled; + _resultValue.expirationDate = expirationDate; + _resultValue.firstName = firstName; + _resultValue.groups = groups; + _resultValue.id = id; + _resultValue.keys = keys; + _resultValue.lastName = lastName; + _resultValue.userId = userId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUsersResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUsersResult.java index 8fdc4923..c1694d6b 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUsersResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GetUsersResult.java @@ -243,18 +243,18 @@ public Builder userIds(String... userIds) { return userIds(List.of(userIds)); } public GetUsersResult build() { - final var o = new GetUsersResult(); - o.comments = comments; - o.emails = emails; - o.enableds = enableds; - o.expirationDates = expirationDates; - o.firstNames = firstNames; - o.groups = groups; - o.id = id; - o.keys = keys; - o.lastNames = lastNames; - o.userIds = userIds; - return o; + final var _resultValue = new GetUsersResult(); + _resultValue.comments = comments; + _resultValue.emails = emails; + _resultValue.enableds = enableds; + _resultValue.expirationDates = expirationDates; + _resultValue.firstNames = firstNames; + _resultValue.groups = groups; + _resultValue.id = id; + _resultValue.keys = keys; + _resultValue.lastNames = lastNames; + _resultValue.userIds = userIds; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GroupAcl.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GroupAcl.java index df7ba3ff..882c1470 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GroupAcl.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/GroupAcl.java @@ -87,11 +87,11 @@ public Builder roleId(String roleId) { return this; } public GroupAcl build() { - final var o = new GroupAcl(); - o.path = path; - o.propagate = propagate; - o.roleId = roleId; - return o; + final var _resultValue = new GroupAcl(); + _resultValue.path = path; + _resultValue.propagate = propagate; + _resultValue.roleId = roleId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/PoolMember.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/PoolMember.java index 136f3e60..92a75dc4 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/PoolMember.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/PoolMember.java @@ -125,13 +125,13 @@ public Builder vmId(@Nullable Integer vmId) { return this; } public PoolMember build() { - final var o = new PoolMember(); - o.datastoreId = datastoreId; - o.id = id; - o.nodeName = nodeName; - o.type = type; - o.vmId = vmId; - return o; + final var _resultValue = new PoolMember(); + _resultValue.datastoreId = datastoreId; + _resultValue.id = id; + _resultValue.nodeName = nodeName; + _resultValue.type = type; + _resultValue.vmId = vmId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/UserAcl.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/UserAcl.java index 5e2213e7..aa05026a 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/UserAcl.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Permission/outputs/UserAcl.java @@ -87,11 +87,11 @@ public Builder roleId(String roleId) { return this; } public UserAcl build() { - final var o = new UserAcl(); - o.path = path; - o.propagate = propagate; - o.roleId = roleId; - return o; + final var _resultValue = new UserAcl(); + _resultValue.path = path; + _resultValue.propagate = propagate; + _resultValue.roleId = roleId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/File.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/File.java index 9d5ae2cd..782162ad 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/File.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/File.java @@ -21,6 +21,114 @@ /** * Manages a file. * + * ## Example Usage + * ### Backups + * + * > **Note:** The resource with this content type uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.proxmoxve.Storage.File; + * import com.pulumi.proxmoxve.Storage.FileArgs; + * import com.pulumi.proxmoxve.Storage.inputs.FileSourceFileArgs; + * 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) { + * var backup = new File("backup", FileArgs.builder() + * .contentType("backup") + * .datastoreId("local") + * .nodeName("pve") + * .sourceFile(FileSourceFileArgs.builder() + * .path("vzdump-lxc-100-2023_11_08-23_10_05.tar") + * .build()) + * .build()); + * + * } + * } + * ``` + * ### Images + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.proxmoxve.Storage.File; + * import com.pulumi.proxmoxve.Storage.FileArgs; + * import com.pulumi.proxmoxve.Storage.inputs.FileSourceFileArgs; + * 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) { + * var ubuntuContainerTemplate = new File("ubuntuContainerTemplate", FileArgs.builder() + * .contentType("iso") + * .datastoreId("local") + * .nodeName("pve") + * .sourceFile(FileSourceFileArgs.builder() + * .path("https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img") + * .build()) + * .build()); + * + * } + * } + * ``` + * ### Container Template (`vztmpl`) + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.proxmoxve.Storage.File; + * import com.pulumi.proxmoxve.Storage.FileArgs; + * import com.pulumi.proxmoxve.Storage.inputs.FileSourceFileArgs; + * 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) { + * var ubuntuContainerTemplate = new File("ubuntuContainerTemplate", FileArgs.builder() + * .contentType("vztmpl") + * .datastoreId("local") + * .nodeName("first-node") + * .sourceFile(FileSourceFileArgs.builder() + * .path("https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz") + * .build()) + * .build()); + * + * } + * } + * ``` * ## Important Notes * * The Proxmox VE API endpoint for file uploads does not support chunked transfer @@ -36,10 +144,6 @@ * the file will be deleted as if it did not exist before. If you want to prevent * the resource from replacing the file, set `overwrite` to `false`. * - * Make sure the target datastore supports the content type you are uploading. For - * example, the `snippets` content type can be disabled by default on the `local` - * datastore. - * * ## Import * * Instances can be imported using the `node_name`, `datastore_id`, `content_type` and the `file_name` in the following formattext node_name:datastore_id/content_type/file_name Examplebash diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/FileSourceFile.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/FileSourceFile.java index e7777bb3..e709d875 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/FileSourceFile.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/FileSourceFile.java @@ -119,13 +119,13 @@ public Builder path(String path) { return this; } public FileSourceFile build() { - final var o = new FileSourceFile(); - o.changed = changed; - o.checksum = checksum; - o.fileName = fileName; - o.insecure = insecure; - o.path = path; - return o; + final var _resultValue = new FileSourceFile(); + _resultValue.changed = changed; + _resultValue.checksum = checksum; + _resultValue.fileName = fileName; + _resultValue.insecure = insecure; + _resultValue.path = path; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/FileSourceRaw.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/FileSourceRaw.java index 84fb3c0e..58fa3002 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/FileSourceRaw.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/FileSourceRaw.java @@ -87,11 +87,11 @@ public Builder resize(@Nullable Integer resize) { return this; } public FileSourceRaw build() { - final var o = new FileSourceRaw(); - o.data = data; - o.fileName = fileName; - o.resize = resize; - return o; + final var _resultValue = new FileSourceRaw(); + _resultValue.data = data; + _resultValue.fileName = fileName; + _resultValue.resize = resize; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/GetDatastoresResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/GetDatastoresResult.java index ba9f7f0b..430b092a 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/GetDatastoresResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/Storage/outputs/GetDatastoresResult.java @@ -255,19 +255,19 @@ public Builder types(String... types) { return types(List.of(types)); } public GetDatastoresResult build() { - final var o = new GetDatastoresResult(); - o.actives = actives; - o.contentTypes = contentTypes; - o.datastoreIds = datastoreIds; - o.enableds = enableds; - o.id = id; - o.nodeName = nodeName; - o.shareds = shareds; - o.spaceAvailables = spaceAvailables; - o.spaceTotals = spaceTotals; - o.spaceUseds = spaceUseds; - o.types = types; - return o; + final var _resultValue = new GetDatastoresResult(); + _resultValue.actives = actives; + _resultValue.contentTypes = contentTypes; + _resultValue.datastoreIds = datastoreIds; + _resultValue.enableds = enableds; + _resultValue.id = id; + _resultValue.nodeName = nodeName; + _resultValue.shareds = shareds; + _resultValue.spaceAvailables = spaceAvailables; + _resultValue.spaceTotals = spaceTotals; + _resultValue.spaceUseds = spaceUseds; + _resultValue.types = types; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/VirtualMachine.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/VirtualMachine.java index 6d967138..9f7ef727 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/VirtualMachine.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/VirtualMachine.java @@ -37,6 +37,8 @@ /** * Manages a virtual machine. * + * > This resource uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. + * * ## Qemu guest agent * * Qemu-guest-agent is an application which can be installed inside guest VM, see @@ -371,14 +373,14 @@ public Output> macAddresses() { return this.macAddresses; } /** - * The VM machine type (defaults to `i440fx`). + * The VM machine type (defaults to `pc`). * */ @Export(name="machine", refs={String.class}, tree="[0]") private Output machine; /** - * @return The VM machine type (defaults to `i440fx`). + * @return The VM machine type (defaults to `pc`). * */ public Output> machine() { diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/VirtualMachineArgs.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/VirtualMachineArgs.java index d041b5c4..50463759 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/VirtualMachineArgs.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/VirtualMachineArgs.java @@ -265,14 +265,14 @@ public Optional> kvmArguments() { } /** - * The VM machine type (defaults to `i440fx`). + * The VM machine type (defaults to `pc`). * */ @Import(name="machine") private @Nullable Output machine; /** - * @return The VM machine type (defaults to `i440fx`). + * @return The VM machine type (defaults to `pc`). * */ public Optional> machine() { @@ -1157,7 +1157,7 @@ public Builder kvmArguments(String kvmArguments) { } /** - * @param machine The VM machine type (defaults to `i440fx`). + * @param machine The VM machine type (defaults to `pc`). * * @return builder * @@ -1168,7 +1168,7 @@ public Builder machine(@Nullable Output machine) { } /** - * @param machine The VM machine type (defaults to `i440fx`). + * @param machine The VM machine type (defaults to `pc`). * * @return builder * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineHostpciArgs.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineHostpciArgs.java index efd846e1..8b0034e8 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineHostpciArgs.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineHostpciArgs.java @@ -34,14 +34,18 @@ public Output device() { } /** - * The PCI device ID. Use either this or `mapping`. + * The PCI device ID. This parameter is not compatible + * with `api_token` and requires the root `username` and `password` + * configured in the proxmox provider. Use either this or `mapping`. * */ @Import(name="id") private @Nullable Output id; /** - * @return The PCI device ID. Use either this or `mapping`. + * @return The PCI device ID. This parameter is not compatible + * with `api_token` and requires the root `username` and `password` + * configured in the proxmox provider. Use either this or `mapping`. * */ public Optional> id() { @@ -205,7 +209,9 @@ public Builder device(String device) { } /** - * @param id The PCI device ID. Use either this or `mapping`. + * @param id The PCI device ID. This parameter is not compatible + * with `api_token` and requires the root `username` and `password` + * configured in the proxmox provider. Use either this or `mapping`. * * @return builder * @@ -216,7 +222,9 @@ public Builder id(@Nullable Output id) { } /** - * @param id The PCI device ID. Use either this or `mapping`. + * @param id The PCI device ID. This parameter is not compatible + * with `api_token` and requires the root `username` and `password` + * configured in the proxmox provider. Use either this or `mapping`. * * @return builder * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineInitializationIpConfigIpv4Args.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineInitializationIpConfigIpv4Args.java index 93f77311..9abef44d 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineInitializationIpConfigIpv4Args.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineInitializationIpConfigIpv4Args.java @@ -16,16 +16,18 @@ public final class VirtualMachineInitializationIpConfigIpv4Args extends com.pulu public static final VirtualMachineInitializationIpConfigIpv4Args Empty = new VirtualMachineInitializationIpConfigIpv4Args(); /** - * The IPv6 address (use `dhcp` for - * autodiscovery). + * The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * */ @Import(name="address") private @Nullable Output address; /** - * @return The IPv6 address (use `dhcp` for - * autodiscovery). + * @return The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * */ public Optional> address() { @@ -75,8 +77,9 @@ public Builder(VirtualMachineInitializationIpConfigIpv4Args defaults) { } /** - * @param address The IPv6 address (use `dhcp` for - * autodiscovery). + * @param address The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * * @return builder * @@ -87,8 +90,9 @@ public Builder address(@Nullable Output address) { } /** - * @param address The IPv6 address (use `dhcp` for - * autodiscovery). + * @param address The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * * @return builder * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineInitializationIpConfigIpv6Args.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineInitializationIpConfigIpv6Args.java index bfd5fa9e..1be30a7e 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineInitializationIpConfigIpv6Args.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineInitializationIpConfigIpv6Args.java @@ -16,16 +16,18 @@ public final class VirtualMachineInitializationIpConfigIpv6Args extends com.pulu public static final VirtualMachineInitializationIpConfigIpv6Args Empty = new VirtualMachineInitializationIpConfigIpv6Args(); /** - * The IPv6 address (use `dhcp` for - * autodiscovery). + * The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * */ @Import(name="address") private @Nullable Output address; /** - * @return The IPv6 address (use `dhcp` for - * autodiscovery). + * @return The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * */ public Optional> address() { @@ -75,8 +77,9 @@ public Builder(VirtualMachineInitializationIpConfigIpv6Args defaults) { } /** - * @param address The IPv6 address (use `dhcp` for - * autodiscovery). + * @param address The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * * @return builder * @@ -87,8 +90,9 @@ public Builder address(@Nullable Output address) { } /** - * @param address The IPv6 address (use `dhcp` for - * autodiscovery). + * @param address The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * * @return builder * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineState.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineState.java index 9f6cfac1..59dec824 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineState.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/inputs/VirtualMachineState.java @@ -316,14 +316,14 @@ public Optional>> macAddresses() { } /** - * The VM machine type (defaults to `i440fx`). + * The VM machine type (defaults to `pc`). * */ @Import(name="machine") private @Nullable Output machine; /** - * @return The VM machine type (defaults to `i440fx`). + * @return The VM machine type (defaults to `pc`). * */ public Optional> machine() { @@ -1331,7 +1331,7 @@ public Builder macAddresses(String... macAddresses) { } /** - * @param machine The VM machine type (defaults to `i440fx`). + * @param machine The VM machine type (defaults to `pc`). * * @return builder * @@ -1342,7 +1342,7 @@ public Builder machine(@Nullable Output machine) { } /** - * @param machine The VM machine type (defaults to `i440fx`). + * @param machine The VM machine type (defaults to `pc`). * * @return builder * diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachineResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachineResult.java index 40b05643..56a57208 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachineResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachineResult.java @@ -111,13 +111,13 @@ public Builder vmId(Integer vmId) { return this; } public GetVirtualMachineResult build() { - final var o = new GetVirtualMachineResult(); - o.id = id; - o.name = name; - o.nodeName = nodeName; - o.tags = tags; - o.vmId = vmId; - return o; + final var _resultValue = new GetVirtualMachineResult(); + _resultValue.id = id; + _resultValue.name = name; + _resultValue.nodeName = nodeName; + _resultValue.tags = tags; + _resultValue.vmId = vmId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachinesResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachinesResult.java index 7c41f471..d7930763 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachinesResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachinesResult.java @@ -113,12 +113,12 @@ public Builder vms(GetVirtualMachinesVm... vms) { return vms(List.of(vms)); } public GetVirtualMachinesResult build() { - final var o = new GetVirtualMachinesResult(); - o.id = id; - o.nodeName = nodeName; - o.tags = tags; - o.vms = vms; - return o; + final var _resultValue = new GetVirtualMachinesResult(); + _resultValue.id = id; + _resultValue.nodeName = nodeName; + _resultValue.tags = tags; + _resultValue.vms = vms; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachinesVm.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachinesVm.java index 82a7d8f4..2a9a8a8f 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachinesVm.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/GetVirtualMachinesVm.java @@ -110,12 +110,12 @@ public Builder vmId(Integer vmId) { return this; } public GetVirtualMachinesVm build() { - final var o = new GetVirtualMachinesVm(); - o.name = name; - o.nodeName = nodeName; - o.tags = tags; - o.vmId = vmId; - return o; + final var _resultValue = new GetVirtualMachinesVm(); + _resultValue.name = name; + _resultValue.nodeName = nodeName; + _resultValue.tags = tags; + _resultValue.vmId = vmId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineAgent.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineAgent.java index 690a4053..4af573f4 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineAgent.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineAgent.java @@ -112,12 +112,12 @@ public Builder type(@Nullable String type) { return this; } public VirtualMachineAgent build() { - final var o = new VirtualMachineAgent(); - o.enabled = enabled; - o.timeout = timeout; - o.trim = trim; - o.type = type; - return o; + final var _resultValue = new VirtualMachineAgent(); + _resultValue.enabled = enabled; + _resultValue.timeout = timeout; + _resultValue.trim = trim; + _resultValue.type = type; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineAudioDevice.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineAudioDevice.java index e594062e..a1fc3742 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineAudioDevice.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineAudioDevice.java @@ -91,11 +91,11 @@ public Builder enabled(@Nullable Boolean enabled) { return this; } public VirtualMachineAudioDevice build() { - final var o = new VirtualMachineAudioDevice(); - o.device = device; - o.driver = driver; - o.enabled = enabled; - return o; + final var _resultValue = new VirtualMachineAudioDevice(); + _resultValue.device = device; + _resultValue.driver = driver; + _resultValue.enabled = enabled; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineCdrom.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineCdrom.java index cc799f19..3efcdc59 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineCdrom.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineCdrom.java @@ -99,11 +99,11 @@ public Builder interface_(@Nullable String interface_) { return this; } public VirtualMachineCdrom build() { - final var o = new VirtualMachineCdrom(); - o.enabled = enabled; - o.fileId = fileId; - o.interface_ = interface_; - return o; + final var _resultValue = new VirtualMachineCdrom(); + _resultValue.enabled = enabled; + _resultValue.fileId = fileId; + _resultValue.interface_ = interface_; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineClone.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineClone.java index 275727d5..3caf4607 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineClone.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineClone.java @@ -126,13 +126,13 @@ public Builder vmId(Integer vmId) { return this; } public VirtualMachineClone build() { - final var o = new VirtualMachineClone(); - o.datastoreId = datastoreId; - o.full = full; - o.nodeName = nodeName; - o.retries = retries; - o.vmId = vmId; - return o; + final var _resultValue = new VirtualMachineClone(); + _resultValue.datastoreId = datastoreId; + _resultValue.full = full; + _resultValue.nodeName = nodeName; + _resultValue.retries = retries; + _resultValue.vmId = vmId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineCpu.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineCpu.java index d75ad4b8..81dcba71 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineCpu.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineCpu.java @@ -233,16 +233,16 @@ public Builder units(@Nullable Integer units) { return this; } public VirtualMachineCpu build() { - final var o = new VirtualMachineCpu(); - o.architecture = architecture; - o.cores = cores; - o.flags = flags; - o.hotplugged = hotplugged; - o.numa = numa; - o.sockets = sockets; - o.type = type; - o.units = units; - return o; + final var _resultValue = new VirtualMachineCpu(); + _resultValue.architecture = architecture; + _resultValue.cores = cores; + _resultValue.flags = flags; + _resultValue.hotplugged = hotplugged; + _resultValue.numa = numa; + _resultValue.sockets = sockets; + _resultValue.type = type; + _resultValue.units = units; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineDisk.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineDisk.java index 054d97c0..bb646fd4 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineDisk.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineDisk.java @@ -269,19 +269,19 @@ public Builder ssd(@Nullable Boolean ssd) { return this; } public VirtualMachineDisk build() { - final var o = new VirtualMachineDisk(); - o.cache = cache; - o.datastoreId = datastoreId; - o.discard = discard; - o.fileFormat = fileFormat; - o.fileId = fileId; - o.interface_ = interface_; - o.iothread = iothread; - o.pathInDatastore = pathInDatastore; - o.size = size; - o.speed = speed; - o.ssd = ssd; - return o; + final var _resultValue = new VirtualMachineDisk(); + _resultValue.cache = cache; + _resultValue.datastoreId = datastoreId; + _resultValue.discard = discard; + _resultValue.fileFormat = fileFormat; + _resultValue.fileId = fileId; + _resultValue.interface_ = interface_; + _resultValue.iothread = iothread; + _resultValue.pathInDatastore = pathInDatastore; + _resultValue.size = size; + _resultValue.speed = speed; + _resultValue.ssd = ssd; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineDiskSpeed.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineDiskSpeed.java index ef08511a..c993f48a 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineDiskSpeed.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineDiskSpeed.java @@ -109,12 +109,12 @@ public Builder writeBurstable(@Nullable Integer writeBurstable) { return this; } public VirtualMachineDiskSpeed build() { - final var o = new VirtualMachineDiskSpeed(); - o.read = read; - o.readBurstable = readBurstable; - o.write = write; - o.writeBurstable = writeBurstable; - return o; + final var _resultValue = new VirtualMachineDiskSpeed(); + _resultValue.read = read; + _resultValue.readBurstable = readBurstable; + _resultValue.write = write; + _resultValue.writeBurstable = writeBurstable; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineEfiDisk.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineEfiDisk.java index 47cb59f2..f9f372f9 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineEfiDisk.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineEfiDisk.java @@ -114,12 +114,12 @@ public Builder type(@Nullable String type) { return this; } public VirtualMachineEfiDisk build() { - final var o = new VirtualMachineEfiDisk(); - o.datastoreId = datastoreId; - o.fileFormat = fileFormat; - o.preEnrolledKeys = preEnrolledKeys; - o.type = type; - return o; + final var _resultValue = new VirtualMachineEfiDisk(); + _resultValue.datastoreId = datastoreId; + _resultValue.fileFormat = fileFormat; + _resultValue.preEnrolledKeys = preEnrolledKeys; + _resultValue.type = type; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineHostpci.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineHostpci.java index 1cba7558..2e8eae66 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineHostpci.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineHostpci.java @@ -19,7 +19,9 @@ public final class VirtualMachineHostpci { */ private String device; /** - * @return The PCI device ID. Use either this or `mapping`. + * @return The PCI device ID. This parameter is not compatible + * with `api_token` and requires the root `username` and `password` + * configured in the proxmox provider. Use either this or `mapping`. * */ private @Nullable String id; @@ -70,7 +72,9 @@ public String device() { return this.device; } /** - * @return The PCI device ID. Use either this or `mapping`. + * @return The PCI device ID. This parameter is not compatible + * with `api_token` and requires the root `username` and `password` + * configured in the proxmox provider. Use either this or `mapping`. * */ public Optional id() { @@ -196,16 +200,16 @@ public Builder xvga(@Nullable Boolean xvga) { return this; } public VirtualMachineHostpci build() { - final var o = new VirtualMachineHostpci(); - o.device = device; - o.id = id; - o.mapping = mapping; - o.mdev = mdev; - o.pcie = pcie; - o.romFile = romFile; - o.rombar = rombar; - o.xvga = xvga; - return o; + final var _resultValue = new VirtualMachineHostpci(); + _resultValue.device = device; + _resultValue.id = id; + _resultValue.mapping = mapping; + _resultValue.mdev = mdev; + _resultValue.pcie = pcie; + _resultValue.romFile = romFile; + _resultValue.rombar = rombar; + _resultValue.xvga = xvga; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitialization.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitialization.java index b686bfcf..47e48dad 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitialization.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitialization.java @@ -248,18 +248,18 @@ public Builder vendorDataFileId(@Nullable String vendorDataFileId) { return this; } public VirtualMachineInitialization build() { - final var o = new VirtualMachineInitialization(); - o.datastoreId = datastoreId; - o.dns = dns; - o.interface_ = interface_; - o.ipConfigs = ipConfigs; - o.metaDataFileId = metaDataFileId; - o.networkDataFileId = networkDataFileId; - o.type = type; - o.userAccount = userAccount; - o.userDataFileId = userDataFileId; - o.vendorDataFileId = vendorDataFileId; - return o; + final var _resultValue = new VirtualMachineInitialization(); + _resultValue.datastoreId = datastoreId; + _resultValue.dns = dns; + _resultValue.interface_ = interface_; + _resultValue.ipConfigs = ipConfigs; + _resultValue.metaDataFileId = metaDataFileId; + _resultValue.networkDataFileId = networkDataFileId; + _resultValue.type = type; + _resultValue.userAccount = userAccount; + _resultValue.userDataFileId = userDataFileId; + _resultValue.vendorDataFileId = vendorDataFileId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationDns.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationDns.java index aaee071f..dbe9c30f 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationDns.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationDns.java @@ -67,10 +67,10 @@ public Builder server(@Nullable String server) { return this; } public VirtualMachineInitializationDns build() { - final var o = new VirtualMachineInitializationDns(); - o.domain = domain; - o.server = server; - return o; + final var _resultValue = new VirtualMachineInitializationDns(); + _resultValue.domain = domain; + _resultValue.server = server; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfig.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfig.java index bb2c5b28..5ae56c49 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfig.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfig.java @@ -68,10 +68,10 @@ public Builder ipv6(@Nullable VirtualMachineInitializationIpConfigIpv6 ipv6) { return this; } public VirtualMachineInitializationIpConfig build() { - final var o = new VirtualMachineInitializationIpConfig(); - o.ipv4 = ipv4; - o.ipv6 = ipv6; - return o; + final var _resultValue = new VirtualMachineInitializationIpConfig(); + _resultValue.ipv4 = ipv4; + _resultValue.ipv6 = ipv6; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfigIpv4.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfigIpv4.java index 3cdddb89..acafc978 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfigIpv4.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfigIpv4.java @@ -12,8 +12,9 @@ @CustomType public final class VirtualMachineInitializationIpConfigIpv4 { /** - * @return The IPv6 address (use `dhcp` for - * autodiscovery). + * @return The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * */ private @Nullable String address; @@ -26,8 +27,9 @@ public final class VirtualMachineInitializationIpConfigIpv4 { private VirtualMachineInitializationIpConfigIpv4() {} /** - * @return The IPv6 address (use `dhcp` for - * autodiscovery). + * @return The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * */ public Optional address() { @@ -71,10 +73,10 @@ public Builder gateway(@Nullable String gateway) { return this; } public VirtualMachineInitializationIpConfigIpv4 build() { - final var o = new VirtualMachineInitializationIpConfigIpv4(); - o.address = address; - o.gateway = gateway; - return o; + final var _resultValue = new VirtualMachineInitializationIpConfigIpv4(); + _resultValue.address = address; + _resultValue.gateway = gateway; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfigIpv6.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfigIpv6.java index 62e60667..095ba0e9 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfigIpv6.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationIpConfigIpv6.java @@ -12,8 +12,9 @@ @CustomType public final class VirtualMachineInitializationIpConfigIpv6 { /** - * @return The IPv6 address (use `dhcp` for - * autodiscovery). + * @return The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * */ private @Nullable String address; @@ -26,8 +27,9 @@ public final class VirtualMachineInitializationIpConfigIpv6 { private VirtualMachineInitializationIpConfigIpv6() {} /** - * @return The IPv6 address (use `dhcp` for - * autodiscovery). + * @return The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. * */ public Optional address() { @@ -71,10 +73,10 @@ public Builder gateway(@Nullable String gateway) { return this; } public VirtualMachineInitializationIpConfigIpv6 build() { - final var o = new VirtualMachineInitializationIpConfigIpv6(); - o.address = address; - o.gateway = gateway; - return o; + final var _resultValue = new VirtualMachineInitializationIpConfigIpv6(); + _resultValue.address = address; + _resultValue.gateway = gateway; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationUserAccount.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationUserAccount.java index 6680b123..9425c619 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationUserAccount.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineInitializationUserAccount.java @@ -90,11 +90,11 @@ public Builder username(@Nullable String username) { return this; } public VirtualMachineInitializationUserAccount build() { - final var o = new VirtualMachineInitializationUserAccount(); - o.keys = keys; - o.password = password; - o.username = username; - return o; + final var _resultValue = new VirtualMachineInitializationUserAccount(); + _resultValue.keys = keys; + _resultValue.password = password; + _resultValue.username = username; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineMemory.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineMemory.java index 97cc42f2..a4796a49 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineMemory.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineMemory.java @@ -90,11 +90,11 @@ public Builder shared(@Nullable Integer shared) { return this; } public VirtualMachineMemory build() { - final var o = new VirtualMachineMemory(); - o.dedicated = dedicated; - o.floating = floating; - o.shared = shared; - return o; + final var _resultValue = new VirtualMachineMemory(); + _resultValue.dedicated = dedicated; + _resultValue.floating = floating; + _resultValue.shared = shared; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineNetworkDevice.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineNetworkDevice.java index 1c029502..20e73293 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineNetworkDevice.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineNetworkDevice.java @@ -211,17 +211,17 @@ public Builder vlanId(@Nullable Integer vlanId) { return this; } public VirtualMachineNetworkDevice build() { - final var o = new VirtualMachineNetworkDevice(); - o.bridge = bridge; - o.enabled = enabled; - o.firewall = firewall; - o.macAddress = macAddress; - o.model = model; - o.mtu = mtu; - o.queues = queues; - o.rateLimit = rateLimit; - o.vlanId = vlanId; - return o; + final var _resultValue = new VirtualMachineNetworkDevice(); + _resultValue.bridge = bridge; + _resultValue.enabled = enabled; + _resultValue.firewall = firewall; + _resultValue.macAddress = macAddress; + _resultValue.model = model; + _resultValue.mtu = mtu; + _resultValue.queues = queues; + _resultValue.rateLimit = rateLimit; + _resultValue.vlanId = vlanId; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineOperatingSystem.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineOperatingSystem.java index 188ea764..aa27d786 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineOperatingSystem.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineOperatingSystem.java @@ -48,9 +48,9 @@ public Builder type(@Nullable String type) { return this; } public VirtualMachineOperatingSystem build() { - final var o = new VirtualMachineOperatingSystem(); - o.type = type; - return o; + final var _resultValue = new VirtualMachineOperatingSystem(); + _resultValue.type = type; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineSerialDevice.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineSerialDevice.java index d9eef86e..764df52f 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineSerialDevice.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineSerialDevice.java @@ -50,9 +50,9 @@ public Builder device(@Nullable String device) { return this; } public VirtualMachineSerialDevice build() { - final var o = new VirtualMachineSerialDevice(); - o.device = device; - return o; + final var _resultValue = new VirtualMachineSerialDevice(); + _resultValue.device = device; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineSmbios.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineSmbios.java index d5329638..95be06a4 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineSmbios.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineSmbios.java @@ -162,15 +162,15 @@ public Builder version(@Nullable String version) { return this; } public VirtualMachineSmbios build() { - final var o = new VirtualMachineSmbios(); - o.family = family; - o.manufacturer = manufacturer; - o.product = product; - o.serial = serial; - o.sku = sku; - o.uuid = uuid; - o.version = version; - return o; + final var _resultValue = new VirtualMachineSmbios(); + _resultValue.family = family; + _resultValue.manufacturer = manufacturer; + _resultValue.product = product; + _resultValue.serial = serial; + _resultValue.sku = sku; + _resultValue.uuid = uuid; + _resultValue.version = version; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineStartup.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineStartup.java index 4f92977e..512be744 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineStartup.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineStartup.java @@ -72,11 +72,11 @@ public Builder upDelay(@Nullable Integer upDelay) { return this; } public VirtualMachineStartup build() { - final var o = new VirtualMachineStartup(); - o.downDelay = downDelay; - o.order = order; - o.upDelay = upDelay; - return o; + final var _resultValue = new VirtualMachineStartup(); + _resultValue.downDelay = downDelay; + _resultValue.order = order; + _resultValue.upDelay = upDelay; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineUsb.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineUsb.java index 2ef05e4a..4f1307a4 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineUsb.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineUsb.java @@ -91,11 +91,11 @@ public Builder usb3(@Nullable Boolean usb3) { return this; } public VirtualMachineUsb build() { - final var o = new VirtualMachineUsb(); - o.host = host; - o.mapping = mapping; - o.usb3 = usb3; - return o; + final var _resultValue = new VirtualMachineUsb(); + _resultValue.host = host; + _resultValue.mapping = mapping; + _resultValue.usb3 = usb3; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineVga.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineVga.java index 639fd398..52246514 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineVga.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/VM/outputs/VirtualMachineVga.java @@ -90,11 +90,11 @@ public Builder type(@Nullable String type) { return this; } public VirtualMachineVga build() { - final var o = new VirtualMachineVga(); - o.enabled = enabled; - o.memory = memory; - o.type = type; - return o; + final var _resultValue = new VirtualMachineVga(); + _resultValue.enabled = enabled; + _resultValue.memory = memory; + _resultValue.type = type; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/config/inputs/Ssh.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/config/inputs/Ssh.java index b744836d..70e51438 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/config/inputs/Ssh.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/config/inputs/Ssh.java @@ -90,13 +90,13 @@ public Builder username(@Nullable String username) { return this; } public Ssh build() { - final var o = new Ssh(); - o.agent = agent; - o.agentSocket = agentSocket; - o.nodes = nodes; - o.password = password; - o.username = username; - return o; + final var _resultValue = new Ssh(); + _resultValue.agent = agent; + _resultValue.agentSocket = agentSocket; + _resultValue.nodes = nodes; + _resultValue.password = password; + _resultValue.username = username; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/config/outputs/SshNode.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/config/outputs/SshNode.java index b7ee4465..81ad3e85 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/config/outputs/SshNode.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/config/outputs/SshNode.java @@ -63,11 +63,11 @@ public Builder port(@Nullable Integer port) { return this; } public SshNode build() { - final var o = new SshNode(); - o.address = address; - o.name = name; - o.port = port; - return o; + final var _resultValue = new SshNode(); + _resultValue.address = address; + _resultValue.name = name; + _resultValue.port = port; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetDNSResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetDNSResult.java index 00bf9ed7..f463ea81 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetDNSResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetDNSResult.java @@ -99,12 +99,12 @@ public Builder servers(String... servers) { return servers(List.of(servers)); } public GetDNSResult build() { - final var o = new GetDNSResult(); - o.domain = domain; - o.id = id; - o.nodeName = nodeName; - o.servers = servers; - return o; + final var _resultValue = new GetDNSResult(); + _resultValue.domain = domain; + _resultValue.id = id; + _resultValue.nodeName = nodeName; + _resultValue.servers = servers; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetHostsEntry.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetHostsEntry.java index 9c1f56f1..1849a835 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetHostsEntry.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetHostsEntry.java @@ -61,10 +61,10 @@ public Builder hostnames(String... hostnames) { return hostnames(List.of(hostnames)); } public GetHostsEntry build() { - final var o = new GetHostsEntry(); - o.address = address; - o.hostnames = hostnames; - return o; + final var _resultValue = new GetHostsEntry(); + _resultValue.address = address; + _resultValue.hostnames = hostnames; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetHostsResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetHostsResult.java index 625071e3..5816cddb 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetHostsResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetHostsResult.java @@ -143,14 +143,14 @@ public Builder nodeName(String nodeName) { return this; } public GetHostsResult build() { - final var o = new GetHostsResult(); - o.addresses = addresses; - o.digest = digest; - o.entries = entries; - o.hostnames = hostnames; - o.id = id; - o.nodeName = nodeName; - return o; + final var _resultValue = new GetHostsResult(); + _resultValue.addresses = addresses; + _resultValue.digest = digest; + _resultValue.entries = entries; + _resultValue.hostnames = hostnames; + _resultValue.id = id; + _resultValue.nodeName = nodeName; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetTimeResult.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetTimeResult.java index b5db32da..333ce78c 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetTimeResult.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/GetTimeResult.java @@ -114,13 +114,13 @@ public Builder utcTime(String utcTime) { return this; } public GetTimeResult build() { - final var o = new GetTimeResult(); - o.id = id; - o.localTime = localTime; - o.nodeName = nodeName; - o.timeZone = timeZone; - o.utcTime = utcTime; - return o; + final var _resultValue = new GetTimeResult(); + _resultValue.id = id; + _resultValue.localTime = localTime; + _resultValue.nodeName = nodeName; + _resultValue.timeZone = timeZone; + _resultValue.utcTime = utcTime; + return _resultValue; } } } diff --git a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/HostsEntry.java b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/HostsEntry.java index 87f3f080..b3516773 100644 --- a/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/HostsEntry.java +++ b/sdk/java/src/main/java/io/muehlbachler/pulumi/proxmoxve/outputs/HostsEntry.java @@ -69,10 +69,10 @@ public Builder hostnames(String... hostnames) { return hostnames(List.of(hostnames)); } public HostsEntry build() { - final var o = new HostsEntry(); - o.address = address; - o.hostnames = hostnames; - return o; + final var _resultValue = new HostsEntry(); + _resultValue.address = address; + _resultValue.hostnames = hostnames; + return _resultValue; } } } diff --git a/sdk/nodejs/storage/file.ts b/sdk/nodejs/storage/file.ts index 567ec090..885ce1d7 100644 --- a/sdk/nodejs/storage/file.ts +++ b/sdk/nodejs/storage/file.ts @@ -9,6 +9,54 @@ import * as utilities from "../utilities"; /** * Manages a file. * + * ## Example Usage + * ### Backups + * + * > **Note:** The resource with this content type uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as proxmoxve from "@muhlba91/pulumi-proxmoxve"; + * + * const backup = new proxmoxve.storage.File("backup", { + * contentType: "backup", + * datastoreId: "local", + * nodeName: "pve", + * sourceFile: { + * path: "vzdump-lxc-100-2023_11_08-23_10_05.tar", + * }, + * }); + * ``` + * ### Images + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as proxmoxve from "@muhlba91/pulumi-proxmoxve"; + * + * const ubuntuContainerTemplate = new proxmoxve.storage.File("ubuntuContainerTemplate", { + * contentType: "iso", + * datastoreId: "local", + * nodeName: "pve", + * sourceFile: { + * path: "https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img", + * }, + * }); + * ``` + * ### Container Template (`vztmpl`) + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as proxmoxve from "@muhlba91/pulumi-proxmoxve"; + * + * const ubuntuContainerTemplate = new proxmoxve.storage.File("ubuntuContainerTemplate", { + * contentType: "vztmpl", + * datastoreId: "local", + * nodeName: "first-node", + * sourceFile: { + * path: "https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz", + * }, + * }); + * ``` * ## Important Notes * * The Proxmox VE API endpoint for file uploads does not support chunked transfer @@ -24,10 +72,6 @@ import * as utilities from "../utilities"; * the file will be deleted as if it did not exist before. If you want to prevent * the resource from replacing the file, set `overwrite` to `false`. * - * Make sure the target datastore supports the content type you are uploading. For - * example, the `snippets` content type can be disabled by default on the `local` - * datastore. - * * ## Import * * Instances can be imported using the `node_name`, `datastore_id`, `content_type` and the `file_name` in the following formattext node_name:datastore_id/content_type/file_name Examplebash diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 7014c0d1..72293e34 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -837,7 +837,9 @@ export namespace VM { */ device: pulumi.Input; /** - * The PCI device ID. Use either this or `mapping`. + * The PCI device ID. This parameter is not compatible + * with `apiToken` and requires the root `username` and `password` + * configured in the proxmox provider. Use either this or `mapping`. */ id?: pulumi.Input; /** @@ -950,8 +952,9 @@ export namespace VM { export interface VirtualMachineInitializationIpConfigIpv4 { /** - * The IPv6 address (use `dhcp` for - * autodiscovery). + * The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. */ address?: pulumi.Input; /** @@ -963,8 +966,9 @@ export namespace VM { export interface VirtualMachineInitializationIpConfigIpv6 { /** - * The IPv6 address (use `dhcp` for - * autodiscovery). + * The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. */ address?: pulumi.Input; /** diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 85e0a469..712e91b1 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -909,7 +909,9 @@ export namespace VM { */ device: string; /** - * The PCI device ID. Use either this or `mapping`. + * The PCI device ID. This parameter is not compatible + * with `apiToken` and requires the root `username` and `password` + * configured in the proxmox provider. Use either this or `mapping`. */ id?: string; /** @@ -1022,8 +1024,9 @@ export namespace VM { export interface VirtualMachineInitializationIpConfigIpv4 { /** - * The IPv6 address (use `dhcp` for - * autodiscovery). + * The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. */ address?: string; /** @@ -1035,8 +1038,9 @@ export namespace VM { export interface VirtualMachineInitializationIpConfigIpv6 { /** - * The IPv6 address (use `dhcp` for - * autodiscovery). + * The IPv6 address in CIDR notation + * (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + * to `dhcp` for autodiscovery. */ address?: string; /** diff --git a/sdk/nodejs/vm/virtualMachine.ts b/sdk/nodejs/vm/virtualMachine.ts index d4f3cec9..2d07c4f4 100644 --- a/sdk/nodejs/vm/virtualMachine.ts +++ b/sdk/nodejs/vm/virtualMachine.ts @@ -9,6 +9,8 @@ import * as utilities from "../utilities"; /** * Manages a virtual machine. * + * > This resource uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. + * * ## Qemu guest agent * * Qemu-guest-agent is an application which can be installed inside guest VM, see @@ -183,7 +185,7 @@ export class VirtualMachine extends pulumi.CustomResource { */ public /*out*/ readonly macAddresses!: pulumi.Output; /** - * The VM machine type (defaults to `i440fx`). + * The VM machine type (defaults to `pc`). */ public readonly machine!: pulumi.Output; /** @@ -526,7 +528,7 @@ export interface VirtualMachineState { */ macAddresses?: pulumi.Input[]>; /** - * The VM machine type (defaults to `i440fx`). + * The VM machine type (defaults to `pc`). */ machine?: pulumi.Input; /** @@ -735,7 +737,7 @@ export interface VirtualMachineArgs { */ kvmArguments?: pulumi.Input; /** - * The VM machine type (defaults to `i440fx`). + * The VM machine type (defaults to `pc`). */ machine?: pulumi.Input; /** diff --git a/sdk/python/pulumi_proxmoxve/storage/file.py b/sdk/python/pulumi_proxmoxve/storage/file.py index 875cb54a..7c69a06f 100644 --- a/sdk/python/pulumi_proxmoxve/storage/file.py +++ b/sdk/python/pulumi_proxmoxve/storage/file.py @@ -351,6 +351,51 @@ def __init__(__self__, """ Manages a file. + ## Example Usage + ### Backups + + > **Note:** The resource with this content type uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. + + ```python + import pulumi + import pulumi_proxmoxve as proxmoxve + + backup = proxmoxve.storage.File("backup", + content_type="backup", + datastore_id="local", + node_name="pve", + source_file=proxmoxve.storage.FileSourceFileArgs( + path="vzdump-lxc-100-2023_11_08-23_10_05.tar", + )) + ``` + ### Images + + ```python + import pulumi + import pulumi_proxmoxve as proxmoxve + + ubuntu_container_template = proxmoxve.storage.File("ubuntuContainerTemplate", + content_type="iso", + datastore_id="local", + node_name="pve", + source_file=proxmoxve.storage.FileSourceFileArgs( + path="https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img", + )) + ``` + ### Container Template (`vztmpl`) + + ```python + import pulumi + import pulumi_proxmoxve as proxmoxve + + ubuntu_container_template = proxmoxve.storage.File("ubuntuContainerTemplate", + content_type="vztmpl", + datastore_id="local", + node_name="first-node", + source_file=proxmoxve.storage.FileSourceFileArgs( + path="https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz", + )) + ``` ## Important Notes The Proxmox VE API endpoint for file uploads does not support chunked transfer @@ -366,10 +411,6 @@ def __init__(__self__, the file will be deleted as if it did not exist before. If you want to prevent the resource from replacing the file, set `overwrite` to `false`. - Make sure the target datastore supports the content type you are uploading. For - example, the `snippets` content type can be disabled by default on the `local` - datastore. - ## Import Instances can be imported using the `node_name`, `datastore_id`, `content_type` and the `file_name` in the following formattext node_name:datastore_id/content_type/file_name Examplebash @@ -402,6 +443,51 @@ def __init__(__self__, """ Manages a file. + ## Example Usage + ### Backups + + > **Note:** The resource with this content type uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. + + ```python + import pulumi + import pulumi_proxmoxve as proxmoxve + + backup = proxmoxve.storage.File("backup", + content_type="backup", + datastore_id="local", + node_name="pve", + source_file=proxmoxve.storage.FileSourceFileArgs( + path="vzdump-lxc-100-2023_11_08-23_10_05.tar", + )) + ``` + ### Images + + ```python + import pulumi + import pulumi_proxmoxve as proxmoxve + + ubuntu_container_template = proxmoxve.storage.File("ubuntuContainerTemplate", + content_type="iso", + datastore_id="local", + node_name="pve", + source_file=proxmoxve.storage.FileSourceFileArgs( + path="https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img", + )) + ``` + ### Container Template (`vztmpl`) + + ```python + import pulumi + import pulumi_proxmoxve as proxmoxve + + ubuntu_container_template = proxmoxve.storage.File("ubuntuContainerTemplate", + content_type="vztmpl", + datastore_id="local", + node_name="first-node", + source_file=proxmoxve.storage.FileSourceFileArgs( + path="https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz", + )) + ``` ## Important Notes The Proxmox VE API endpoint for file uploads does not support chunked transfer @@ -417,10 +503,6 @@ def __init__(__self__, the file will be deleted as if it did not exist before. If you want to prevent the resource from replacing the file, set `overwrite` to `false`. - Make sure the target datastore supports the content type you are uploading. For - example, the `snippets` content type can be disabled by default on the `local` - datastore. - ## Import Instances can be imported using the `node_name`, `datastore_id`, `content_type` and the `file_name` in the following formattext node_name:datastore_id/content_type/file_name Examplebash diff --git a/sdk/python/pulumi_proxmoxve/vm/_inputs.py b/sdk/python/pulumi_proxmoxve/vm/_inputs.py index a099f993..a7efb5a2 100644 --- a/sdk/python/pulumi_proxmoxve/vm/_inputs.py +++ b/sdk/python/pulumi_proxmoxve/vm/_inputs.py @@ -887,7 +887,9 @@ def __init__(__self__, *, """ :param pulumi.Input[str] device: The device (defaults to `socket`). - `/dev/*` - A host serial device. - :param pulumi.Input[str] id: The PCI device ID. Use either this or `mapping`. + :param pulumi.Input[str] id: The PCI device ID. This parameter is not compatible + with `api_token` and requires the root `username` and `password` + configured in the proxmox provider. Use either this or `mapping`. :param pulumi.Input[str] mapping: The resource mapping name of the device, for example usbdevice. Use either this or `id`. :param pulumi.Input[str] mdev: The mediated device ID to use. @@ -934,7 +936,9 @@ def device(self, value: pulumi.Input[str]): @pulumi.getter def id(self) -> Optional[pulumi.Input[str]]: """ - The PCI device ID. Use either this or `mapping`. + The PCI device ID. This parameter is not compatible + with `api_token` and requires the root `username` and `password` + configured in the proxmox provider. Use either this or `mapping`. """ return pulumi.get(self, "id") @@ -1294,8 +1298,9 @@ def __init__(__self__, *, address: Optional[pulumi.Input[str]] = None, gateway: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] address: The IPv6 address (use `dhcp` for - autodiscovery). + :param pulumi.Input[str] address: The IPv6 address in CIDR notation + (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + to `dhcp` for autodiscovery. :param pulumi.Input[str] gateway: The IPv6 gateway (must be omitted when `dhcp` is used as the address). """ @@ -1308,8 +1313,9 @@ def __init__(__self__, *, @pulumi.getter def address(self) -> Optional[pulumi.Input[str]]: """ - The IPv6 address (use `dhcp` for - autodiscovery). + The IPv6 address in CIDR notation + (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + to `dhcp` for autodiscovery. """ return pulumi.get(self, "address") @@ -1337,8 +1343,9 @@ def __init__(__self__, *, address: Optional[pulumi.Input[str]] = None, gateway: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] address: The IPv6 address (use `dhcp` for - autodiscovery). + :param pulumi.Input[str] address: The IPv6 address in CIDR notation + (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + to `dhcp` for autodiscovery. :param pulumi.Input[str] gateway: The IPv6 gateway (must be omitted when `dhcp` is used as the address). """ @@ -1351,8 +1358,9 @@ def __init__(__self__, *, @pulumi.getter def address(self) -> Optional[pulumi.Input[str]]: """ - The IPv6 address (use `dhcp` for - autodiscovery). + The IPv6 address in CIDR notation + (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + to `dhcp` for autodiscovery. """ return pulumi.get(self, "address") diff --git a/sdk/python/pulumi_proxmoxve/vm/outputs.py b/sdk/python/pulumi_proxmoxve/vm/outputs.py index a92f7205..417de99e 100644 --- a/sdk/python/pulumi_proxmoxve/vm/outputs.py +++ b/sdk/python/pulumi_proxmoxve/vm/outputs.py @@ -839,7 +839,9 @@ def __init__(__self__, *, """ :param str device: The device (defaults to `socket`). - `/dev/*` - A host serial device. - :param str id: The PCI device ID. Use either this or `mapping`. + :param str id: The PCI device ID. This parameter is not compatible + with `api_token` and requires the root `username` and `password` + configured in the proxmox provider. Use either this or `mapping`. :param str mapping: The resource mapping name of the device, for example usbdevice. Use either this or `id`. :param str mdev: The mediated device ID to use. @@ -882,7 +884,9 @@ def device(self) -> str: @pulumi.getter def id(self) -> Optional[str]: """ - The PCI device ID. Use either this or `mapping`. + The PCI device ID. This parameter is not compatible + with `api_token` and requires the root `username` and `password` + configured in the proxmox provider. Use either this or `mapping`. """ return pulumi.get(self, "id") @@ -1187,8 +1191,9 @@ def __init__(__self__, *, address: Optional[str] = None, gateway: Optional[str] = None): """ - :param str address: The IPv6 address (use `dhcp` for - autodiscovery). + :param str address: The IPv6 address in CIDR notation + (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + to `dhcp` for autodiscovery. :param str gateway: The IPv6 gateway (must be omitted when `dhcp` is used as the address). """ @@ -1201,8 +1206,9 @@ def __init__(__self__, *, @pulumi.getter def address(self) -> Optional[str]: """ - The IPv6 address (use `dhcp` for - autodiscovery). + The IPv6 address in CIDR notation + (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + to `dhcp` for autodiscovery. """ return pulumi.get(self, "address") @@ -1222,8 +1228,9 @@ def __init__(__self__, *, address: Optional[str] = None, gateway: Optional[str] = None): """ - :param str address: The IPv6 address (use `dhcp` for - autodiscovery). + :param str address: The IPv6 address in CIDR notation + (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + to `dhcp` for autodiscovery. :param str gateway: The IPv6 gateway (must be omitted when `dhcp` is used as the address). """ @@ -1236,8 +1243,9 @@ def __init__(__self__, *, @pulumi.getter def address(self) -> Optional[str]: """ - The IPv6 address (use `dhcp` for - autodiscovery). + The IPv6 address in CIDR notation + (e.g. fd1c:000:0000::0000:000:7334/64). Alternatively, set this + to `dhcp` for autodiscovery. """ return pulumi.get(self, "address") diff --git a/sdk/python/pulumi_proxmoxve/vm/virtual_machine.py b/sdk/python/pulumi_proxmoxve/vm/virtual_machine.py index 9d57caec..cc6ca0e8 100644 --- a/sdk/python/pulumi_proxmoxve/vm/virtual_machine.py +++ b/sdk/python/pulumi_proxmoxve/vm/virtual_machine.py @@ -81,7 +81,7 @@ def __init__(__self__, *, :param pulumi.Input['VirtualMachineInitializationArgs'] initialization: The cloud-init configuration. :param pulumi.Input[str] keyboard_layout: The keyboard layout (defaults to `en-us`). :param pulumi.Input[str] kvm_arguments: Arbitrary arguments passed to kvm. - :param pulumi.Input[str] machine: The VM machine type (defaults to `i440fx`). + :param pulumi.Input[str] machine: The VM machine type (defaults to `pc`). :param pulumi.Input['VirtualMachineMemoryArgs'] memory: The VGA memory in megabytes (defaults to `16`). :param pulumi.Input[bool] migrate: Migrate the VM on node change instead of re-creating it (defaults to `false`). @@ -416,7 +416,7 @@ def kvm_arguments(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def machine(self) -> Optional[pulumi.Input[str]]: """ - The VM machine type (defaults to `i440fx`). + The VM machine type (defaults to `pc`). """ return pulumi.get(self, "machine") @@ -844,7 +844,7 @@ def __init__(__self__, *, :param pulumi.Input[str] kvm_arguments: Arbitrary arguments passed to kvm. :param pulumi.Input[Sequence[pulumi.Input[str]]] mac_addresses: The MAC addresses published by the QEMU agent with fallback to the network device configuration, if the agent is disabled - :param pulumi.Input[str] machine: The VM machine type (defaults to `i440fx`). + :param pulumi.Input[str] machine: The VM machine type (defaults to `pc`). :param pulumi.Input['VirtualMachineMemoryArgs'] memory: The VGA memory in megabytes (defaults to `16`). :param pulumi.Input[bool] migrate: Migrate the VM on node change instead of re-creating it (defaults to `false`). @@ -1218,7 +1218,7 @@ def mac_addresses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]] @pulumi.getter def machine(self) -> Optional[pulumi.Input[str]]: """ - The VM machine type (defaults to `i440fx`). + The VM machine type (defaults to `pc`). """ return pulumi.get(self, "machine") @@ -1649,6 +1649,8 @@ def __init__(__self__, """ Manages a virtual machine. + > This resource uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. + ## Qemu guest agent Qemu-guest-agent is an application which can be installed inside guest VM, see @@ -1736,7 +1738,7 @@ def __init__(__self__, :param pulumi.Input[pulumi.InputType['VirtualMachineInitializationArgs']] initialization: The cloud-init configuration. :param pulumi.Input[str] keyboard_layout: The keyboard layout (defaults to `en-us`). :param pulumi.Input[str] kvm_arguments: Arbitrary arguments passed to kvm. - :param pulumi.Input[str] machine: The VM machine type (defaults to `i440fx`). + :param pulumi.Input[str] machine: The VM machine type (defaults to `pc`). :param pulumi.Input[pulumi.InputType['VirtualMachineMemoryArgs']] memory: The VGA memory in megabytes (defaults to `16`). :param pulumi.Input[bool] migrate: Migrate the VM on node change instead of re-creating it (defaults to `false`). @@ -1795,6 +1797,8 @@ def __init__(__self__, """ Manages a virtual machine. + > This resource uses SSH access to the node. You might need to configure the `ssh` option in the `provider` section. + ## Qemu guest agent Qemu-guest-agent is an application which can be installed inside guest VM, see @@ -2069,7 +2073,7 @@ def get(resource_name: str, :param pulumi.Input[str] kvm_arguments: Arbitrary arguments passed to kvm. :param pulumi.Input[Sequence[pulumi.Input[str]]] mac_addresses: The MAC addresses published by the QEMU agent with fallback to the network device configuration, if the agent is disabled - :param pulumi.Input[str] machine: The VM machine type (defaults to `i440fx`). + :param pulumi.Input[str] machine: The VM machine type (defaults to `pc`). :param pulumi.Input[pulumi.InputType['VirtualMachineMemoryArgs']] memory: The VGA memory in megabytes (defaults to `16`). :param pulumi.Input[bool] migrate: Migrate the VM on node change instead of re-creating it (defaults to `false`). @@ -2328,7 +2332,7 @@ def mac_addresses(self) -> pulumi.Output[Sequence[str]]: @pulumi.getter def machine(self) -> pulumi.Output[Optional[str]]: """ - The VM machine type (defaults to `i440fx`). + The VM machine type (defaults to `pc`). """ return pulumi.get(self, "machine")