diff --git a/tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.pve7.json b/tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.pve7.json
new file mode 100644
index 0000000..8e3f2ec
--- /dev/null
+++ b/tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.pve7.json
@@ -0,0 +1,8288 @@
+{
+ "pve_version": 7,
+ "paths": {
+ "/cluster": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/replication": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "disable",
+ "guest",
+ "id",
+ "jobnum",
+ "rate",
+ "remove_job",
+ "schedule",
+ "source",
+ "target",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "remove_job": {
+ "enum": [
+ "local",
+ "full"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "local"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/replication/{id}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "disable",
+ "guest",
+ "id",
+ "jobnum",
+ "rate",
+ "remove_job",
+ "schedule",
+ "source",
+ "target",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "remove_job": {
+ "enum": [
+ "local",
+ "full"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/metrics": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/metrics/server": {
+ "get": {
+ "responseFields": [
+ "disable",
+ "id",
+ "port",
+ "server",
+ "type"
+ ]
+ }
+ },
+ "/cluster/metrics/server/{id}": {
+ "post": {
+ "params": {
+ "influxdbproto": {
+ "enum": [
+ "udp",
+ "http",
+ "https"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "otel-compression": {
+ "enum": [
+ "none",
+ "gzip"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "otel-protocol": {
+ "enum": [
+ "http",
+ "https"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "proto": {
+ "enum": [
+ "udp",
+ "tcp"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "graphite",
+ "influxdb",
+ "opentelemetry"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ },
+ "put": {
+ "params": {
+ "influxdbproto": {
+ "enum": [
+ "udp",
+ "http",
+ "https"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "otel-compression": {
+ "enum": [
+ "none",
+ "gzip"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "otel-protocol": {
+ "enum": [
+ "http",
+ "https"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "proto": {
+ "enum": [
+ "udp",
+ "tcp"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/config": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/config/nodes": {
+ "get": {
+ "responseFields": [
+ "node"
+ ]
+ }
+ },
+ "/cluster/config/nodes/{node}": {
+ "post": {
+ "responseFields": [
+ "corosync_authkey",
+ "corosync_conf",
+ "warnings"
+ ]
+ }
+ },
+ "/cluster/config/join": {
+ "get": {
+ "responseFields": [
+ "config_digest",
+ "nodelist",
+ "preferred_node",
+ "totem"
+ ]
+ }
+ },
+ "/cluster/firewall": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/firewall/groups": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "group"
+ ]
+ }
+ },
+ "/cluster/firewall/groups/{group}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/firewall/groups/{group}/{pos}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/firewall/rules": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/firewall/rules/{pos}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/firewall/ipset": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/cluster/firewall/ipset/{name}": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "nomatch"
+ ]
+ }
+ },
+ "/cluster/firewall/aliases": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/cluster/firewall/options": {
+ "get": {
+ "responseFields": [
+ "ebtables",
+ "enable",
+ "log_ratelimit",
+ "policy_forward",
+ "policy_in",
+ "policy_out"
+ ]
+ },
+ "put": {
+ "params": {
+ "policy_forward": {
+ "enum": [
+ "ACCEPT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_in": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_out": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/firewall/macros": {
+ "get": {
+ "responseFields": [
+ "descr",
+ "macro"
+ ]
+ }
+ },
+ "/cluster/firewall/refs": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "alias",
+ "ipset"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "comment",
+ "name",
+ "ref",
+ "scope",
+ "type"
+ ]
+ }
+ },
+ "/cluster/backup": {
+ "get": {
+ "responseFields": [
+ "id"
+ ]
+ },
+ "post": {
+ "params": {
+ "compress": {
+ "enum": [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "dow": {
+ "enum": null,
+ "x-enum-values": [
+ "fri",
+ "mon",
+ "sat",
+ "sun",
+ "thu",
+ "tue",
+ "wed"
+ ],
+ "type": "string"
+ },
+ "mailnotification": {
+ "enum": [
+ "always",
+ "failure"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "mode": {
+ "enum": [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "notification-mode": {
+ "enum": [
+ "auto",
+ "legacy-sendmail",
+ "notification-system"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "pbs-change-detection-mode": {
+ "enum": [
+ "legacy",
+ "data",
+ "metadata"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/backup/{id}": {
+ "put": {
+ "params": {
+ "compress": {
+ "enum": [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "dow": {
+ "enum": null,
+ "x-enum-values": [
+ "fri",
+ "mon",
+ "sat",
+ "sun",
+ "thu",
+ "tue",
+ "wed"
+ ],
+ "type": "string"
+ },
+ "mailnotification": {
+ "enum": [
+ "always",
+ "failure"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "mode": {
+ "enum": [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "notification-mode": {
+ "enum": [
+ "auto",
+ "legacy-sendmail",
+ "notification-system"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "pbs-change-detection-mode": {
+ "enum": [
+ "legacy",
+ "data",
+ "metadata"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/backup/{id}/included_volumes": {
+ "get": {
+ "responseFields": [
+ "children"
+ ]
+ }
+ },
+ "/cluster/backup-info": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/cluster/backup-info/not-backed-up": {
+ "get": {
+ "responseFields": [
+ "name",
+ "type",
+ "vmid"
+ ]
+ }
+ },
+ "/cluster/ha": {
+ "get": {
+ "responseFields": [
+ "id"
+ ]
+ }
+ },
+ "/cluster/ha/resources": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "ct",
+ "vm"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "sid"
+ ]
+ },
+ "post": {
+ "params": {
+ "state": {
+ "enum": [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled",
+ "ignored"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "ct",
+ "vm"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/ha/resources/{sid}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "failback",
+ "group",
+ "max_relocate",
+ "max_restart",
+ "sid",
+ "state",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "state": {
+ "enum": [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled",
+ "ignored"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/ha/resources/{sid}/migrate": {
+ "post": {
+ "responseFields": [
+ "blocking-resources",
+ "comigrated-resources",
+ "requested-node",
+ "sid"
+ ]
+ }
+ },
+ "/cluster/ha/resources/{sid}/relocate": {
+ "post": {
+ "responseFields": [
+ "blocking-resources",
+ "comigrated-resources",
+ "requested-node",
+ "sid"
+ ]
+ }
+ },
+ "/cluster/ha/groups": {
+ "get": {
+ "responseFields": [
+ "group"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/ha/status": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/ha/status/current": {
+ "get": {
+ "responseFields": [
+ "crm_state",
+ "failback",
+ "id",
+ "max_relocate",
+ "max_restart",
+ "node",
+ "quorate",
+ "request_state",
+ "sid",
+ "state",
+ "status",
+ "timestamp",
+ "type"
+ ]
+ }
+ },
+ "/cluster/acme": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/acme/plugins": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "dns",
+ "standalone"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "api",
+ "data",
+ "digest",
+ "disable",
+ "nodes",
+ "plugin",
+ "type",
+ "validation-delay"
+ ]
+ },
+ "post": {
+ "params": {
+ "api": {
+ "enum": [
+ "1984hosting",
+ "acmedns",
+ "acmeproxy",
+ "active24",
+ "ad",
+ "ali",
+ "alviy",
+ "anx",
+ "artfiles",
+ "arvan",
+ "aurora",
+ "autodns",
+ "aws",
+ "azion",
+ "azure",
+ "beget",
+ "bookmyname",
+ "bunny",
+ "cf",
+ "clouddns",
+ "cloudns",
+ "cn",
+ "conoha",
+ "constellix",
+ "cpanel",
+ "curanet",
+ "cyon",
+ "da",
+ "ddnss",
+ "desec",
+ "df",
+ "dgon",
+ "dnsexit",
+ "dnshome",
+ "dnsimple",
+ "dnsservices",
+ "doapi",
+ "domeneshop",
+ "dp",
+ "dpi",
+ "dreamhost",
+ "duckdns",
+ "durabledns",
+ "dyn",
+ "dynu",
+ "dynv6",
+ "easydns",
+ "edgecenter",
+ "edgedns",
+ "euserv",
+ "exoscale",
+ "fornex",
+ "freedns",
+ "freemyip",
+ "gandi_livedns",
+ "gcloud",
+ "gcore",
+ "gd",
+ "geoscaling",
+ "googledomains",
+ "he",
+ "he_ddns",
+ "hetzner",
+ "hexonet",
+ "hostingde",
+ "huaweicloud",
+ "infoblox",
+ "infomaniak",
+ "internetbs",
+ "inwx",
+ "ionos",
+ "ionos_cloud",
+ "ipv64",
+ "ispconfig",
+ "jd",
+ "joker",
+ "kappernet",
+ "kas",
+ "kinghost",
+ "knot",
+ "la",
+ "leaseweb",
+ "lexicon",
+ "limacity",
+ "linode",
+ "linode_v4",
+ "loopia",
+ "lua",
+ "maradns",
+ "me",
+ "miab",
+ "mijnhost",
+ "misaka",
+ "myapi",
+ "mydevil",
+ "mydnsjp",
+ "mythic_beasts",
+ "namecheap",
+ "namecom",
+ "namesilo",
+ "nanelo",
+ "nederhost",
+ "neodigit",
+ "netcup",
+ "netlify",
+ "nic",
+ "njalla",
+ "nm",
+ "nsd",
+ "nsone",
+ "nsupdate",
+ "nw",
+ "oci",
+ "omglol",
+ "one",
+ "online",
+ "openprovider",
+ "openstack",
+ "opnsense",
+ "ovh",
+ "pdns",
+ "pleskxml",
+ "pointhq",
+ "porkbun",
+ "rackcorp",
+ "rackspace",
+ "rage4",
+ "rcode0",
+ "regru",
+ "scaleway",
+ "schlundtech",
+ "selectel",
+ "selfhost",
+ "servercow",
+ "simply",
+ "technitium",
+ "tele3",
+ "tencent",
+ "timeweb",
+ "transip",
+ "udr",
+ "ultra",
+ "unoeuro",
+ "variomedia",
+ "veesp",
+ "vercel",
+ "vscale",
+ "vultr",
+ "websupport",
+ "west_cn",
+ "world4you",
+ "yandex360",
+ "yc",
+ "zilore",
+ "zone",
+ "zoneedit",
+ "zonomi"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "dns",
+ "standalone"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/acme/plugins/{id}": {
+ "get": {
+ "responseFields": [
+ "api",
+ "data",
+ "digest",
+ "disable",
+ "nodes",
+ "plugin",
+ "type",
+ "validation-delay"
+ ]
+ },
+ "put": {
+ "params": {
+ "api": {
+ "enum": [
+ "1984hosting",
+ "acmedns",
+ "acmeproxy",
+ "active24",
+ "ad",
+ "ali",
+ "alviy",
+ "anx",
+ "artfiles",
+ "arvan",
+ "aurora",
+ "autodns",
+ "aws",
+ "azion",
+ "azure",
+ "beget",
+ "bookmyname",
+ "bunny",
+ "cf",
+ "clouddns",
+ "cloudns",
+ "cn",
+ "conoha",
+ "constellix",
+ "cpanel",
+ "curanet",
+ "cyon",
+ "da",
+ "ddnss",
+ "desec",
+ "df",
+ "dgon",
+ "dnsexit",
+ "dnshome",
+ "dnsimple",
+ "dnsservices",
+ "doapi",
+ "domeneshop",
+ "dp",
+ "dpi",
+ "dreamhost",
+ "duckdns",
+ "durabledns",
+ "dyn",
+ "dynu",
+ "dynv6",
+ "easydns",
+ "edgecenter",
+ "edgedns",
+ "euserv",
+ "exoscale",
+ "fornex",
+ "freedns",
+ "freemyip",
+ "gandi_livedns",
+ "gcloud",
+ "gcore",
+ "gd",
+ "geoscaling",
+ "googledomains",
+ "he",
+ "he_ddns",
+ "hetzner",
+ "hexonet",
+ "hostingde",
+ "huaweicloud",
+ "infoblox",
+ "infomaniak",
+ "internetbs",
+ "inwx",
+ "ionos",
+ "ionos_cloud",
+ "ipv64",
+ "ispconfig",
+ "jd",
+ "joker",
+ "kappernet",
+ "kas",
+ "kinghost",
+ "knot",
+ "la",
+ "leaseweb",
+ "lexicon",
+ "limacity",
+ "linode",
+ "linode_v4",
+ "loopia",
+ "lua",
+ "maradns",
+ "me",
+ "miab",
+ "mijnhost",
+ "misaka",
+ "myapi",
+ "mydevil",
+ "mydnsjp",
+ "mythic_beasts",
+ "namecheap",
+ "namecom",
+ "namesilo",
+ "nanelo",
+ "nederhost",
+ "neodigit",
+ "netcup",
+ "netlify",
+ "nic",
+ "njalla",
+ "nm",
+ "nsd",
+ "nsone",
+ "nsupdate",
+ "nw",
+ "oci",
+ "omglol",
+ "one",
+ "online",
+ "openprovider",
+ "openstack",
+ "opnsense",
+ "ovh",
+ "pdns",
+ "pleskxml",
+ "pointhq",
+ "porkbun",
+ "rackcorp",
+ "rackspace",
+ "rage4",
+ "rcode0",
+ "regru",
+ "scaleway",
+ "schlundtech",
+ "selectel",
+ "selfhost",
+ "servercow",
+ "simply",
+ "technitium",
+ "tele3",
+ "tencent",
+ "timeweb",
+ "transip",
+ "udr",
+ "ultra",
+ "unoeuro",
+ "variomedia",
+ "veesp",
+ "vercel",
+ "vscale",
+ "vultr",
+ "websupport",
+ "west_cn",
+ "world4you",
+ "yandex360",
+ "yc",
+ "zilore",
+ "zone",
+ "zoneedit",
+ "zonomi"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/acme/account": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/acme/account/{name}": {
+ "get": {
+ "responseFields": [
+ "account",
+ "directory",
+ "location",
+ "tos"
+ ]
+ }
+ },
+ "/cluster/acme/directories": {
+ "get": {
+ "responseFields": [
+ "name",
+ "url"
+ ]
+ }
+ },
+ "/cluster/acme/challenge-schema": {
+ "get": {
+ "responseFields": [
+ "id",
+ "name",
+ "schema",
+ "type"
+ ]
+ }
+ },
+ "/cluster/ceph": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/ceph/metadata": {
+ "get": {
+ "params": {
+ "scope": {
+ "enum": [
+ "all",
+ "versions"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "mds",
+ "mgr",
+ "mon",
+ "node",
+ "osd"
+ ]
+ }
+ },
+ "/cluster/ceph/flags": {
+ "get": {
+ "responseFields": [
+ "description",
+ "name",
+ "value"
+ ]
+ }
+ },
+ "/cluster/ceph/flags/{flag}": {
+ "get": {
+ "params": {
+ "flag": {
+ "enum": [
+ "nobackfill",
+ "nodeep-scrub",
+ "nodown",
+ "noin",
+ "noout",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "notieragent",
+ "noup",
+ "pause"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ },
+ "put": {
+ "params": {
+ "flag": {
+ "enum": [
+ "nobackfill",
+ "nodeep-scrub",
+ "nodown",
+ "noin",
+ "noout",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "notieragent",
+ "noup",
+ "pause"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/jobs": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/cluster/jobs/schedule-analyze": {
+ "get": {
+ "responseFields": [
+ "timestamp",
+ "utc"
+ ]
+ }
+ },
+ "/cluster/sdn": {
+ "get": {
+ "responseFields": [
+ "id"
+ ]
+ }
+ },
+ "/cluster/sdn/vnets": {
+ "get": {
+ "responseFields": [
+ "alias",
+ "digest",
+ "isolate-ports",
+ "pending",
+ "state",
+ "tag",
+ "type",
+ "vlanaware",
+ "vnet",
+ "zone"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "vnet"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/vnets/{vnet}/subnets": {
+ "get": {
+ "responseFields": []
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "subnet"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/zones": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "evpn",
+ "faucet",
+ "qinq",
+ "simple",
+ "vlan",
+ "vxlan"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "advertise-subnets",
+ "bridge",
+ "bridge-disable-mac-learning",
+ "controller",
+ "dhcp",
+ "digest",
+ "disable-arp-nd-suppression",
+ "dns",
+ "dnszone",
+ "exitnodes",
+ "exitnodes-local-routing",
+ "exitnodes-primary",
+ "ipam",
+ "mac",
+ "mtu",
+ "nodes",
+ "peers",
+ "pending",
+ "reversedns",
+ "rt-import",
+ "state",
+ "tag",
+ "type",
+ "vlan-protocol",
+ "vrf-vxlan",
+ "vxlan-port",
+ "zone"
+ ]
+ },
+ "post": {
+ "params": {
+ "dhcp": {
+ "enum": [
+ "dnsmasq"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "evpn",
+ "faucet",
+ "qinq",
+ "simple",
+ "vlan",
+ "vxlan"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "vlan-protocol": {
+ "enum": [
+ "802.1q",
+ "802.1ad"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/zones/{zone}": {
+ "put": {
+ "params": {
+ "dhcp": {
+ "enum": [
+ "dnsmasq"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "vlan-protocol": {
+ "enum": [
+ "802.1q",
+ "802.1ad"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/controllers": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "bgp",
+ "evpn",
+ "faucet",
+ "isis"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "asn",
+ "bgp-multipath-as-relax",
+ "controller",
+ "digest",
+ "ebgp",
+ "ebgp-multihop",
+ "isis-domain",
+ "isis-ifaces",
+ "isis-net",
+ "loopback",
+ "node",
+ "peers",
+ "pending",
+ "state",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "bgp",
+ "evpn",
+ "faucet",
+ "isis"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/ipams": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "netbox",
+ "phpipam",
+ "pve"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "ipam",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "netbox",
+ "phpipam",
+ "pve"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/dns": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "powerdns"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "dns",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "powerdns"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/log": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/resources": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "vm",
+ "storage",
+ "node",
+ "sdn"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "cgroup-mode",
+ "content",
+ "cpu",
+ "disk",
+ "diskread",
+ "diskwrite",
+ "hastate",
+ "id",
+ "level",
+ "lock",
+ "maxcpu",
+ "maxdisk",
+ "maxmem",
+ "mem",
+ "memhost",
+ "name",
+ "netin",
+ "netout",
+ "network",
+ "network-type",
+ "node",
+ "plugintype",
+ "pool",
+ "protocol",
+ "sdn",
+ "status",
+ "storage",
+ "tags",
+ "template",
+ "type",
+ "uptime",
+ "vmid",
+ "zone-type"
+ ]
+ }
+ },
+ "/cluster/tasks": {
+ "get": {
+ "responseFields": [
+ "upid"
+ ]
+ }
+ },
+ "/cluster/options": {
+ "put": {
+ "params": {
+ "console": {
+ "enum": [
+ "applet",
+ "vv",
+ "html5",
+ "xtermjs"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "fencing": {
+ "enum": [
+ "watchdog",
+ "hardware",
+ "both"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "keyboard": {
+ "enum": [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "language": {
+ "enum": [
+ "ar",
+ "ca",
+ "da",
+ "de",
+ "en",
+ "es",
+ "eu",
+ "fa",
+ "fr",
+ "hr",
+ "he",
+ "it",
+ "ja",
+ "ka",
+ "kr",
+ "nb",
+ "nl",
+ "nn",
+ "pl",
+ "pt_BR",
+ "ru",
+ "sl",
+ "sv",
+ "tr",
+ "ukr",
+ "zh_CN",
+ "zh_TW"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/status": {
+ "get": {
+ "responseFields": [
+ "id",
+ "ip",
+ "level",
+ "local",
+ "name",
+ "nodeid",
+ "nodes",
+ "online",
+ "quorate",
+ "type",
+ "version"
+ ]
+ }
+ },
+ "/nodes": {
+ "get": {
+ "responseFields": [
+ "cpu",
+ "level",
+ "maxcpu",
+ "maxmem",
+ "mem",
+ "node",
+ "ssl_fingerprint",
+ "status",
+ "uptime"
+ ]
+ }
+ },
+ "/nodes/{node}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/qemu": {
+ "get": {
+ "responseFields": [
+ "cpu",
+ "cpus",
+ "diskread",
+ "diskwrite",
+ "lock",
+ "maxdisk",
+ "maxmem",
+ "mem",
+ "memhost",
+ "name",
+ "netin",
+ "netout",
+ "pid",
+ "pressurecpufull",
+ "pressurecpusome",
+ "pressureiofull",
+ "pressureiosome",
+ "pressurememoryfull",
+ "pressurememorysome",
+ "qmpstatus",
+ "running-machine",
+ "running-qemu",
+ "serial",
+ "status",
+ "tags",
+ "template",
+ "uptime",
+ "vmid"
+ ]
+ },
+ "post": {
+ "params": {
+ "arch": {
+ "enum": [
+ "x86_64",
+ "aarch64"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "bios": {
+ "enum": [
+ "seabios",
+ "ovmf"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "citype": {
+ "enum": [
+ "configdrive2",
+ "nocloud",
+ "opennebula"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "hotplug": {
+ "enum": null,
+ "x-enum-values": [
+ "network",
+ "disk",
+ "cpu",
+ "memory",
+ "usb",
+ "cloudinit"
+ ],
+ "type": "string"
+ },
+ "hugepages": {
+ "enum": [
+ "any",
+ "2",
+ "1024"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "keyboard": {
+ "enum": [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "lock": {
+ "enum": [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "ostype": {
+ "enum": [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "win11",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "scsihw": {
+ "enum": [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/rules": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/aliases": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/ipset": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "nomatch"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/options": {
+ "get": {
+ "responseFields": [
+ "dhcp",
+ "enable",
+ "ipfilter",
+ "log_level_in",
+ "log_level_out",
+ "macfilter",
+ "ndp",
+ "policy_in",
+ "policy_out",
+ "radv"
+ ]
+ },
+ "put": {
+ "params": {
+ "log_level_in": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "log_level_out": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_in": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_out": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/refs": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "alias",
+ "ipset"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "comment",
+ "name",
+ "ref",
+ "scope",
+ "type"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/agent": {
+ "get": {
+ "responseFields": []
+ },
+ "post": {
+ "params": {
+ "command": {
+ "enum": [
+ "fsfreeze-freeze",
+ "fsfreeze-status",
+ "fsfreeze-thaw",
+ "fstrim",
+ "get-fsinfo",
+ "get-host-name",
+ "get-memory-block-info",
+ "get-memory-blocks",
+ "get-osinfo",
+ "get-time",
+ "get-timezone",
+ "get-users",
+ "get-vcpus",
+ "info",
+ "network-get-interfaces",
+ "ping",
+ "shutdown",
+ "suspend-disk",
+ "suspend-hybrid",
+ "suspend-ram"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/agent/exec": {
+ "post": {
+ "responseFields": [
+ "pid"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/agent/exec-status": {
+ "get": {
+ "responseFields": [
+ "err-data",
+ "err-truncated",
+ "exitcode",
+ "exited",
+ "out-data",
+ "out-truncated",
+ "signal"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/agent/file-read": {
+ "get": {
+ "responseFields": [
+ "content",
+ "truncated"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/rrd": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "filename"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/rrddata": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/config": {
+ "get": {
+ "responseFields": [
+ "acpi",
+ "affinity",
+ "agent",
+ "allow-ksm",
+ "amd-sev",
+ "arch",
+ "args",
+ "audio0",
+ "autostart",
+ "balloon",
+ "bios",
+ "boot",
+ "bootdisk",
+ "cdrom",
+ "cicustom",
+ "cipassword",
+ "citype",
+ "ciupgrade",
+ "ciuser",
+ "cores",
+ "cpu",
+ "cpulimit",
+ "cpuunits",
+ "description",
+ "digest",
+ "efidisk0",
+ "freeze",
+ "hookscript",
+ "hostpci[n]",
+ "hotplug",
+ "hugepages",
+ "ide[n]",
+ "intel-tdx",
+ "ipconfig[n]",
+ "ivshmem",
+ "keephugepages",
+ "keyboard",
+ "kvm",
+ "localtime",
+ "lock",
+ "machine",
+ "memory",
+ "meta",
+ "migrate_downtime",
+ "migrate_speed",
+ "name",
+ "nameserver",
+ "net[n]",
+ "numa",
+ "numa[n]",
+ "onboot",
+ "ostype",
+ "parallel[n]",
+ "parent",
+ "protection",
+ "reboot",
+ "rng0",
+ "running-nets-host-mtu",
+ "runningcpu",
+ "runningmachine",
+ "sata[n]",
+ "scsi[n]",
+ "scsihw",
+ "searchdomain",
+ "serial[n]",
+ "shares",
+ "smbios1",
+ "smp",
+ "snaptime",
+ "sockets",
+ "spice_enhancements",
+ "sshkeys",
+ "startdate",
+ "startup",
+ "tablet",
+ "tags",
+ "tdf",
+ "template",
+ "tpmstate0",
+ "unused[n]",
+ "usb[n]",
+ "vcpus",
+ "vga",
+ "virtio[n]",
+ "virtiofs[n]",
+ "vmgenid",
+ "vmstate",
+ "vmstatestorage",
+ "watchdog"
+ ]
+ },
+ "post": {
+ "params": {
+ "arch": {
+ "enum": [
+ "x86_64",
+ "aarch64"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "bios": {
+ "enum": [
+ "seabios",
+ "ovmf"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "citype": {
+ "enum": [
+ "configdrive2",
+ "nocloud",
+ "opennebula"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "hotplug": {
+ "enum": null,
+ "x-enum-values": [
+ "network",
+ "disk",
+ "cpu",
+ "memory",
+ "usb",
+ "cloudinit"
+ ],
+ "type": "string"
+ },
+ "hugepages": {
+ "enum": [
+ "any",
+ "2",
+ "1024"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "keyboard": {
+ "enum": [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "lock": {
+ "enum": [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "ostype": {
+ "enum": [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "win11",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "scsihw": {
+ "enum": [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ },
+ "put": {
+ "params": {
+ "arch": {
+ "enum": [
+ "x86_64",
+ "aarch64"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "bios": {
+ "enum": [
+ "seabios",
+ "ovmf"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "citype": {
+ "enum": [
+ "configdrive2",
+ "nocloud",
+ "opennebula"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "hotplug": {
+ "enum": null,
+ "x-enum-values": [
+ "network",
+ "disk",
+ "cpu",
+ "memory",
+ "usb",
+ "cloudinit"
+ ],
+ "type": "string"
+ },
+ "hugepages": {
+ "enum": [
+ "any",
+ "2",
+ "1024"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "keyboard": {
+ "enum": [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "lock": {
+ "enum": [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "ostype": {
+ "enum": [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "win11",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "scsihw": {
+ "enum": [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/pending": {
+ "get": {
+ "responseFields": [
+ "delete",
+ "key",
+ "pending",
+ "value"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/cloudinit": {
+ "get": {
+ "responseFields": [
+ "delete",
+ "key",
+ "pending",
+ "value"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/cloudinit/dump": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "user",
+ "network",
+ "meta"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/termproxy": {
+ "post": {
+ "params": {
+ "serial": {
+ "enum": [
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/vncwebsocket": {
+ "get": {
+ "responseFields": [
+ "port"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/status": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/status/current": {
+ "get": {
+ "responseFields": [
+ "agent",
+ "clipboard",
+ "cpu",
+ "cpus",
+ "diskread",
+ "diskwrite",
+ "ha",
+ "lock",
+ "maxdisk",
+ "maxmem",
+ "mem",
+ "memhost",
+ "name",
+ "netin",
+ "netout",
+ "pid",
+ "pressurecpufull",
+ "pressurecpusome",
+ "pressureiofull",
+ "pressureiosome",
+ "pressurememoryfull",
+ "pressurememorysome",
+ "qmpstatus",
+ "running-machine",
+ "running-qemu",
+ "serial",
+ "spice",
+ "status",
+ "tags",
+ "template",
+ "uptime",
+ "vmid"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/status/start": {
+ "post": {
+ "params": {
+ "migration_type": {
+ "enum": [
+ "secure",
+ "insecure"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/feature": {
+ "get": {
+ "params": {
+ "feature": {
+ "enum": [
+ "snapshot",
+ "clone",
+ "copy"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "hasFeature",
+ "nodes"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/clone": {
+ "post": {
+ "params": {
+ "format": {
+ "enum": [
+ "raw",
+ "qcow2",
+ "vmdk"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/move_disk": {
+ "post": {
+ "params": {
+ "disk": {
+ "enum": [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "format": {
+ "enum": [
+ "raw",
+ "qcow2",
+ "vmdk"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "target-disk": {
+ "enum": [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/migrate": {
+ "get": {
+ "responseFields": [
+ "allowed_nodes",
+ "dependent-ha-resources",
+ "has-dbus-vmstate",
+ "local_disks",
+ "local_resources",
+ "mapped-resource-info",
+ "mapped-resources",
+ "not_allowed_nodes",
+ "running"
+ ]
+ },
+ "post": {
+ "params": {
+ "migration_type": {
+ "enum": [
+ "secure",
+ "insecure"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/resize": {
+ "put": {
+ "params": {
+ "disk": {
+ "enum": [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/snapshot": {
+ "get": {
+ "responseFields": [
+ "description",
+ "name",
+ "parent",
+ "snaptime",
+ "vmstate"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/template": {
+ "post": {
+ "params": {
+ "disk": {
+ "enum": [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/mtunnelwebsocket": {
+ "get": {
+ "responseFields": [
+ "port",
+ "socket"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc": {
+ "get": {
+ "responseFields": [
+ "cpu",
+ "cpus",
+ "disk",
+ "diskread",
+ "diskwrite",
+ "lock",
+ "maxdisk",
+ "maxmem",
+ "maxswap",
+ "mem",
+ "name",
+ "netin",
+ "netout",
+ "pressurecpusome",
+ "pressureiofull",
+ "pressureiosome",
+ "pressurememoryfull",
+ "pressurememorysome",
+ "status",
+ "tags",
+ "template",
+ "uptime",
+ "vmid"
+ ]
+ },
+ "post": {
+ "params": {
+ "arch": {
+ "enum": [
+ "amd64",
+ "i386",
+ "arm64",
+ "armhf",
+ "riscv32",
+ "riscv64"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "cmode": {
+ "enum": [
+ "shell",
+ "console",
+ "tty"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "lock": {
+ "enum": [
+ "backup",
+ "create",
+ "destroyed",
+ "disk",
+ "fstrim",
+ "migrate",
+ "mounted",
+ "rollback",
+ "snapshot",
+ "snapshot-delete"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "ostype": {
+ "enum": [
+ "debian",
+ "devuan",
+ "ubuntu",
+ "centos",
+ "fedora",
+ "opensuse",
+ "archlinux",
+ "alpine",
+ "gentoo",
+ "nixos",
+ "unmanaged"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/config": {
+ "get": {
+ "responseFields": [
+ "arch",
+ "cmode",
+ "console",
+ "cores",
+ "cpulimit",
+ "cpuunits",
+ "debug",
+ "description",
+ "dev[n]",
+ "digest",
+ "entrypoint",
+ "env",
+ "features",
+ "hookscript",
+ "hostname",
+ "lock",
+ "lxc",
+ "memory",
+ "mp[n]",
+ "nameserver",
+ "net[n]",
+ "onboot",
+ "ostype",
+ "protection",
+ "rootfs",
+ "searchdomain",
+ "startup",
+ "swap",
+ "tags",
+ "template",
+ "timezone",
+ "tty",
+ "unprivileged",
+ "unused[n]"
+ ]
+ },
+ "put": {
+ "params": {
+ "arch": {
+ "enum": [
+ "amd64",
+ "i386",
+ "arm64",
+ "armhf",
+ "riscv32",
+ "riscv64"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "cmode": {
+ "enum": [
+ "shell",
+ "console",
+ "tty"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "lock": {
+ "enum": [
+ "backup",
+ "create",
+ "destroyed",
+ "disk",
+ "fstrim",
+ "migrate",
+ "mounted",
+ "rollback",
+ "snapshot",
+ "snapshot-delete"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "ostype": {
+ "enum": [
+ "debian",
+ "devuan",
+ "ubuntu",
+ "centos",
+ "fedora",
+ "opensuse",
+ "archlinux",
+ "alpine",
+ "gentoo",
+ "nixos",
+ "unmanaged"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/status": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/status/current": {
+ "get": {
+ "responseFields": [
+ "cpu",
+ "cpus",
+ "disk",
+ "diskread",
+ "diskwrite",
+ "ha",
+ "lock",
+ "maxdisk",
+ "maxmem",
+ "maxswap",
+ "mem",
+ "name",
+ "netin",
+ "netout",
+ "pressurecpusome",
+ "pressureiofull",
+ "pressureiosome",
+ "pressurememoryfull",
+ "pressurememorysome",
+ "status",
+ "tags",
+ "template",
+ "uptime",
+ "vmid"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/snapshot": {
+ "get": {
+ "responseFields": [
+ "description",
+ "name",
+ "parent",
+ "snaptime"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/rules": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/aliases": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/ipset": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "nomatch"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/options": {
+ "get": {
+ "responseFields": [
+ "dhcp",
+ "enable",
+ "ipfilter",
+ "log_level_in",
+ "log_level_out",
+ "macfilter",
+ "ndp",
+ "policy_in",
+ "policy_out",
+ "radv"
+ ]
+ },
+ "put": {
+ "params": {
+ "log_level_in": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "log_level_out": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_in": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_out": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/refs": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "alias",
+ "ipset"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "comment",
+ "name",
+ "ref",
+ "scope",
+ "type"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/rrd": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "filename"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/rrddata": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/vncwebsocket": {
+ "get": {
+ "responseFields": [
+ "port"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/feature": {
+ "get": {
+ "params": {
+ "feature": {
+ "enum": [
+ "snapshot",
+ "clone",
+ "copy"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "hasFeature"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/resize": {
+ "put": {
+ "params": {
+ "disk": {
+ "enum": [
+ "rootfs",
+ "mp0",
+ "mp1",
+ "mp2",
+ "mp3",
+ "mp4",
+ "mp5",
+ "mp6",
+ "mp7",
+ "mp8",
+ "mp9",
+ "mp10",
+ "mp11",
+ "mp12",
+ "mp13",
+ "mp14",
+ "mp15",
+ "mp16",
+ "mp17",
+ "mp18",
+ "mp19",
+ "mp20",
+ "mp21",
+ "mp22",
+ "mp23",
+ "mp24",
+ "mp25",
+ "mp26",
+ "mp27",
+ "mp28",
+ "mp29",
+ "mp30",
+ "mp31",
+ "mp32",
+ "mp33",
+ "mp34",
+ "mp35",
+ "mp36",
+ "mp37",
+ "mp38",
+ "mp39",
+ "mp40",
+ "mp41",
+ "mp42",
+ "mp43",
+ "mp44",
+ "mp45",
+ "mp46",
+ "mp47",
+ "mp48",
+ "mp49",
+ "mp50",
+ "mp51",
+ "mp52",
+ "mp53",
+ "mp54",
+ "mp55",
+ "mp56",
+ "mp57",
+ "mp58",
+ "mp59",
+ "mp60",
+ "mp61",
+ "mp62",
+ "mp63",
+ "mp64",
+ "mp65",
+ "mp66",
+ "mp67",
+ "mp68",
+ "mp69",
+ "mp70",
+ "mp71",
+ "mp72",
+ "mp73",
+ "mp74",
+ "mp75",
+ "mp76",
+ "mp77",
+ "mp78",
+ "mp79",
+ "mp80",
+ "mp81",
+ "mp82",
+ "mp83",
+ "mp84",
+ "mp85",
+ "mp86",
+ "mp87",
+ "mp88",
+ "mp89",
+ "mp90",
+ "mp91",
+ "mp92",
+ "mp93",
+ "mp94",
+ "mp95",
+ "mp96",
+ "mp97",
+ "mp98",
+ "mp99",
+ "mp100",
+ "mp101",
+ "mp102",
+ "mp103",
+ "mp104",
+ "mp105",
+ "mp106",
+ "mp107",
+ "mp108",
+ "mp109",
+ "mp110",
+ "mp111",
+ "mp112",
+ "mp113",
+ "mp114",
+ "mp115",
+ "mp116",
+ "mp117",
+ "mp118",
+ "mp119",
+ "mp120",
+ "mp121",
+ "mp122",
+ "mp123",
+ "mp124",
+ "mp125",
+ "mp126",
+ "mp127",
+ "mp128",
+ "mp129",
+ "mp130",
+ "mp131",
+ "mp132",
+ "mp133",
+ "mp134",
+ "mp135",
+ "mp136",
+ "mp137",
+ "mp138",
+ "mp139",
+ "mp140",
+ "mp141",
+ "mp142",
+ "mp143",
+ "mp144",
+ "mp145",
+ "mp146",
+ "mp147",
+ "mp148",
+ "mp149",
+ "mp150",
+ "mp151",
+ "mp152",
+ "mp153",
+ "mp154",
+ "mp155",
+ "mp156",
+ "mp157",
+ "mp158",
+ "mp159",
+ "mp160",
+ "mp161",
+ "mp162",
+ "mp163",
+ "mp164",
+ "mp165",
+ "mp166",
+ "mp167",
+ "mp168",
+ "mp169",
+ "mp170",
+ "mp171",
+ "mp172",
+ "mp173",
+ "mp174",
+ "mp175",
+ "mp176",
+ "mp177",
+ "mp178",
+ "mp179",
+ "mp180",
+ "mp181",
+ "mp182",
+ "mp183",
+ "mp184",
+ "mp185",
+ "mp186",
+ "mp187",
+ "mp188",
+ "mp189",
+ "mp190",
+ "mp191",
+ "mp192",
+ "mp193",
+ "mp194",
+ "mp195",
+ "mp196",
+ "mp197",
+ "mp198",
+ "mp199",
+ "mp200",
+ "mp201",
+ "mp202",
+ "mp203",
+ "mp204",
+ "mp205",
+ "mp206",
+ "mp207",
+ "mp208",
+ "mp209",
+ "mp210",
+ "mp211",
+ "mp212",
+ "mp213",
+ "mp214",
+ "mp215",
+ "mp216",
+ "mp217",
+ "mp218",
+ "mp219",
+ "mp220",
+ "mp221",
+ "mp222",
+ "mp223",
+ "mp224",
+ "mp225",
+ "mp226",
+ "mp227",
+ "mp228",
+ "mp229",
+ "mp230",
+ "mp231",
+ "mp232",
+ "mp233",
+ "mp234",
+ "mp235",
+ "mp236",
+ "mp237",
+ "mp238",
+ "mp239",
+ "mp240",
+ "mp241",
+ "mp242",
+ "mp243",
+ "mp244",
+ "mp245",
+ "mp246",
+ "mp247",
+ "mp248",
+ "mp249",
+ "mp250",
+ "mp251",
+ "mp252",
+ "mp253",
+ "mp254",
+ "mp255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/move_volume": {
+ "post": {
+ "params": {
+ "target-volume": {
+ "enum": [
+ "rootfs",
+ "mp0",
+ "mp1",
+ "mp2",
+ "mp3",
+ "mp4",
+ "mp5",
+ "mp6",
+ "mp7",
+ "mp8",
+ "mp9",
+ "mp10",
+ "mp11",
+ "mp12",
+ "mp13",
+ "mp14",
+ "mp15",
+ "mp16",
+ "mp17",
+ "mp18",
+ "mp19",
+ "mp20",
+ "mp21",
+ "mp22",
+ "mp23",
+ "mp24",
+ "mp25",
+ "mp26",
+ "mp27",
+ "mp28",
+ "mp29",
+ "mp30",
+ "mp31",
+ "mp32",
+ "mp33",
+ "mp34",
+ "mp35",
+ "mp36",
+ "mp37",
+ "mp38",
+ "mp39",
+ "mp40",
+ "mp41",
+ "mp42",
+ "mp43",
+ "mp44",
+ "mp45",
+ "mp46",
+ "mp47",
+ "mp48",
+ "mp49",
+ "mp50",
+ "mp51",
+ "mp52",
+ "mp53",
+ "mp54",
+ "mp55",
+ "mp56",
+ "mp57",
+ "mp58",
+ "mp59",
+ "mp60",
+ "mp61",
+ "mp62",
+ "mp63",
+ "mp64",
+ "mp65",
+ "mp66",
+ "mp67",
+ "mp68",
+ "mp69",
+ "mp70",
+ "mp71",
+ "mp72",
+ "mp73",
+ "mp74",
+ "mp75",
+ "mp76",
+ "mp77",
+ "mp78",
+ "mp79",
+ "mp80",
+ "mp81",
+ "mp82",
+ "mp83",
+ "mp84",
+ "mp85",
+ "mp86",
+ "mp87",
+ "mp88",
+ "mp89",
+ "mp90",
+ "mp91",
+ "mp92",
+ "mp93",
+ "mp94",
+ "mp95",
+ "mp96",
+ "mp97",
+ "mp98",
+ "mp99",
+ "mp100",
+ "mp101",
+ "mp102",
+ "mp103",
+ "mp104",
+ "mp105",
+ "mp106",
+ "mp107",
+ "mp108",
+ "mp109",
+ "mp110",
+ "mp111",
+ "mp112",
+ "mp113",
+ "mp114",
+ "mp115",
+ "mp116",
+ "mp117",
+ "mp118",
+ "mp119",
+ "mp120",
+ "mp121",
+ "mp122",
+ "mp123",
+ "mp124",
+ "mp125",
+ "mp126",
+ "mp127",
+ "mp128",
+ "mp129",
+ "mp130",
+ "mp131",
+ "mp132",
+ "mp133",
+ "mp134",
+ "mp135",
+ "mp136",
+ "mp137",
+ "mp138",
+ "mp139",
+ "mp140",
+ "mp141",
+ "mp142",
+ "mp143",
+ "mp144",
+ "mp145",
+ "mp146",
+ "mp147",
+ "mp148",
+ "mp149",
+ "mp150",
+ "mp151",
+ "mp152",
+ "mp153",
+ "mp154",
+ "mp155",
+ "mp156",
+ "mp157",
+ "mp158",
+ "mp159",
+ "mp160",
+ "mp161",
+ "mp162",
+ "mp163",
+ "mp164",
+ "mp165",
+ "mp166",
+ "mp167",
+ "mp168",
+ "mp169",
+ "mp170",
+ "mp171",
+ "mp172",
+ "mp173",
+ "mp174",
+ "mp175",
+ "mp176",
+ "mp177",
+ "mp178",
+ "mp179",
+ "mp180",
+ "mp181",
+ "mp182",
+ "mp183",
+ "mp184",
+ "mp185",
+ "mp186",
+ "mp187",
+ "mp188",
+ "mp189",
+ "mp190",
+ "mp191",
+ "mp192",
+ "mp193",
+ "mp194",
+ "mp195",
+ "mp196",
+ "mp197",
+ "mp198",
+ "mp199",
+ "mp200",
+ "mp201",
+ "mp202",
+ "mp203",
+ "mp204",
+ "mp205",
+ "mp206",
+ "mp207",
+ "mp208",
+ "mp209",
+ "mp210",
+ "mp211",
+ "mp212",
+ "mp213",
+ "mp214",
+ "mp215",
+ "mp216",
+ "mp217",
+ "mp218",
+ "mp219",
+ "mp220",
+ "mp221",
+ "mp222",
+ "mp223",
+ "mp224",
+ "mp225",
+ "mp226",
+ "mp227",
+ "mp228",
+ "mp229",
+ "mp230",
+ "mp231",
+ "mp232",
+ "mp233",
+ "mp234",
+ "mp235",
+ "mp236",
+ "mp237",
+ "mp238",
+ "mp239",
+ "mp240",
+ "mp241",
+ "mp242",
+ "mp243",
+ "mp244",
+ "mp245",
+ "mp246",
+ "mp247",
+ "mp248",
+ "mp249",
+ "mp250",
+ "mp251",
+ "mp252",
+ "mp253",
+ "mp254",
+ "mp255",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "volume": {
+ "enum": [
+ "rootfs",
+ "mp0",
+ "mp1",
+ "mp2",
+ "mp3",
+ "mp4",
+ "mp5",
+ "mp6",
+ "mp7",
+ "mp8",
+ "mp9",
+ "mp10",
+ "mp11",
+ "mp12",
+ "mp13",
+ "mp14",
+ "mp15",
+ "mp16",
+ "mp17",
+ "mp18",
+ "mp19",
+ "mp20",
+ "mp21",
+ "mp22",
+ "mp23",
+ "mp24",
+ "mp25",
+ "mp26",
+ "mp27",
+ "mp28",
+ "mp29",
+ "mp30",
+ "mp31",
+ "mp32",
+ "mp33",
+ "mp34",
+ "mp35",
+ "mp36",
+ "mp37",
+ "mp38",
+ "mp39",
+ "mp40",
+ "mp41",
+ "mp42",
+ "mp43",
+ "mp44",
+ "mp45",
+ "mp46",
+ "mp47",
+ "mp48",
+ "mp49",
+ "mp50",
+ "mp51",
+ "mp52",
+ "mp53",
+ "mp54",
+ "mp55",
+ "mp56",
+ "mp57",
+ "mp58",
+ "mp59",
+ "mp60",
+ "mp61",
+ "mp62",
+ "mp63",
+ "mp64",
+ "mp65",
+ "mp66",
+ "mp67",
+ "mp68",
+ "mp69",
+ "mp70",
+ "mp71",
+ "mp72",
+ "mp73",
+ "mp74",
+ "mp75",
+ "mp76",
+ "mp77",
+ "mp78",
+ "mp79",
+ "mp80",
+ "mp81",
+ "mp82",
+ "mp83",
+ "mp84",
+ "mp85",
+ "mp86",
+ "mp87",
+ "mp88",
+ "mp89",
+ "mp90",
+ "mp91",
+ "mp92",
+ "mp93",
+ "mp94",
+ "mp95",
+ "mp96",
+ "mp97",
+ "mp98",
+ "mp99",
+ "mp100",
+ "mp101",
+ "mp102",
+ "mp103",
+ "mp104",
+ "mp105",
+ "mp106",
+ "mp107",
+ "mp108",
+ "mp109",
+ "mp110",
+ "mp111",
+ "mp112",
+ "mp113",
+ "mp114",
+ "mp115",
+ "mp116",
+ "mp117",
+ "mp118",
+ "mp119",
+ "mp120",
+ "mp121",
+ "mp122",
+ "mp123",
+ "mp124",
+ "mp125",
+ "mp126",
+ "mp127",
+ "mp128",
+ "mp129",
+ "mp130",
+ "mp131",
+ "mp132",
+ "mp133",
+ "mp134",
+ "mp135",
+ "mp136",
+ "mp137",
+ "mp138",
+ "mp139",
+ "mp140",
+ "mp141",
+ "mp142",
+ "mp143",
+ "mp144",
+ "mp145",
+ "mp146",
+ "mp147",
+ "mp148",
+ "mp149",
+ "mp150",
+ "mp151",
+ "mp152",
+ "mp153",
+ "mp154",
+ "mp155",
+ "mp156",
+ "mp157",
+ "mp158",
+ "mp159",
+ "mp160",
+ "mp161",
+ "mp162",
+ "mp163",
+ "mp164",
+ "mp165",
+ "mp166",
+ "mp167",
+ "mp168",
+ "mp169",
+ "mp170",
+ "mp171",
+ "mp172",
+ "mp173",
+ "mp174",
+ "mp175",
+ "mp176",
+ "mp177",
+ "mp178",
+ "mp179",
+ "mp180",
+ "mp181",
+ "mp182",
+ "mp183",
+ "mp184",
+ "mp185",
+ "mp186",
+ "mp187",
+ "mp188",
+ "mp189",
+ "mp190",
+ "mp191",
+ "mp192",
+ "mp193",
+ "mp194",
+ "mp195",
+ "mp196",
+ "mp197",
+ "mp198",
+ "mp199",
+ "mp200",
+ "mp201",
+ "mp202",
+ "mp203",
+ "mp204",
+ "mp205",
+ "mp206",
+ "mp207",
+ "mp208",
+ "mp209",
+ "mp210",
+ "mp211",
+ "mp212",
+ "mp213",
+ "mp214",
+ "mp215",
+ "mp216",
+ "mp217",
+ "mp218",
+ "mp219",
+ "mp220",
+ "mp221",
+ "mp222",
+ "mp223",
+ "mp224",
+ "mp225",
+ "mp226",
+ "mp227",
+ "mp228",
+ "mp229",
+ "mp230",
+ "mp231",
+ "mp232",
+ "mp233",
+ "mp234",
+ "mp235",
+ "mp236",
+ "mp237",
+ "mp238",
+ "mp239",
+ "mp240",
+ "mp241",
+ "mp242",
+ "mp243",
+ "mp244",
+ "mp245",
+ "mp246",
+ "mp247",
+ "mp248",
+ "mp249",
+ "mp250",
+ "mp251",
+ "mp252",
+ "mp253",
+ "mp254",
+ "mp255",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/pending": {
+ "get": {
+ "responseFields": [
+ "delete",
+ "key",
+ "pending",
+ "value"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/mtunnelwebsocket": {
+ "get": {
+ "responseFields": [
+ "port",
+ "socket"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/ceph/cfg": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/ceph/cfg/db": {
+ "get": {
+ "responseFields": [
+ "can_update_at_runtime",
+ "level",
+ "mask",
+ "name",
+ "section",
+ "value"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/osd/{osdid}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/ceph/osd/{osdid}/metadata": {
+ "get": {
+ "responseFields": [
+ "devices",
+ "osd"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/osd/{osdid}/lv-info": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "block",
+ "db",
+ "wal"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "creation_time",
+ "lv_name",
+ "lv_path",
+ "lv_size",
+ "lv_uuid",
+ "vg_name"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/mds": {
+ "get": {
+ "responseFields": [
+ "addr",
+ "host",
+ "name",
+ "rank",
+ "standby_replay",
+ "state"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/mgr": {
+ "get": {
+ "responseFields": [
+ "addr",
+ "host",
+ "name",
+ "state"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/mon": {
+ "get": {
+ "responseFields": [
+ "addr",
+ "ceph_version",
+ "ceph_version_short",
+ "direxists",
+ "host",
+ "name",
+ "quorum",
+ "rank",
+ "service",
+ "state"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/fs": {
+ "get": {
+ "responseFields": [
+ "data_pool",
+ "metadata_pool",
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/pool": {
+ "get": {
+ "responseFields": [
+ "application_metadata",
+ "autoscale_status",
+ "bytes_used",
+ "crush_rule",
+ "crush_rule_name",
+ "min_size",
+ "percent_used",
+ "pg_autoscale_mode",
+ "pg_num",
+ "pg_num_final",
+ "pg_num_min",
+ "pool",
+ "pool_name",
+ "size",
+ "target_size",
+ "target_size_ratio",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "application": {
+ "enum": [
+ "rbd",
+ "cephfs",
+ "rgw"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "pg_autoscale_mode": {
+ "enum": [
+ "on",
+ "off",
+ "warn"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/ceph/pool/{name}": {
+ "get": {
+ "responseFields": []
+ },
+ "put": {
+ "params": {
+ "application": {
+ "enum": [
+ "rbd",
+ "cephfs",
+ "rgw"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "pg_autoscale_mode": {
+ "enum": [
+ "on",
+ "off",
+ "warn"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/ceph/pool/{name}/status": {
+ "get": {
+ "responseFields": [
+ "application",
+ "application_list",
+ "autoscale_status",
+ "crush_rule",
+ "fast_read",
+ "hashpspool",
+ "id",
+ "min_size",
+ "name",
+ "nodeep-scrub",
+ "nodelete",
+ "nopgchange",
+ "noscrub",
+ "nosizechange",
+ "pg_autoscale_mode",
+ "pg_num",
+ "pg_num_min",
+ "pgp_num",
+ "size",
+ "statistics",
+ "target_size",
+ "target_size_ratio",
+ "use_gmt_hitset",
+ "write_fadvise_dontneed"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/rules": {
+ "get": {
+ "responseFields": [
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/cmd-safety": {
+ "get": {
+ "params": {
+ "action": {
+ "enum": [
+ "stop",
+ "destroy"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "service": {
+ "enum": [
+ "osd",
+ "mon",
+ "mds"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "safe",
+ "status"
+ ]
+ }
+ },
+ "/nodes/{node}/vzdump": {
+ "post": {
+ "params": {
+ "compress": {
+ "enum": [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "mailnotification": {
+ "enum": [
+ "always",
+ "failure"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "mode": {
+ "enum": [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "notification-mode": {
+ "enum": [
+ "auto",
+ "legacy-sendmail",
+ "notification-system"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "pbs-change-detection-mode": {
+ "enum": [
+ "legacy",
+ "data",
+ "metadata"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/vzdump/defaults": {
+ "get": {
+ "responseFields": [
+ "all",
+ "bwlimit",
+ "compress",
+ "dumpdir",
+ "exclude",
+ "exclude-path",
+ "fleecing",
+ "ionice",
+ "lockwait",
+ "mailnotification",
+ "mailto",
+ "maxfiles",
+ "mode",
+ "node",
+ "notes-template",
+ "notification-mode",
+ "pbs-change-detection-mode",
+ "performance",
+ "pigz",
+ "pool",
+ "protected",
+ "prune-backups",
+ "quiet",
+ "remove",
+ "script",
+ "stdexcludes",
+ "stop",
+ "stopwait",
+ "storage",
+ "tmpdir",
+ "vmid",
+ "zstd"
+ ]
+ }
+ },
+ "/nodes/{node}/services": {
+ "get": {
+ "responseFields": [
+ "active-state",
+ "desc",
+ "name",
+ "service",
+ "state",
+ "unit-state"
+ ]
+ }
+ },
+ "/nodes/{node}/services/{service}": {
+ "get": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/services/{service}/state": {
+ "get": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "active-state",
+ "desc",
+ "name",
+ "service",
+ "state",
+ "unit-state"
+ ]
+ }
+ },
+ "/nodes/{node}/services/{service}/start": {
+ "post": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/services/{service}/stop": {
+ "post": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/services/{service}/restart": {
+ "post": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/services/{service}/reload": {
+ "post": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/subscription": {
+ "get": {
+ "responseFields": [
+ "checktime",
+ "key",
+ "level",
+ "message",
+ "nextduedate",
+ "productname",
+ "regdate",
+ "serverid",
+ "signature",
+ "sockets",
+ "status",
+ "url"
+ ]
+ }
+ },
+ "/nodes/{node}/network": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "fabric",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "vnet",
+ "any_bridge",
+ "any_local_bridge",
+ "include_sdn"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "active",
+ "address",
+ "address6",
+ "autostart",
+ "bond-primary",
+ "bond_mode",
+ "bond_xmit_hash_policy",
+ "bridge-access",
+ "bridge-arp-nd-suppress",
+ "bridge-learning",
+ "bridge-multicast-flood",
+ "bridge-unicast-flood",
+ "bridge_ports",
+ "bridge_vids",
+ "bridge_vlan_aware",
+ "cidr",
+ "cidr6",
+ "comments",
+ "comments6",
+ "exists",
+ "families",
+ "gateway",
+ "gateway6",
+ "iface",
+ "link-type",
+ "method",
+ "method6",
+ "mtu",
+ "netmask",
+ "netmask6",
+ "options",
+ "options6",
+ "ovs_bonds",
+ "ovs_bridge",
+ "ovs_options",
+ "ovs_ports",
+ "ovs_tag",
+ "priority",
+ "slaves",
+ "type",
+ "uplink-id",
+ "vlan-id",
+ "vlan-protocol",
+ "vlan-raw-device",
+ "vxlan-id",
+ "vxlan-local-tunnelip",
+ "vxlan-physdev",
+ "vxlan-svcnodeip"
+ ]
+ },
+ "post": {
+ "params": {
+ "bond_mode": {
+ "enum": [
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "bond_xmit_hash_policy": {
+ "enum": [
+ "layer2",
+ "layer2+3",
+ "layer3+4"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "netmask": {
+ "enum": [
+ "0.0.0.0",
+ "128.0.0.0",
+ "192.0.0.0",
+ "224.0.0.0",
+ "240.0.0.0",
+ "248.0.0.0",
+ "252.0.0.0",
+ "254.0.0.0",
+ "255.0.0.0",
+ "255.128.0.0",
+ "255.192.0.0",
+ "255.224.0.0",
+ "255.240.0.0",
+ "255.248.0.0",
+ "255.252.0.0",
+ "255.254.0.0",
+ "255.255.0.0",
+ "255.255.128.0",
+ "255.255.192.0",
+ "255.255.224.0",
+ "255.255.240.0",
+ "255.255.248.0",
+ "255.255.252.0",
+ "255.255.254.0",
+ "255.255.255.0",
+ "255.255.255.128",
+ "255.255.255.192",
+ "255.255.255.224",
+ "255.255.255.240",
+ "255.255.255.248",
+ "255.255.255.252",
+ "255.255.255.254",
+ "255.255.255.255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "fabric",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "vnet",
+ "unknown"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/network/{iface}": {
+ "get": {
+ "responseFields": [
+ "method",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "bond_mode": {
+ "enum": [
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "bond_xmit_hash_policy": {
+ "enum": [
+ "layer2",
+ "layer2+3",
+ "layer3+4"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "netmask": {
+ "enum": [
+ "0.0.0.0",
+ "128.0.0.0",
+ "192.0.0.0",
+ "224.0.0.0",
+ "240.0.0.0",
+ "248.0.0.0",
+ "252.0.0.0",
+ "254.0.0.0",
+ "255.0.0.0",
+ "255.128.0.0",
+ "255.192.0.0",
+ "255.224.0.0",
+ "255.240.0.0",
+ "255.248.0.0",
+ "255.252.0.0",
+ "255.254.0.0",
+ "255.255.0.0",
+ "255.255.128.0",
+ "255.255.192.0",
+ "255.255.224.0",
+ "255.255.240.0",
+ "255.255.248.0",
+ "255.255.252.0",
+ "255.255.254.0",
+ "255.255.255.0",
+ "255.255.255.128",
+ "255.255.255.192",
+ "255.255.255.224",
+ "255.255.255.240",
+ "255.255.255.248",
+ "255.255.255.252",
+ "255.255.255.254",
+ "255.255.255.255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "fabric",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "vnet",
+ "unknown"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/tasks": {
+ "get": {
+ "params": {
+ "source": {
+ "enum": [
+ "archive",
+ "active",
+ "all"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "statusfilter": {
+ "enum": null,
+ "x-enum-values": [
+ "ok",
+ "error",
+ "warning",
+ "unknown"
+ ],
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "endtime",
+ "id",
+ "node",
+ "pid",
+ "pstart",
+ "starttime",
+ "status",
+ "type",
+ "upid",
+ "user"
+ ]
+ }
+ },
+ "/nodes/{node}/tasks/{upid}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/tasks/{upid}/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/tasks/{upid}/status": {
+ "get": {
+ "responseFields": [
+ "exitstatus",
+ "id",
+ "node",
+ "pid",
+ "pstart",
+ "starttime",
+ "status",
+ "type",
+ "upid",
+ "user"
+ ]
+ }
+ },
+ "/nodes/{node}/scan": {
+ "get": {
+ "responseFields": [
+ "method"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/nfs": {
+ "get": {
+ "responseFields": [
+ "options",
+ "path"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/cifs": {
+ "get": {
+ "responseFields": [
+ "description",
+ "share"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/pbs": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "store"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/iscsi": {
+ "get": {
+ "responseFields": [
+ "portal",
+ "target"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/lvm": {
+ "get": {
+ "responseFields": [
+ "vg"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/lvmthin": {
+ "get": {
+ "responseFields": [
+ "lv"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/zfs": {
+ "get": {
+ "responseFields": [
+ "pool"
+ ]
+ }
+ },
+ "/nodes/{node}/hardware": {
+ "get": {
+ "responseFields": [
+ "type"
+ ]
+ }
+ },
+ "/nodes/{node}/hardware/pci": {
+ "get": {
+ "responseFields": [
+ "class",
+ "device",
+ "device_name",
+ "id",
+ "iommugroup",
+ "mdev",
+ "subsystem_device",
+ "subsystem_device_name",
+ "subsystem_vendor",
+ "subsystem_vendor_name",
+ "vendor",
+ "vendor_name"
+ ]
+ }
+ },
+ "/nodes/{node}/hardware/usb": {
+ "get": {
+ "responseFields": [
+ "busnum",
+ "class",
+ "devnum",
+ "level",
+ "manufacturer",
+ "port",
+ "prodid",
+ "product",
+ "serial",
+ "speed",
+ "usbpath",
+ "vendid"
+ ]
+ }
+ },
+ "/nodes/{node}/capabilities": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/capabilities/qemu": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/capabilities/qemu/cpu": {
+ "get": {
+ "responseFields": [
+ "custom",
+ "name",
+ "vendor"
+ ]
+ }
+ },
+ "/nodes/{node}/capabilities/qemu/machines": {
+ "get": {
+ "responseFields": [
+ "changes",
+ "id",
+ "type",
+ "version"
+ ]
+ }
+ },
+ "/nodes/{node}/storage": {
+ "get": {
+ "params": {
+ "content": {
+ "enum": null,
+ "x-enum-values": [
+ "images",
+ "rootdir",
+ "vztmpl",
+ "backup",
+ "iso",
+ "snippets",
+ "import"
+ ],
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "active",
+ "avail",
+ "content",
+ "enabled",
+ "formats",
+ "select_existing",
+ "shared",
+ "storage",
+ "total",
+ "type",
+ "used",
+ "used_fraction"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}/prunebackups": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "qemu",
+ "lxc"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "ctime",
+ "mark",
+ "type",
+ "vmid",
+ "volid"
+ ]
+ },
+ "delete": {
+ "params": {
+ "type": {
+ "enum": [
+ "qemu",
+ "lxc"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/storage/{storage}/content": {
+ "get": {
+ "params": {
+ "content": {
+ "enum": [
+ "images",
+ "rootdir",
+ "vztmpl",
+ "backup",
+ "iso",
+ "snippets",
+ "import"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "ctime",
+ "encrypted",
+ "format",
+ "notes",
+ "parent",
+ "protected",
+ "size",
+ "used",
+ "verification",
+ "vmid",
+ "volid"
+ ]
+ },
+ "post": {
+ "params": {
+ "format": {
+ "enum": [
+ "raw",
+ "qcow2",
+ "subvol",
+ "vmdk"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/storage/{storage}/content/{volume}": {
+ "get": {
+ "responseFields": [
+ "format",
+ "notes",
+ "path",
+ "protected",
+ "size",
+ "used"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}/file-restore/list": {
+ "get": {
+ "responseFields": [
+ "filepath",
+ "leaf",
+ "mtime",
+ "size",
+ "text",
+ "type"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}/status": {
+ "get": {
+ "responseFields": [
+ "active",
+ "avail",
+ "content",
+ "enabled",
+ "shared",
+ "total",
+ "type",
+ "used"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}/rrd": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "filename"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}/rrddata": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/storage/{storage}/upload": {
+ "post": {
+ "params": {
+ "checksum-algorithm": {
+ "enum": [
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "content": {
+ "enum": [
+ "iso",
+ "vztmpl",
+ "import"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/storage/{storage}/download-url": {
+ "post": {
+ "params": {
+ "checksum-algorithm": {
+ "enum": [
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "content": {
+ "enum": [
+ "iso",
+ "vztmpl",
+ "import"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/disks": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/disks/lvm": {
+ "get": {
+ "responseFields": [
+ "children",
+ "leaf"
+ ]
+ }
+ },
+ "/nodes/{node}/disks/lvmthin": {
+ "get": {
+ "responseFields": [
+ "lv",
+ "lv_size",
+ "metadata_size",
+ "metadata_used",
+ "used",
+ "vg"
+ ]
+ }
+ },
+ "/nodes/{node}/disks/directory": {
+ "get": {
+ "responseFields": [
+ "device",
+ "options",
+ "path",
+ "type",
+ "unitfile"
+ ]
+ },
+ "post": {
+ "params": {
+ "filesystem": {
+ "enum": [
+ "ext4",
+ "xfs"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/disks/zfs": {
+ "get": {
+ "responseFields": [
+ "alloc",
+ "dedup",
+ "frag",
+ "free",
+ "health",
+ "name",
+ "size"
+ ]
+ },
+ "post": {
+ "params": {
+ "compression": {
+ "enum": [
+ "on",
+ "off",
+ "gzip",
+ "lz4",
+ "lzjb",
+ "zle",
+ "zstd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "raidlevel": {
+ "enum": [
+ "single",
+ "mirror",
+ "raid10",
+ "raidz",
+ "raidz2",
+ "raidz3",
+ "draid",
+ "draid2",
+ "draid3"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/disks/zfs/{name}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "children",
+ "errors",
+ "name",
+ "scan",
+ "state",
+ "status"
+ ]
+ }
+ },
+ "/nodes/{node}/disks/list": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "unused",
+ "journal_disks"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "devpath",
+ "gpt",
+ "health",
+ "model",
+ "mounted",
+ "osdid",
+ "osdid-list",
+ "parent",
+ "serial",
+ "size",
+ "used",
+ "vendor",
+ "wwn"
+ ]
+ }
+ },
+ "/nodes/{node}/disks/smart": {
+ "get": {
+ "responseFields": [
+ "attributes",
+ "health",
+ "text",
+ "type"
+ ]
+ }
+ },
+ "/nodes/{node}/apt": {
+ "get": {
+ "responseFields": [
+ "id"
+ ]
+ }
+ },
+ "/nodes/{node}/apt/update": {
+ "get": {
+ "responseFields": [
+ "Arch",
+ "Description",
+ "NotifyStatus",
+ "OldVersion",
+ "Origin",
+ "Package",
+ "Priority",
+ "Section",
+ "Title",
+ "Version"
+ ]
+ }
+ },
+ "/nodes/{node}/apt/repositories": {
+ "get": {
+ "responseFields": [
+ "digest",
+ "errors",
+ "files",
+ "infos",
+ "standard-repos"
+ ]
+ }
+ },
+ "/nodes/{node}/apt/versions": {
+ "get": {
+ "responseFields": [
+ "Arch",
+ "CurrentState",
+ "Description",
+ "ManagerVersion",
+ "NotifyStatus",
+ "OldVersion",
+ "Origin",
+ "Package",
+ "Priority",
+ "RunningKernel",
+ "Section",
+ "Title",
+ "Version"
+ ]
+ }
+ },
+ "/nodes/{node}/firewall": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/firewall/rules": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/firewall/rules/{pos}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/firewall/options": {
+ "get": {
+ "responseFields": [
+ "enable",
+ "log_level_forward",
+ "log_level_in",
+ "log_level_out",
+ "log_nf_conntrack",
+ "ndp",
+ "nf_conntrack_allow_invalid",
+ "nf_conntrack_helpers",
+ "nf_conntrack_max",
+ "nf_conntrack_tcp_timeout_established",
+ "nf_conntrack_tcp_timeout_syn_recv",
+ "nftables",
+ "nosmurfs",
+ "protection_synflood",
+ "protection_synflood_burst",
+ "protection_synflood_rate",
+ "smurf_log_level",
+ "tcp_flags_log_level",
+ "tcpflags"
+ ]
+ },
+ "put": {
+ "params": {
+ "log_level_forward": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "log_level_in": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "log_level_out": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "nf_conntrack_helpers": {
+ "enum": null,
+ "x-enum-values": [
+ "amanda",
+ "ftp",
+ "irc",
+ "netbios-ns",
+ "pptp",
+ "sane",
+ "sip",
+ "snmp",
+ "tftp"
+ ],
+ "type": "string"
+ },
+ "smurf_log_level": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "tcp_flags_log_level": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/firewall/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/replication": {
+ "get": {
+ "responseFields": [
+ "id"
+ ]
+ }
+ },
+ "/nodes/{node}/replication/{id}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/replication/{id}/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/certificates": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/certificates/acme": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/certificates/info": {
+ "get": {
+ "responseFields": [
+ "filename",
+ "fingerprint",
+ "issuer",
+ "notafter",
+ "notbefore",
+ "pem",
+ "public-key-bits",
+ "public-key-type",
+ "san",
+ "subject"
+ ]
+ }
+ },
+ "/nodes/{node}/certificates/custom": {
+ "post": {
+ "responseFields": [
+ "filename",
+ "fingerprint",
+ "issuer",
+ "notafter",
+ "notbefore",
+ "pem",
+ "public-key-bits",
+ "public-key-type",
+ "san",
+ "subject"
+ ]
+ }
+ },
+ "/nodes/{node}/config": {
+ "get": {
+ "params": {
+ "property": {
+ "enum": [
+ "acme",
+ "acmedomain0",
+ "acmedomain1",
+ "acmedomain2",
+ "acmedomain3",
+ "acmedomain4",
+ "acmedomain5",
+ "ballooning-target",
+ "description",
+ "startall-onboot-delay",
+ "wakeonlan"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "acme",
+ "acmedomain[n]",
+ "ballooning-target",
+ "description",
+ "digest",
+ "startall-onboot-delay",
+ "wakeonlan"
+ ]
+ }
+ },
+ "/nodes/{node}/sdn": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/sdn/zones": {
+ "get": {
+ "responseFields": [
+ "status",
+ "zone"
+ ]
+ }
+ },
+ "/nodes/{node}/sdn/zones/{zone}": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/sdn/zones/{zone}/content": {
+ "get": {
+ "responseFields": [
+ "status",
+ "statusmsg",
+ "vnet"
+ ]
+ }
+ },
+ "/nodes/{node}/version": {
+ "get": {
+ "responseFields": [
+ "release",
+ "repoid",
+ "version"
+ ]
+ }
+ },
+ "/nodes/{node}/status": {
+ "get": {
+ "responseFields": [
+ "boot-info",
+ "cpu",
+ "cpuinfo",
+ "current-kernel",
+ "loadavg",
+ "memory",
+ "pveversion",
+ "rootfs"
+ ]
+ },
+ "post": {
+ "params": {
+ "command": {
+ "enum": [
+ "reboot",
+ "shutdown"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/netstat": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/execute": {
+ "post": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/rrd": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year",
+ "decade"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "filename"
+ ]
+ }
+ },
+ "/nodes/{node}/rrddata": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year",
+ "decade"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/syslog": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/vncshell": {
+ "post": {
+ "params": {
+ "cmd": {
+ "enum": [
+ "ceph_install",
+ "login",
+ "upgrade"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/termproxy": {
+ "post": {
+ "params": {
+ "cmd": {
+ "enum": [
+ "ceph_install",
+ "login",
+ "upgrade"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/vncwebsocket": {
+ "get": {
+ "responseFields": [
+ "port"
+ ]
+ }
+ },
+ "/nodes/{node}/spiceshell": {
+ "post": {
+ "params": {
+ "cmd": {
+ "enum": [
+ "ceph_install",
+ "login",
+ "upgrade"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/dns": {
+ "get": {
+ "responseFields": [
+ "dns1",
+ "dns2",
+ "dns3",
+ "search"
+ ]
+ }
+ },
+ "/nodes/{node}/time": {
+ "get": {
+ "responseFields": [
+ "localtime",
+ "time",
+ "timezone"
+ ]
+ }
+ },
+ "/nodes/{node}/aplinfo": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/query-url-metadata": {
+ "get": {
+ "responseFields": [
+ "filename",
+ "mimetype",
+ "size"
+ ]
+ }
+ },
+ "/nodes/{node}/hosts": {
+ "get": {
+ "responseFields": [
+ "data",
+ "digest"
+ ]
+ }
+ },
+ "/storage": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "btrfs",
+ "cephfs",
+ "cifs",
+ "dir",
+ "esxi",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "pbs",
+ "rbd",
+ "zfs",
+ "zfspool"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "storage"
+ ]
+ },
+ "post": {
+ "params": {
+ "content": {
+ "enum": null,
+ "x-enum-values": [
+ "images",
+ "rootdir",
+ "vztmpl",
+ "backup",
+ "iso",
+ "snippets",
+ "import"
+ ],
+ "type": "string"
+ },
+ "format": {
+ "enum": [
+ "raw",
+ "qcow2",
+ "subvol",
+ "vmdk"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "preallocation": {
+ "enum": [
+ "off",
+ "metadata",
+ "falloc",
+ "full"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "saferemove-stepsize": {
+ "enum": [
+ "1",
+ "2",
+ "4",
+ "8",
+ "16",
+ "32"
+ ],
+ "x-enum-values": null,
+ "type": "integer"
+ },
+ "smbversion": {
+ "enum": [
+ "default",
+ "2.0",
+ "2.1",
+ "3",
+ "3.0",
+ "3.11"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "btrfs",
+ "cephfs",
+ "cifs",
+ "dir",
+ "esxi",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "pbs",
+ "rbd",
+ "zfs",
+ "zfspool"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "config",
+ "storage",
+ "type"
+ ]
+ }
+ },
+ "/storage/{storage}": {
+ "put": {
+ "params": {
+ "content": {
+ "enum": null,
+ "x-enum-values": [
+ "images",
+ "rootdir",
+ "vztmpl",
+ "backup",
+ "iso",
+ "snippets",
+ "import"
+ ],
+ "type": "string"
+ },
+ "format": {
+ "enum": [
+ "raw",
+ "qcow2",
+ "subvol",
+ "vmdk"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "preallocation": {
+ "enum": [
+ "off",
+ "metadata",
+ "falloc",
+ "full"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "saferemove-stepsize": {
+ "enum": [
+ "1",
+ "2",
+ "4",
+ "8",
+ "16",
+ "32"
+ ],
+ "x-enum-values": null,
+ "type": "integer"
+ },
+ "smbversion": {
+ "enum": [
+ "default",
+ "2.0",
+ "2.1",
+ "3",
+ "3.0",
+ "3.11"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "config",
+ "storage",
+ "type"
+ ]
+ }
+ },
+ "/access": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/access/users": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "email",
+ "enable",
+ "expire",
+ "firstname",
+ "groups",
+ "keys",
+ "lastname",
+ "realm-type",
+ "tfa-locked-until",
+ "tokens",
+ "totp-locked",
+ "userid"
+ ]
+ }
+ },
+ "/access/users/{userid}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "email",
+ "enable",
+ "expire",
+ "firstname",
+ "groups",
+ "keys",
+ "lastname",
+ "tokens"
+ ]
+ }
+ },
+ "/access/users/{userid}/tfa": {
+ "get": {
+ "responseFields": [
+ "realm",
+ "types",
+ "user"
+ ]
+ }
+ },
+ "/access/users/{userid}/token": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "expire",
+ "privsep",
+ "tokenid"
+ ]
+ }
+ },
+ "/access/users/{userid}/token/{tokenid}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "expire",
+ "privsep"
+ ]
+ },
+ "post": {
+ "responseFields": [
+ "full-tokenid",
+ "info",
+ "value"
+ ]
+ },
+ "put": {
+ "responseFields": [
+ "comment",
+ "expire",
+ "privsep"
+ ]
+ }
+ },
+ "/access/groups": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "groupid",
+ "users"
+ ]
+ }
+ },
+ "/access/groups/{groupid}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "members"
+ ]
+ }
+ },
+ "/access/roles": {
+ "get": {
+ "responseFields": [
+ "privs",
+ "roleid",
+ "special"
+ ]
+ },
+ "post": {
+ "params": {
+ "privs": {
+ "enum": null,
+ "x-enum-values": [
+ "Datastore.Allocate",
+ "Datastore.AllocateSpace",
+ "Datastore.AllocateTemplate",
+ "Datastore.Audit",
+ "Group.Allocate",
+ "Permissions.Modify",
+ "Pool.Allocate",
+ "Pool.Audit",
+ "Realm.Allocate",
+ "Realm.AllocateUser",
+ "SDN.Allocate",
+ "SDN.Audit",
+ "Sys.Audit",
+ "Sys.Console",
+ "Sys.Incoming",
+ "Sys.Modify",
+ "Sys.PowerMgmt",
+ "Sys.Syslog",
+ "User.Modify",
+ "VM.Allocate",
+ "VM.Audit",
+ "VM.Backup",
+ "VM.Clone",
+ "VM.Config.CDROM",
+ "VM.Config.CPU",
+ "VM.Config.Cloudinit",
+ "VM.Config.Disk",
+ "VM.Config.HWType",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.Options",
+ "VM.Console",
+ "VM.Migrate",
+ "VM.Monitor",
+ "VM.PowerMgmt",
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ],
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/access/roles/{roleid}": {
+ "get": {
+ "responseFields": [
+ "Datastore.Allocate",
+ "Datastore.AllocateSpace",
+ "Datastore.AllocateTemplate",
+ "Datastore.Audit",
+ "Group.Allocate",
+ "Mapping.Audit",
+ "Mapping.Modify",
+ "Mapping.Use",
+ "Permissions.Modify",
+ "Pool.Allocate",
+ "Pool.Audit",
+ "Realm.Allocate",
+ "Realm.AllocateUser",
+ "SDN.Allocate",
+ "SDN.Audit",
+ "SDN.Use",
+ "Sys.AccessNetwork",
+ "Sys.Audit",
+ "Sys.Console",
+ "Sys.Incoming",
+ "Sys.Modify",
+ "Sys.PowerMgmt",
+ "Sys.Syslog",
+ "User.Modify",
+ "VM.Allocate",
+ "VM.Audit",
+ "VM.Backup",
+ "VM.Clone",
+ "VM.Config.CDROM",
+ "VM.Config.CPU",
+ "VM.Config.Cloudinit",
+ "VM.Config.Disk",
+ "VM.Config.HWType",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.Options",
+ "VM.Console",
+ "VM.GuestAgent.Audit",
+ "VM.GuestAgent.FileRead",
+ "VM.GuestAgent.FileSystemMgmt",
+ "VM.GuestAgent.FileWrite",
+ "VM.GuestAgent.Unrestricted",
+ "VM.Migrate",
+ "VM.PowerMgmt",
+ "VM.Replicate",
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ]
+ },
+ "put": {
+ "params": {
+ "privs": {
+ "enum": null,
+ "x-enum-values": [
+ "Datastore.Allocate",
+ "Datastore.AllocateSpace",
+ "Datastore.AllocateTemplate",
+ "Datastore.Audit",
+ "Group.Allocate",
+ "Permissions.Modify",
+ "Pool.Allocate",
+ "Pool.Audit",
+ "Realm.Allocate",
+ "Realm.AllocateUser",
+ "SDN.Allocate",
+ "SDN.Audit",
+ "Sys.Audit",
+ "Sys.Console",
+ "Sys.Incoming",
+ "Sys.Modify",
+ "Sys.PowerMgmt",
+ "Sys.Syslog",
+ "User.Modify",
+ "VM.Allocate",
+ "VM.Audit",
+ "VM.Backup",
+ "VM.Clone",
+ "VM.Config.CDROM",
+ "VM.Config.CPU",
+ "VM.Config.Cloudinit",
+ "VM.Config.Disk",
+ "VM.Config.HWType",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.Options",
+ "VM.Console",
+ "VM.Migrate",
+ "VM.Monitor",
+ "VM.PowerMgmt",
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ],
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/access/acl": {
+ "get": {
+ "responseFields": [
+ "path",
+ "propagate",
+ "roleid",
+ "type",
+ "ugid"
+ ]
+ }
+ },
+ "/access/domains": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "realm",
+ "tfa",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "mode": {
+ "enum": [
+ "ldap",
+ "ldaps",
+ "ldap+starttls"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "sslversion": {
+ "enum": [
+ "tlsv1",
+ "tlsv1_1",
+ "tlsv1_2",
+ "tlsv1_3"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "ad",
+ "ldap",
+ "openid",
+ "pam",
+ "pve"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/access/domains/{realm}": {
+ "put": {
+ "params": {
+ "mode": {
+ "enum": [
+ "ldap",
+ "ldaps",
+ "ldap+starttls"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "sslversion": {
+ "enum": [
+ "tlsv1",
+ "tlsv1_1",
+ "tlsv1_2",
+ "tlsv1_3"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/access/domains/{realm}/sync": {
+ "post": {
+ "params": {
+ "scope": {
+ "enum": [
+ "users",
+ "groups",
+ "both"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/access/openid": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/access/tfa": {
+ "get": {
+ "responseFields": [
+ "entries",
+ "tfa-locked-until",
+ "totp-locked",
+ "userid"
+ ]
+ }
+ },
+ "/access/tfa/{userid}": {
+ "get": {
+ "responseFields": [
+ "created",
+ "description",
+ "enable",
+ "id",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "totp",
+ "u2f",
+ "webauthn",
+ "recovery",
+ "yubico"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "challenge",
+ "id",
+ "recovery"
+ ]
+ }
+ },
+ "/access/tfa/{userid}/{id}": {
+ "get": {
+ "responseFields": [
+ "created",
+ "description",
+ "enable",
+ "id",
+ "type"
+ ]
+ }
+ },
+ "/access/ticket": {
+ "post": {
+ "params": {
+ "privs": {
+ "enum": null,
+ "x-enum-values": [
+ "Datastore.Allocate",
+ "Datastore.AllocateSpace",
+ "Datastore.AllocateTemplate",
+ "Datastore.Audit",
+ "Group.Allocate",
+ "Permissions.Modify",
+ "Pool.Allocate",
+ "Pool.Audit",
+ "Realm.Allocate",
+ "Realm.AllocateUser",
+ "SDN.Allocate",
+ "SDN.Audit",
+ "Sys.Audit",
+ "Sys.Console",
+ "Sys.Incoming",
+ "Sys.Modify",
+ "Sys.PowerMgmt",
+ "Sys.Syslog",
+ "User.Modify",
+ "VM.Allocate",
+ "VM.Audit",
+ "VM.Backup",
+ "VM.Clone",
+ "VM.Config.CDROM",
+ "VM.Config.CPU",
+ "VM.Config.Cloudinit",
+ "VM.Config.Disk",
+ "VM.Config.HWType",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.Options",
+ "VM.Console",
+ "VM.Migrate",
+ "VM.Monitor",
+ "VM.PowerMgmt",
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ],
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "CSRFPreventionToken",
+ "clustername",
+ "ticket",
+ "username"
+ ]
+ }
+ },
+ "/pools": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "qemu",
+ "lxc",
+ "storage"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "comment",
+ "members",
+ "poolid"
+ ]
+ }
+ },
+ "/pools/{poolid}": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "qemu",
+ "lxc",
+ "storage"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "comment",
+ "members"
+ ]
+ }
+ },
+ "/version": {
+ "get": {
+ "responseFields": [
+ "console",
+ "release",
+ "repoid",
+ "version"
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.pve8.json b/tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.pve8.json
new file mode 100644
index 0000000..4289a47
--- /dev/null
+++ b/tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.pve8.json
@@ -0,0 +1,8812 @@
+{
+ "pve_version": 8,
+ "paths": {
+ "/cluster": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/replication": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "disable",
+ "guest",
+ "id",
+ "jobnum",
+ "rate",
+ "remove_job",
+ "schedule",
+ "source",
+ "target",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "remove_job": {
+ "enum": [
+ "local",
+ "full"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "local"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/replication/{id}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "disable",
+ "guest",
+ "id",
+ "jobnum",
+ "rate",
+ "remove_job",
+ "schedule",
+ "source",
+ "target",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "remove_job": {
+ "enum": [
+ "local",
+ "full"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/metrics": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/metrics/server": {
+ "get": {
+ "responseFields": [
+ "disable",
+ "id",
+ "port",
+ "server",
+ "type"
+ ]
+ }
+ },
+ "/cluster/metrics/server/{id}": {
+ "post": {
+ "params": {
+ "influxdbproto": {
+ "enum": [
+ "udp",
+ "http",
+ "https"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "otel-compression": {
+ "enum": [
+ "none",
+ "gzip"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "otel-protocol": {
+ "enum": [
+ "http",
+ "https"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "proto": {
+ "enum": [
+ "udp",
+ "tcp"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "graphite",
+ "influxdb",
+ "opentelemetry"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ },
+ "put": {
+ "params": {
+ "influxdbproto": {
+ "enum": [
+ "udp",
+ "http",
+ "https"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "otel-compression": {
+ "enum": [
+ "none",
+ "gzip"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "otel-protocol": {
+ "enum": [
+ "http",
+ "https"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "proto": {
+ "enum": [
+ "udp",
+ "tcp"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/metrics/export": {
+ "get": {
+ "responseFields": [
+ "data"
+ ]
+ }
+ },
+ "/cluster/notifications": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/notifications/matcher-fields": {
+ "get": {
+ "responseFields": [
+ "name"
+ ]
+ }
+ },
+ "/cluster/notifications/matcher-field-values": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "field",
+ "value"
+ ]
+ }
+ },
+ "/cluster/notifications/endpoints": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/notifications/endpoints/sendmail": {
+ "get": {
+ "responseFields": [
+ "author",
+ "comment",
+ "disable",
+ "from-address",
+ "mailto",
+ "mailto-user",
+ "name",
+ "origin"
+ ]
+ }
+ },
+ "/cluster/notifications/endpoints/sendmail/{name}": {
+ "get": {
+ "responseFields": [
+ "author",
+ "comment",
+ "digest",
+ "disable",
+ "from-address",
+ "mailto",
+ "mailto-user",
+ "name"
+ ]
+ }
+ },
+ "/cluster/notifications/endpoints/gotify": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "disable",
+ "name",
+ "origin",
+ "server"
+ ]
+ }
+ },
+ "/cluster/notifications/endpoints/gotify/{name}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "disable",
+ "name",
+ "server"
+ ]
+ }
+ },
+ "/cluster/notifications/endpoints/smtp": {
+ "get": {
+ "responseFields": [
+ "author",
+ "comment",
+ "disable",
+ "from-address",
+ "mailto",
+ "mailto-user",
+ "mode",
+ "name",
+ "origin",
+ "port",
+ "server",
+ "username"
+ ]
+ },
+ "post": {
+ "params": {
+ "mode": {
+ "enum": [
+ "insecure",
+ "starttls",
+ "tls"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/notifications/endpoints/smtp/{name}": {
+ "get": {
+ "responseFields": [
+ "author",
+ "comment",
+ "digest",
+ "disable",
+ "from-address",
+ "mailto",
+ "mailto-user",
+ "mode",
+ "name",
+ "port",
+ "server",
+ "username"
+ ]
+ },
+ "put": {
+ "params": {
+ "mode": {
+ "enum": [
+ "insecure",
+ "starttls",
+ "tls"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/notifications/endpoints/webhook": {
+ "get": {
+ "responseFields": [
+ "body",
+ "comment",
+ "disable",
+ "header",
+ "method",
+ "name",
+ "origin",
+ "secret",
+ "url"
+ ]
+ },
+ "post": {
+ "params": {
+ "method": {
+ "enum": [
+ "post",
+ "put",
+ "get"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/notifications/endpoints/webhook/{name}": {
+ "get": {
+ "responseFields": [
+ "body",
+ "comment",
+ "digest",
+ "disable",
+ "header",
+ "method",
+ "name",
+ "secret",
+ "url"
+ ]
+ },
+ "put": {
+ "params": {
+ "method": {
+ "enum": [
+ "post",
+ "put",
+ "get"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/notifications/targets": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "disable",
+ "name",
+ "origin",
+ "type"
+ ]
+ }
+ },
+ "/cluster/notifications/matchers": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "disable",
+ "invert-match",
+ "match-calendar",
+ "match-field",
+ "match-severity",
+ "mode",
+ "name",
+ "origin",
+ "target"
+ ]
+ },
+ "post": {
+ "params": {
+ "mode": {
+ "enum": [
+ "all",
+ "any"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/notifications/matchers/{name}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "disable",
+ "invert-match",
+ "match-calendar",
+ "match-field",
+ "match-severity",
+ "mode",
+ "name",
+ "target"
+ ]
+ },
+ "put": {
+ "params": {
+ "mode": {
+ "enum": [
+ "all",
+ "any"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/config": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/config/nodes": {
+ "get": {
+ "responseFields": [
+ "node"
+ ]
+ }
+ },
+ "/cluster/config/nodes/{node}": {
+ "post": {
+ "responseFields": [
+ "corosync_authkey",
+ "corosync_conf",
+ "warnings"
+ ]
+ }
+ },
+ "/cluster/config/join": {
+ "get": {
+ "responseFields": [
+ "config_digest",
+ "nodelist",
+ "preferred_node",
+ "totem"
+ ]
+ }
+ },
+ "/cluster/firewall": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/firewall/groups": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "group"
+ ]
+ }
+ },
+ "/cluster/firewall/groups/{group}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/firewall/groups/{group}/{pos}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/firewall/rules": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/firewall/rules/{pos}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/firewall/ipset": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/cluster/firewall/ipset/{name}": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "nomatch"
+ ]
+ }
+ },
+ "/cluster/firewall/aliases": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/cluster/firewall/options": {
+ "get": {
+ "responseFields": [
+ "ebtables",
+ "enable",
+ "log_ratelimit",
+ "policy_forward",
+ "policy_in",
+ "policy_out"
+ ]
+ },
+ "put": {
+ "params": {
+ "policy_forward": {
+ "enum": [
+ "ACCEPT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_in": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_out": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/firewall/macros": {
+ "get": {
+ "responseFields": [
+ "descr",
+ "macro"
+ ]
+ }
+ },
+ "/cluster/firewall/refs": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "alias",
+ "ipset"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "comment",
+ "name",
+ "ref",
+ "scope",
+ "type"
+ ]
+ }
+ },
+ "/cluster/backup": {
+ "get": {
+ "responseFields": [
+ "id"
+ ]
+ },
+ "post": {
+ "params": {
+ "compress": {
+ "enum": [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "dow": {
+ "enum": null,
+ "x-enum-values": [
+ "fri",
+ "mon",
+ "sat",
+ "sun",
+ "thu",
+ "tue",
+ "wed"
+ ],
+ "type": "string"
+ },
+ "mailnotification": {
+ "enum": [
+ "always",
+ "failure"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "mode": {
+ "enum": [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "notification-mode": {
+ "enum": [
+ "auto",
+ "legacy-sendmail",
+ "notification-system"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "pbs-change-detection-mode": {
+ "enum": [
+ "legacy",
+ "data",
+ "metadata"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/backup/{id}": {
+ "put": {
+ "params": {
+ "compress": {
+ "enum": [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "dow": {
+ "enum": null,
+ "x-enum-values": [
+ "fri",
+ "mon",
+ "sat",
+ "sun",
+ "thu",
+ "tue",
+ "wed"
+ ],
+ "type": "string"
+ },
+ "mailnotification": {
+ "enum": [
+ "always",
+ "failure"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "mode": {
+ "enum": [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "notification-mode": {
+ "enum": [
+ "auto",
+ "legacy-sendmail",
+ "notification-system"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "pbs-change-detection-mode": {
+ "enum": [
+ "legacy",
+ "data",
+ "metadata"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/backup/{id}/included_volumes": {
+ "get": {
+ "responseFields": [
+ "children"
+ ]
+ }
+ },
+ "/cluster/backup-info": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/cluster/backup-info/not-backed-up": {
+ "get": {
+ "responseFields": [
+ "name",
+ "type",
+ "vmid"
+ ]
+ }
+ },
+ "/cluster/ha": {
+ "get": {
+ "responseFields": [
+ "id"
+ ]
+ }
+ },
+ "/cluster/ha/resources": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "ct",
+ "vm"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "sid"
+ ]
+ },
+ "post": {
+ "params": {
+ "state": {
+ "enum": [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled",
+ "ignored"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "ct",
+ "vm"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/ha/resources/{sid}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "failback",
+ "group",
+ "max_relocate",
+ "max_restart",
+ "sid",
+ "state",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "state": {
+ "enum": [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled",
+ "ignored"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/ha/resources/{sid}/migrate": {
+ "post": {
+ "responseFields": [
+ "blocking-resources",
+ "comigrated-resources",
+ "requested-node",
+ "sid"
+ ]
+ }
+ },
+ "/cluster/ha/resources/{sid}/relocate": {
+ "post": {
+ "responseFields": [
+ "blocking-resources",
+ "comigrated-resources",
+ "requested-node",
+ "sid"
+ ]
+ }
+ },
+ "/cluster/ha/groups": {
+ "get": {
+ "responseFields": [
+ "group"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/ha/status": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/ha/status/current": {
+ "get": {
+ "responseFields": [
+ "crm_state",
+ "failback",
+ "id",
+ "max_relocate",
+ "max_restart",
+ "node",
+ "quorate",
+ "request_state",
+ "sid",
+ "state",
+ "status",
+ "timestamp",
+ "type"
+ ]
+ }
+ },
+ "/cluster/acme": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/acme/plugins": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "dns",
+ "standalone"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "api",
+ "data",
+ "digest",
+ "disable",
+ "nodes",
+ "plugin",
+ "type",
+ "validation-delay"
+ ]
+ },
+ "post": {
+ "params": {
+ "api": {
+ "enum": [
+ "1984hosting",
+ "acmedns",
+ "acmeproxy",
+ "active24",
+ "ad",
+ "ali",
+ "alviy",
+ "anx",
+ "artfiles",
+ "arvan",
+ "aurora",
+ "autodns",
+ "aws",
+ "azion",
+ "azure",
+ "beget",
+ "bookmyname",
+ "bunny",
+ "cf",
+ "clouddns",
+ "cloudns",
+ "cn",
+ "conoha",
+ "constellix",
+ "cpanel",
+ "curanet",
+ "cyon",
+ "da",
+ "ddnss",
+ "desec",
+ "df",
+ "dgon",
+ "dnsexit",
+ "dnshome",
+ "dnsimple",
+ "dnsservices",
+ "doapi",
+ "domeneshop",
+ "dp",
+ "dpi",
+ "dreamhost",
+ "duckdns",
+ "durabledns",
+ "dyn",
+ "dynu",
+ "dynv6",
+ "easydns",
+ "edgecenter",
+ "edgedns",
+ "euserv",
+ "exoscale",
+ "fornex",
+ "freedns",
+ "freemyip",
+ "gandi_livedns",
+ "gcloud",
+ "gcore",
+ "gd",
+ "geoscaling",
+ "googledomains",
+ "he",
+ "he_ddns",
+ "hetzner",
+ "hexonet",
+ "hostingde",
+ "huaweicloud",
+ "infoblox",
+ "infomaniak",
+ "internetbs",
+ "inwx",
+ "ionos",
+ "ionos_cloud",
+ "ipv64",
+ "ispconfig",
+ "jd",
+ "joker",
+ "kappernet",
+ "kas",
+ "kinghost",
+ "knot",
+ "la",
+ "leaseweb",
+ "lexicon",
+ "limacity",
+ "linode",
+ "linode_v4",
+ "loopia",
+ "lua",
+ "maradns",
+ "me",
+ "miab",
+ "mijnhost",
+ "misaka",
+ "myapi",
+ "mydevil",
+ "mydnsjp",
+ "mythic_beasts",
+ "namecheap",
+ "namecom",
+ "namesilo",
+ "nanelo",
+ "nederhost",
+ "neodigit",
+ "netcup",
+ "netlify",
+ "nic",
+ "njalla",
+ "nm",
+ "nsd",
+ "nsone",
+ "nsupdate",
+ "nw",
+ "oci",
+ "omglol",
+ "one",
+ "online",
+ "openprovider",
+ "openstack",
+ "opnsense",
+ "ovh",
+ "pdns",
+ "pleskxml",
+ "pointhq",
+ "porkbun",
+ "rackcorp",
+ "rackspace",
+ "rage4",
+ "rcode0",
+ "regru",
+ "scaleway",
+ "schlundtech",
+ "selectel",
+ "selfhost",
+ "servercow",
+ "simply",
+ "technitium",
+ "tele3",
+ "tencent",
+ "timeweb",
+ "transip",
+ "udr",
+ "ultra",
+ "unoeuro",
+ "variomedia",
+ "veesp",
+ "vercel",
+ "vscale",
+ "vultr",
+ "websupport",
+ "west_cn",
+ "world4you",
+ "yandex360",
+ "yc",
+ "zilore",
+ "zone",
+ "zoneedit",
+ "zonomi"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "dns",
+ "standalone"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/acme/plugins/{id}": {
+ "get": {
+ "responseFields": [
+ "api",
+ "data",
+ "digest",
+ "disable",
+ "nodes",
+ "plugin",
+ "type",
+ "validation-delay"
+ ]
+ },
+ "put": {
+ "params": {
+ "api": {
+ "enum": [
+ "1984hosting",
+ "acmedns",
+ "acmeproxy",
+ "active24",
+ "ad",
+ "ali",
+ "alviy",
+ "anx",
+ "artfiles",
+ "arvan",
+ "aurora",
+ "autodns",
+ "aws",
+ "azion",
+ "azure",
+ "beget",
+ "bookmyname",
+ "bunny",
+ "cf",
+ "clouddns",
+ "cloudns",
+ "cn",
+ "conoha",
+ "constellix",
+ "cpanel",
+ "curanet",
+ "cyon",
+ "da",
+ "ddnss",
+ "desec",
+ "df",
+ "dgon",
+ "dnsexit",
+ "dnshome",
+ "dnsimple",
+ "dnsservices",
+ "doapi",
+ "domeneshop",
+ "dp",
+ "dpi",
+ "dreamhost",
+ "duckdns",
+ "durabledns",
+ "dyn",
+ "dynu",
+ "dynv6",
+ "easydns",
+ "edgecenter",
+ "edgedns",
+ "euserv",
+ "exoscale",
+ "fornex",
+ "freedns",
+ "freemyip",
+ "gandi_livedns",
+ "gcloud",
+ "gcore",
+ "gd",
+ "geoscaling",
+ "googledomains",
+ "he",
+ "he_ddns",
+ "hetzner",
+ "hexonet",
+ "hostingde",
+ "huaweicloud",
+ "infoblox",
+ "infomaniak",
+ "internetbs",
+ "inwx",
+ "ionos",
+ "ionos_cloud",
+ "ipv64",
+ "ispconfig",
+ "jd",
+ "joker",
+ "kappernet",
+ "kas",
+ "kinghost",
+ "knot",
+ "la",
+ "leaseweb",
+ "lexicon",
+ "limacity",
+ "linode",
+ "linode_v4",
+ "loopia",
+ "lua",
+ "maradns",
+ "me",
+ "miab",
+ "mijnhost",
+ "misaka",
+ "myapi",
+ "mydevil",
+ "mydnsjp",
+ "mythic_beasts",
+ "namecheap",
+ "namecom",
+ "namesilo",
+ "nanelo",
+ "nederhost",
+ "neodigit",
+ "netcup",
+ "netlify",
+ "nic",
+ "njalla",
+ "nm",
+ "nsd",
+ "nsone",
+ "nsupdate",
+ "nw",
+ "oci",
+ "omglol",
+ "one",
+ "online",
+ "openprovider",
+ "openstack",
+ "opnsense",
+ "ovh",
+ "pdns",
+ "pleskxml",
+ "pointhq",
+ "porkbun",
+ "rackcorp",
+ "rackspace",
+ "rage4",
+ "rcode0",
+ "regru",
+ "scaleway",
+ "schlundtech",
+ "selectel",
+ "selfhost",
+ "servercow",
+ "simply",
+ "technitium",
+ "tele3",
+ "tencent",
+ "timeweb",
+ "transip",
+ "udr",
+ "ultra",
+ "unoeuro",
+ "variomedia",
+ "veesp",
+ "vercel",
+ "vscale",
+ "vultr",
+ "websupport",
+ "west_cn",
+ "world4you",
+ "yandex360",
+ "yc",
+ "zilore",
+ "zone",
+ "zoneedit",
+ "zonomi"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/acme/account": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/acme/account/{name}": {
+ "get": {
+ "responseFields": [
+ "account",
+ "directory",
+ "location",
+ "tos"
+ ]
+ }
+ },
+ "/cluster/acme/meta": {
+ "get": {
+ "responseFields": [
+ "caaIdentities",
+ "externalAccountRequired",
+ "termsOfService",
+ "website"
+ ]
+ }
+ },
+ "/cluster/acme/directories": {
+ "get": {
+ "responseFields": [
+ "name",
+ "url"
+ ]
+ }
+ },
+ "/cluster/acme/challenge-schema": {
+ "get": {
+ "responseFields": [
+ "id",
+ "name",
+ "schema",
+ "type"
+ ]
+ }
+ },
+ "/cluster/ceph": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/ceph/metadata": {
+ "get": {
+ "params": {
+ "scope": {
+ "enum": [
+ "all",
+ "versions"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "mds",
+ "mgr",
+ "mon",
+ "node",
+ "osd"
+ ]
+ }
+ },
+ "/cluster/ceph/flags": {
+ "get": {
+ "responseFields": [
+ "description",
+ "name",
+ "value"
+ ]
+ }
+ },
+ "/cluster/ceph/flags/{flag}": {
+ "get": {
+ "params": {
+ "flag": {
+ "enum": [
+ "nobackfill",
+ "nodeep-scrub",
+ "nodown",
+ "noin",
+ "noout",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "notieragent",
+ "noup",
+ "pause"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ },
+ "put": {
+ "params": {
+ "flag": {
+ "enum": [
+ "nobackfill",
+ "nodeep-scrub",
+ "nodown",
+ "noin",
+ "noout",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "notieragent",
+ "noup",
+ "pause"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/jobs": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/cluster/jobs/realm-sync": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "enabled",
+ "id",
+ "last-run",
+ "next-run",
+ "realm",
+ "remove-vanished",
+ "schedule",
+ "scope"
+ ]
+ }
+ },
+ "/cluster/jobs/realm-sync/{id}": {
+ "post": {
+ "params": {
+ "scope": {
+ "enum": [
+ "users",
+ "groups",
+ "both"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ },
+ "put": {
+ "params": {
+ "scope": {
+ "enum": [
+ "users",
+ "groups",
+ "both"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/jobs/schedule-analyze": {
+ "get": {
+ "responseFields": [
+ "timestamp",
+ "utc"
+ ]
+ }
+ },
+ "/cluster/mapping/dir": {
+ "get": {
+ "responseFields": [
+ "checks",
+ "description",
+ "id",
+ "map"
+ ]
+ }
+ },
+ "/cluster/mapping/pci": {
+ "get": {
+ "responseFields": [
+ "checks",
+ "description",
+ "id",
+ "map"
+ ]
+ }
+ },
+ "/cluster/mapping/usb": {
+ "get": {
+ "responseFields": [
+ "description",
+ "error",
+ "id",
+ "map"
+ ]
+ }
+ },
+ "/cluster/sdn": {
+ "get": {
+ "responseFields": [
+ "id"
+ ]
+ }
+ },
+ "/cluster/sdn/vnets": {
+ "get": {
+ "responseFields": [
+ "alias",
+ "digest",
+ "isolate-ports",
+ "pending",
+ "state",
+ "tag",
+ "type",
+ "vlanaware",
+ "vnet",
+ "zone"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "vnet"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/vnets/{vnet}/firewall": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/sdn/vnets/{vnet}/firewall/rules": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/vnets/{vnet}/firewall/rules/{pos}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/vnets/{vnet}/firewall/options": {
+ "get": {
+ "responseFields": [
+ "enable",
+ "log_level_forward",
+ "policy_forward"
+ ]
+ },
+ "put": {
+ "params": {
+ "log_level_forward": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_forward": {
+ "enum": [
+ "ACCEPT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/vnets/{vnet}/subnets": {
+ "get": {
+ "responseFields": []
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "subnet"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/zones": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "evpn",
+ "faucet",
+ "qinq",
+ "simple",
+ "vlan",
+ "vxlan"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "advertise-subnets",
+ "bridge",
+ "bridge-disable-mac-learning",
+ "controller",
+ "dhcp",
+ "digest",
+ "disable-arp-nd-suppression",
+ "dns",
+ "dnszone",
+ "exitnodes",
+ "exitnodes-local-routing",
+ "exitnodes-primary",
+ "ipam",
+ "mac",
+ "mtu",
+ "nodes",
+ "peers",
+ "pending",
+ "reversedns",
+ "rt-import",
+ "state",
+ "tag",
+ "type",
+ "vlan-protocol",
+ "vrf-vxlan",
+ "vxlan-port",
+ "zone"
+ ]
+ },
+ "post": {
+ "params": {
+ "dhcp": {
+ "enum": [
+ "dnsmasq"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "evpn",
+ "faucet",
+ "qinq",
+ "simple",
+ "vlan",
+ "vxlan"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "vlan-protocol": {
+ "enum": [
+ "802.1q",
+ "802.1ad"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/zones/{zone}": {
+ "put": {
+ "params": {
+ "dhcp": {
+ "enum": [
+ "dnsmasq"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "vlan-protocol": {
+ "enum": [
+ "802.1q",
+ "802.1ad"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/controllers": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "bgp",
+ "evpn",
+ "faucet",
+ "isis"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "asn",
+ "bgp-multipath-as-relax",
+ "controller",
+ "digest",
+ "ebgp",
+ "ebgp-multihop",
+ "isis-domain",
+ "isis-ifaces",
+ "isis-net",
+ "loopback",
+ "node",
+ "peers",
+ "pending",
+ "state",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "bgp",
+ "evpn",
+ "faucet",
+ "isis"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/ipams": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "netbox",
+ "phpipam",
+ "pve"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "ipam",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "netbox",
+ "phpipam",
+ "pve"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/sdn/dns": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "powerdns"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "dns",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "powerdns"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/log": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/cluster/resources": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "vm",
+ "storage",
+ "node",
+ "sdn"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "cgroup-mode",
+ "content",
+ "cpu",
+ "disk",
+ "diskread",
+ "diskwrite",
+ "hastate",
+ "id",
+ "level",
+ "lock",
+ "maxcpu",
+ "maxdisk",
+ "maxmem",
+ "mem",
+ "memhost",
+ "name",
+ "netin",
+ "netout",
+ "network",
+ "network-type",
+ "node",
+ "plugintype",
+ "pool",
+ "protocol",
+ "sdn",
+ "status",
+ "storage",
+ "tags",
+ "template",
+ "type",
+ "uptime",
+ "vmid",
+ "zone-type"
+ ]
+ }
+ },
+ "/cluster/tasks": {
+ "get": {
+ "responseFields": [
+ "upid"
+ ]
+ }
+ },
+ "/cluster/options": {
+ "put": {
+ "params": {
+ "console": {
+ "enum": [
+ "applet",
+ "vv",
+ "html5",
+ "xtermjs"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "fencing": {
+ "enum": [
+ "watchdog",
+ "hardware",
+ "both"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "keyboard": {
+ "enum": [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "language": {
+ "enum": [
+ "ar",
+ "ca",
+ "da",
+ "de",
+ "en",
+ "es",
+ "eu",
+ "fa",
+ "fr",
+ "hr",
+ "he",
+ "it",
+ "ja",
+ "ka",
+ "kr",
+ "nb",
+ "nl",
+ "nn",
+ "pl",
+ "pt_BR",
+ "ru",
+ "sl",
+ "sv",
+ "tr",
+ "ukr",
+ "zh_CN",
+ "zh_TW"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/cluster/status": {
+ "get": {
+ "responseFields": [
+ "id",
+ "ip",
+ "level",
+ "local",
+ "name",
+ "nodeid",
+ "nodes",
+ "online",
+ "quorate",
+ "type",
+ "version"
+ ]
+ }
+ },
+ "/nodes": {
+ "get": {
+ "responseFields": [
+ "cpu",
+ "level",
+ "maxcpu",
+ "maxmem",
+ "mem",
+ "node",
+ "ssl_fingerprint",
+ "status",
+ "uptime"
+ ]
+ }
+ },
+ "/nodes/{node}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/qemu": {
+ "get": {
+ "responseFields": [
+ "cpu",
+ "cpus",
+ "diskread",
+ "diskwrite",
+ "lock",
+ "maxdisk",
+ "maxmem",
+ "mem",
+ "memhost",
+ "name",
+ "netin",
+ "netout",
+ "pid",
+ "pressurecpufull",
+ "pressurecpusome",
+ "pressureiofull",
+ "pressureiosome",
+ "pressurememoryfull",
+ "pressurememorysome",
+ "qmpstatus",
+ "running-machine",
+ "running-qemu",
+ "serial",
+ "status",
+ "tags",
+ "template",
+ "uptime",
+ "vmid"
+ ]
+ },
+ "post": {
+ "params": {
+ "arch": {
+ "enum": [
+ "x86_64",
+ "aarch64"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "bios": {
+ "enum": [
+ "seabios",
+ "ovmf"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "citype": {
+ "enum": [
+ "configdrive2",
+ "nocloud",
+ "opennebula"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "hotplug": {
+ "enum": null,
+ "x-enum-values": [
+ "network",
+ "disk",
+ "cpu",
+ "memory",
+ "usb",
+ "cloudinit"
+ ],
+ "type": "string"
+ },
+ "hugepages": {
+ "enum": [
+ "any",
+ "2",
+ "1024"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "keyboard": {
+ "enum": [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "lock": {
+ "enum": [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "ostype": {
+ "enum": [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "win11",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "scsihw": {
+ "enum": [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/rules": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/aliases": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/ipset": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "nomatch"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/options": {
+ "get": {
+ "responseFields": [
+ "dhcp",
+ "enable",
+ "ipfilter",
+ "log_level_in",
+ "log_level_out",
+ "macfilter",
+ "ndp",
+ "policy_in",
+ "policy_out",
+ "radv"
+ ]
+ },
+ "put": {
+ "params": {
+ "log_level_in": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "log_level_out": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_in": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_out": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/firewall/refs": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "alias",
+ "ipset"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "comment",
+ "name",
+ "ref",
+ "scope",
+ "type"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/agent": {
+ "get": {
+ "responseFields": []
+ },
+ "post": {
+ "params": {
+ "command": {
+ "enum": [
+ "fsfreeze-freeze",
+ "fsfreeze-status",
+ "fsfreeze-thaw",
+ "fstrim",
+ "get-fsinfo",
+ "get-host-name",
+ "get-memory-block-info",
+ "get-memory-blocks",
+ "get-osinfo",
+ "get-time",
+ "get-timezone",
+ "get-users",
+ "get-vcpus",
+ "info",
+ "network-get-interfaces",
+ "ping",
+ "shutdown",
+ "suspend-disk",
+ "suspend-hybrid",
+ "suspend-ram"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/agent/exec": {
+ "post": {
+ "responseFields": [
+ "pid"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/agent/exec-status": {
+ "get": {
+ "responseFields": [
+ "err-data",
+ "err-truncated",
+ "exitcode",
+ "exited",
+ "out-data",
+ "out-truncated",
+ "signal"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/agent/file-read": {
+ "get": {
+ "responseFields": [
+ "content",
+ "truncated"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/rrd": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "filename"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/rrddata": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/config": {
+ "get": {
+ "responseFields": [
+ "acpi",
+ "affinity",
+ "agent",
+ "allow-ksm",
+ "amd-sev",
+ "arch",
+ "args",
+ "audio0",
+ "autostart",
+ "balloon",
+ "bios",
+ "boot",
+ "bootdisk",
+ "cdrom",
+ "cicustom",
+ "cipassword",
+ "citype",
+ "ciupgrade",
+ "ciuser",
+ "cores",
+ "cpu",
+ "cpulimit",
+ "cpuunits",
+ "description",
+ "digest",
+ "efidisk0",
+ "freeze",
+ "hookscript",
+ "hostpci[n]",
+ "hotplug",
+ "hugepages",
+ "ide[n]",
+ "intel-tdx",
+ "ipconfig[n]",
+ "ivshmem",
+ "keephugepages",
+ "keyboard",
+ "kvm",
+ "localtime",
+ "lock",
+ "machine",
+ "memory",
+ "meta",
+ "migrate_downtime",
+ "migrate_speed",
+ "name",
+ "nameserver",
+ "net[n]",
+ "numa",
+ "numa[n]",
+ "onboot",
+ "ostype",
+ "parallel[n]",
+ "parent",
+ "protection",
+ "reboot",
+ "rng0",
+ "running-nets-host-mtu",
+ "runningcpu",
+ "runningmachine",
+ "sata[n]",
+ "scsi[n]",
+ "scsihw",
+ "searchdomain",
+ "serial[n]",
+ "shares",
+ "smbios1",
+ "smp",
+ "snaptime",
+ "sockets",
+ "spice_enhancements",
+ "sshkeys",
+ "startdate",
+ "startup",
+ "tablet",
+ "tags",
+ "tdf",
+ "template",
+ "tpmstate0",
+ "unused[n]",
+ "usb[n]",
+ "vcpus",
+ "vga",
+ "virtio[n]",
+ "virtiofs[n]",
+ "vmgenid",
+ "vmstate",
+ "vmstatestorage",
+ "watchdog"
+ ]
+ },
+ "post": {
+ "params": {
+ "arch": {
+ "enum": [
+ "x86_64",
+ "aarch64"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "bios": {
+ "enum": [
+ "seabios",
+ "ovmf"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "citype": {
+ "enum": [
+ "configdrive2",
+ "nocloud",
+ "opennebula"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "hotplug": {
+ "enum": null,
+ "x-enum-values": [
+ "network",
+ "disk",
+ "cpu",
+ "memory",
+ "usb",
+ "cloudinit"
+ ],
+ "type": "string"
+ },
+ "hugepages": {
+ "enum": [
+ "any",
+ "2",
+ "1024"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "keyboard": {
+ "enum": [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "lock": {
+ "enum": [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "ostype": {
+ "enum": [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "win11",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "scsihw": {
+ "enum": [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ },
+ "put": {
+ "params": {
+ "arch": {
+ "enum": [
+ "x86_64",
+ "aarch64"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "bios": {
+ "enum": [
+ "seabios",
+ "ovmf"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "citype": {
+ "enum": [
+ "configdrive2",
+ "nocloud",
+ "opennebula"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "hotplug": {
+ "enum": null,
+ "x-enum-values": [
+ "network",
+ "disk",
+ "cpu",
+ "memory",
+ "usb",
+ "cloudinit"
+ ],
+ "type": "string"
+ },
+ "hugepages": {
+ "enum": [
+ "any",
+ "2",
+ "1024"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "keyboard": {
+ "enum": [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "lock": {
+ "enum": [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "ostype": {
+ "enum": [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "win11",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "scsihw": {
+ "enum": [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/pending": {
+ "get": {
+ "responseFields": [
+ "delete",
+ "key",
+ "pending",
+ "value"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/cloudinit": {
+ "get": {
+ "responseFields": [
+ "delete",
+ "key",
+ "pending",
+ "value"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/cloudinit/dump": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "user",
+ "network",
+ "meta"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/termproxy": {
+ "post": {
+ "params": {
+ "serial": {
+ "enum": [
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/vncwebsocket": {
+ "get": {
+ "responseFields": [
+ "port"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/status": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/status/current": {
+ "get": {
+ "responseFields": [
+ "agent",
+ "clipboard",
+ "cpu",
+ "cpus",
+ "diskread",
+ "diskwrite",
+ "ha",
+ "lock",
+ "maxdisk",
+ "maxmem",
+ "mem",
+ "memhost",
+ "name",
+ "netin",
+ "netout",
+ "pid",
+ "pressurecpufull",
+ "pressurecpusome",
+ "pressureiofull",
+ "pressureiosome",
+ "pressurememoryfull",
+ "pressurememorysome",
+ "qmpstatus",
+ "running-machine",
+ "running-qemu",
+ "serial",
+ "spice",
+ "status",
+ "tags",
+ "template",
+ "uptime",
+ "vmid"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/status/start": {
+ "post": {
+ "params": {
+ "migration_type": {
+ "enum": [
+ "secure",
+ "insecure"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/feature": {
+ "get": {
+ "params": {
+ "feature": {
+ "enum": [
+ "snapshot",
+ "clone",
+ "copy"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "hasFeature",
+ "nodes"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/clone": {
+ "post": {
+ "params": {
+ "format": {
+ "enum": [
+ "raw",
+ "qcow2",
+ "vmdk"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/move_disk": {
+ "post": {
+ "params": {
+ "disk": {
+ "enum": [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "format": {
+ "enum": [
+ "raw",
+ "qcow2",
+ "vmdk"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "target-disk": {
+ "enum": [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/migrate": {
+ "get": {
+ "responseFields": [
+ "allowed_nodes",
+ "dependent-ha-resources",
+ "has-dbus-vmstate",
+ "local_disks",
+ "local_resources",
+ "mapped-resource-info",
+ "mapped-resources",
+ "not_allowed_nodes",
+ "running"
+ ]
+ },
+ "post": {
+ "params": {
+ "migration_type": {
+ "enum": [
+ "secure",
+ "insecure"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/resize": {
+ "put": {
+ "params": {
+ "disk": {
+ "enum": [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/snapshot": {
+ "get": {
+ "responseFields": [
+ "description",
+ "name",
+ "parent",
+ "snaptime",
+ "vmstate"
+ ]
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/template": {
+ "post": {
+ "params": {
+ "disk": {
+ "enum": [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/qemu/{vmid}/mtunnelwebsocket": {
+ "get": {
+ "responseFields": [
+ "port",
+ "socket"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc": {
+ "get": {
+ "responseFields": [
+ "cpu",
+ "cpus",
+ "disk",
+ "diskread",
+ "diskwrite",
+ "lock",
+ "maxdisk",
+ "maxmem",
+ "maxswap",
+ "mem",
+ "name",
+ "netin",
+ "netout",
+ "pressurecpusome",
+ "pressureiofull",
+ "pressureiosome",
+ "pressurememoryfull",
+ "pressurememorysome",
+ "status",
+ "tags",
+ "template",
+ "uptime",
+ "vmid"
+ ]
+ },
+ "post": {
+ "params": {
+ "arch": {
+ "enum": [
+ "amd64",
+ "i386",
+ "arm64",
+ "armhf",
+ "riscv32",
+ "riscv64"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "cmode": {
+ "enum": [
+ "shell",
+ "console",
+ "tty"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "lock": {
+ "enum": [
+ "backup",
+ "create",
+ "destroyed",
+ "disk",
+ "fstrim",
+ "migrate",
+ "mounted",
+ "rollback",
+ "snapshot",
+ "snapshot-delete"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "ostype": {
+ "enum": [
+ "debian",
+ "devuan",
+ "ubuntu",
+ "centos",
+ "fedora",
+ "opensuse",
+ "archlinux",
+ "alpine",
+ "gentoo",
+ "nixos",
+ "unmanaged"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/config": {
+ "get": {
+ "responseFields": [
+ "arch",
+ "cmode",
+ "console",
+ "cores",
+ "cpulimit",
+ "cpuunits",
+ "debug",
+ "description",
+ "dev[n]",
+ "digest",
+ "entrypoint",
+ "env",
+ "features",
+ "hookscript",
+ "hostname",
+ "lock",
+ "lxc",
+ "memory",
+ "mp[n]",
+ "nameserver",
+ "net[n]",
+ "onboot",
+ "ostype",
+ "protection",
+ "rootfs",
+ "searchdomain",
+ "startup",
+ "swap",
+ "tags",
+ "template",
+ "timezone",
+ "tty",
+ "unprivileged",
+ "unused[n]"
+ ]
+ },
+ "put": {
+ "params": {
+ "arch": {
+ "enum": [
+ "amd64",
+ "i386",
+ "arm64",
+ "armhf",
+ "riscv32",
+ "riscv64"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "cmode": {
+ "enum": [
+ "shell",
+ "console",
+ "tty"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "lock": {
+ "enum": [
+ "backup",
+ "create",
+ "destroyed",
+ "disk",
+ "fstrim",
+ "migrate",
+ "mounted",
+ "rollback",
+ "snapshot",
+ "snapshot-delete"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "ostype": {
+ "enum": [
+ "debian",
+ "devuan",
+ "ubuntu",
+ "centos",
+ "fedora",
+ "opensuse",
+ "archlinux",
+ "alpine",
+ "gentoo",
+ "nixos",
+ "unmanaged"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/status": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/status/current": {
+ "get": {
+ "responseFields": [
+ "cpu",
+ "cpus",
+ "disk",
+ "diskread",
+ "diskwrite",
+ "ha",
+ "lock",
+ "maxdisk",
+ "maxmem",
+ "maxswap",
+ "mem",
+ "name",
+ "netin",
+ "netout",
+ "pressurecpusome",
+ "pressureiofull",
+ "pressureiosome",
+ "pressurememoryfull",
+ "pressurememorysome",
+ "status",
+ "tags",
+ "template",
+ "uptime",
+ "vmid"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/snapshot": {
+ "get": {
+ "responseFields": [
+ "description",
+ "name",
+ "parent",
+ "snaptime"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/rules": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/aliases": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/ipset": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "digest",
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}": {
+ "get": {
+ "responseFields": [
+ "cidr",
+ "comment",
+ "digest",
+ "nomatch"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/options": {
+ "get": {
+ "responseFields": [
+ "dhcp",
+ "enable",
+ "ipfilter",
+ "log_level_in",
+ "log_level_out",
+ "macfilter",
+ "ndp",
+ "policy_in",
+ "policy_out",
+ "radv"
+ ]
+ },
+ "put": {
+ "params": {
+ "log_level_in": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "log_level_out": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_in": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "policy_out": {
+ "enum": [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/firewall/refs": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "alias",
+ "ipset"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "comment",
+ "name",
+ "ref",
+ "scope",
+ "type"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/rrd": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "filename"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/rrddata": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/vncwebsocket": {
+ "get": {
+ "responseFields": [
+ "port"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/feature": {
+ "get": {
+ "params": {
+ "feature": {
+ "enum": [
+ "snapshot",
+ "clone",
+ "copy"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "hasFeature"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/resize": {
+ "put": {
+ "params": {
+ "disk": {
+ "enum": [
+ "rootfs",
+ "mp0",
+ "mp1",
+ "mp2",
+ "mp3",
+ "mp4",
+ "mp5",
+ "mp6",
+ "mp7",
+ "mp8",
+ "mp9",
+ "mp10",
+ "mp11",
+ "mp12",
+ "mp13",
+ "mp14",
+ "mp15",
+ "mp16",
+ "mp17",
+ "mp18",
+ "mp19",
+ "mp20",
+ "mp21",
+ "mp22",
+ "mp23",
+ "mp24",
+ "mp25",
+ "mp26",
+ "mp27",
+ "mp28",
+ "mp29",
+ "mp30",
+ "mp31",
+ "mp32",
+ "mp33",
+ "mp34",
+ "mp35",
+ "mp36",
+ "mp37",
+ "mp38",
+ "mp39",
+ "mp40",
+ "mp41",
+ "mp42",
+ "mp43",
+ "mp44",
+ "mp45",
+ "mp46",
+ "mp47",
+ "mp48",
+ "mp49",
+ "mp50",
+ "mp51",
+ "mp52",
+ "mp53",
+ "mp54",
+ "mp55",
+ "mp56",
+ "mp57",
+ "mp58",
+ "mp59",
+ "mp60",
+ "mp61",
+ "mp62",
+ "mp63",
+ "mp64",
+ "mp65",
+ "mp66",
+ "mp67",
+ "mp68",
+ "mp69",
+ "mp70",
+ "mp71",
+ "mp72",
+ "mp73",
+ "mp74",
+ "mp75",
+ "mp76",
+ "mp77",
+ "mp78",
+ "mp79",
+ "mp80",
+ "mp81",
+ "mp82",
+ "mp83",
+ "mp84",
+ "mp85",
+ "mp86",
+ "mp87",
+ "mp88",
+ "mp89",
+ "mp90",
+ "mp91",
+ "mp92",
+ "mp93",
+ "mp94",
+ "mp95",
+ "mp96",
+ "mp97",
+ "mp98",
+ "mp99",
+ "mp100",
+ "mp101",
+ "mp102",
+ "mp103",
+ "mp104",
+ "mp105",
+ "mp106",
+ "mp107",
+ "mp108",
+ "mp109",
+ "mp110",
+ "mp111",
+ "mp112",
+ "mp113",
+ "mp114",
+ "mp115",
+ "mp116",
+ "mp117",
+ "mp118",
+ "mp119",
+ "mp120",
+ "mp121",
+ "mp122",
+ "mp123",
+ "mp124",
+ "mp125",
+ "mp126",
+ "mp127",
+ "mp128",
+ "mp129",
+ "mp130",
+ "mp131",
+ "mp132",
+ "mp133",
+ "mp134",
+ "mp135",
+ "mp136",
+ "mp137",
+ "mp138",
+ "mp139",
+ "mp140",
+ "mp141",
+ "mp142",
+ "mp143",
+ "mp144",
+ "mp145",
+ "mp146",
+ "mp147",
+ "mp148",
+ "mp149",
+ "mp150",
+ "mp151",
+ "mp152",
+ "mp153",
+ "mp154",
+ "mp155",
+ "mp156",
+ "mp157",
+ "mp158",
+ "mp159",
+ "mp160",
+ "mp161",
+ "mp162",
+ "mp163",
+ "mp164",
+ "mp165",
+ "mp166",
+ "mp167",
+ "mp168",
+ "mp169",
+ "mp170",
+ "mp171",
+ "mp172",
+ "mp173",
+ "mp174",
+ "mp175",
+ "mp176",
+ "mp177",
+ "mp178",
+ "mp179",
+ "mp180",
+ "mp181",
+ "mp182",
+ "mp183",
+ "mp184",
+ "mp185",
+ "mp186",
+ "mp187",
+ "mp188",
+ "mp189",
+ "mp190",
+ "mp191",
+ "mp192",
+ "mp193",
+ "mp194",
+ "mp195",
+ "mp196",
+ "mp197",
+ "mp198",
+ "mp199",
+ "mp200",
+ "mp201",
+ "mp202",
+ "mp203",
+ "mp204",
+ "mp205",
+ "mp206",
+ "mp207",
+ "mp208",
+ "mp209",
+ "mp210",
+ "mp211",
+ "mp212",
+ "mp213",
+ "mp214",
+ "mp215",
+ "mp216",
+ "mp217",
+ "mp218",
+ "mp219",
+ "mp220",
+ "mp221",
+ "mp222",
+ "mp223",
+ "mp224",
+ "mp225",
+ "mp226",
+ "mp227",
+ "mp228",
+ "mp229",
+ "mp230",
+ "mp231",
+ "mp232",
+ "mp233",
+ "mp234",
+ "mp235",
+ "mp236",
+ "mp237",
+ "mp238",
+ "mp239",
+ "mp240",
+ "mp241",
+ "mp242",
+ "mp243",
+ "mp244",
+ "mp245",
+ "mp246",
+ "mp247",
+ "mp248",
+ "mp249",
+ "mp250",
+ "mp251",
+ "mp252",
+ "mp253",
+ "mp254",
+ "mp255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/move_volume": {
+ "post": {
+ "params": {
+ "target-volume": {
+ "enum": [
+ "rootfs",
+ "mp0",
+ "mp1",
+ "mp2",
+ "mp3",
+ "mp4",
+ "mp5",
+ "mp6",
+ "mp7",
+ "mp8",
+ "mp9",
+ "mp10",
+ "mp11",
+ "mp12",
+ "mp13",
+ "mp14",
+ "mp15",
+ "mp16",
+ "mp17",
+ "mp18",
+ "mp19",
+ "mp20",
+ "mp21",
+ "mp22",
+ "mp23",
+ "mp24",
+ "mp25",
+ "mp26",
+ "mp27",
+ "mp28",
+ "mp29",
+ "mp30",
+ "mp31",
+ "mp32",
+ "mp33",
+ "mp34",
+ "mp35",
+ "mp36",
+ "mp37",
+ "mp38",
+ "mp39",
+ "mp40",
+ "mp41",
+ "mp42",
+ "mp43",
+ "mp44",
+ "mp45",
+ "mp46",
+ "mp47",
+ "mp48",
+ "mp49",
+ "mp50",
+ "mp51",
+ "mp52",
+ "mp53",
+ "mp54",
+ "mp55",
+ "mp56",
+ "mp57",
+ "mp58",
+ "mp59",
+ "mp60",
+ "mp61",
+ "mp62",
+ "mp63",
+ "mp64",
+ "mp65",
+ "mp66",
+ "mp67",
+ "mp68",
+ "mp69",
+ "mp70",
+ "mp71",
+ "mp72",
+ "mp73",
+ "mp74",
+ "mp75",
+ "mp76",
+ "mp77",
+ "mp78",
+ "mp79",
+ "mp80",
+ "mp81",
+ "mp82",
+ "mp83",
+ "mp84",
+ "mp85",
+ "mp86",
+ "mp87",
+ "mp88",
+ "mp89",
+ "mp90",
+ "mp91",
+ "mp92",
+ "mp93",
+ "mp94",
+ "mp95",
+ "mp96",
+ "mp97",
+ "mp98",
+ "mp99",
+ "mp100",
+ "mp101",
+ "mp102",
+ "mp103",
+ "mp104",
+ "mp105",
+ "mp106",
+ "mp107",
+ "mp108",
+ "mp109",
+ "mp110",
+ "mp111",
+ "mp112",
+ "mp113",
+ "mp114",
+ "mp115",
+ "mp116",
+ "mp117",
+ "mp118",
+ "mp119",
+ "mp120",
+ "mp121",
+ "mp122",
+ "mp123",
+ "mp124",
+ "mp125",
+ "mp126",
+ "mp127",
+ "mp128",
+ "mp129",
+ "mp130",
+ "mp131",
+ "mp132",
+ "mp133",
+ "mp134",
+ "mp135",
+ "mp136",
+ "mp137",
+ "mp138",
+ "mp139",
+ "mp140",
+ "mp141",
+ "mp142",
+ "mp143",
+ "mp144",
+ "mp145",
+ "mp146",
+ "mp147",
+ "mp148",
+ "mp149",
+ "mp150",
+ "mp151",
+ "mp152",
+ "mp153",
+ "mp154",
+ "mp155",
+ "mp156",
+ "mp157",
+ "mp158",
+ "mp159",
+ "mp160",
+ "mp161",
+ "mp162",
+ "mp163",
+ "mp164",
+ "mp165",
+ "mp166",
+ "mp167",
+ "mp168",
+ "mp169",
+ "mp170",
+ "mp171",
+ "mp172",
+ "mp173",
+ "mp174",
+ "mp175",
+ "mp176",
+ "mp177",
+ "mp178",
+ "mp179",
+ "mp180",
+ "mp181",
+ "mp182",
+ "mp183",
+ "mp184",
+ "mp185",
+ "mp186",
+ "mp187",
+ "mp188",
+ "mp189",
+ "mp190",
+ "mp191",
+ "mp192",
+ "mp193",
+ "mp194",
+ "mp195",
+ "mp196",
+ "mp197",
+ "mp198",
+ "mp199",
+ "mp200",
+ "mp201",
+ "mp202",
+ "mp203",
+ "mp204",
+ "mp205",
+ "mp206",
+ "mp207",
+ "mp208",
+ "mp209",
+ "mp210",
+ "mp211",
+ "mp212",
+ "mp213",
+ "mp214",
+ "mp215",
+ "mp216",
+ "mp217",
+ "mp218",
+ "mp219",
+ "mp220",
+ "mp221",
+ "mp222",
+ "mp223",
+ "mp224",
+ "mp225",
+ "mp226",
+ "mp227",
+ "mp228",
+ "mp229",
+ "mp230",
+ "mp231",
+ "mp232",
+ "mp233",
+ "mp234",
+ "mp235",
+ "mp236",
+ "mp237",
+ "mp238",
+ "mp239",
+ "mp240",
+ "mp241",
+ "mp242",
+ "mp243",
+ "mp244",
+ "mp245",
+ "mp246",
+ "mp247",
+ "mp248",
+ "mp249",
+ "mp250",
+ "mp251",
+ "mp252",
+ "mp253",
+ "mp254",
+ "mp255",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "volume": {
+ "enum": [
+ "rootfs",
+ "mp0",
+ "mp1",
+ "mp2",
+ "mp3",
+ "mp4",
+ "mp5",
+ "mp6",
+ "mp7",
+ "mp8",
+ "mp9",
+ "mp10",
+ "mp11",
+ "mp12",
+ "mp13",
+ "mp14",
+ "mp15",
+ "mp16",
+ "mp17",
+ "mp18",
+ "mp19",
+ "mp20",
+ "mp21",
+ "mp22",
+ "mp23",
+ "mp24",
+ "mp25",
+ "mp26",
+ "mp27",
+ "mp28",
+ "mp29",
+ "mp30",
+ "mp31",
+ "mp32",
+ "mp33",
+ "mp34",
+ "mp35",
+ "mp36",
+ "mp37",
+ "mp38",
+ "mp39",
+ "mp40",
+ "mp41",
+ "mp42",
+ "mp43",
+ "mp44",
+ "mp45",
+ "mp46",
+ "mp47",
+ "mp48",
+ "mp49",
+ "mp50",
+ "mp51",
+ "mp52",
+ "mp53",
+ "mp54",
+ "mp55",
+ "mp56",
+ "mp57",
+ "mp58",
+ "mp59",
+ "mp60",
+ "mp61",
+ "mp62",
+ "mp63",
+ "mp64",
+ "mp65",
+ "mp66",
+ "mp67",
+ "mp68",
+ "mp69",
+ "mp70",
+ "mp71",
+ "mp72",
+ "mp73",
+ "mp74",
+ "mp75",
+ "mp76",
+ "mp77",
+ "mp78",
+ "mp79",
+ "mp80",
+ "mp81",
+ "mp82",
+ "mp83",
+ "mp84",
+ "mp85",
+ "mp86",
+ "mp87",
+ "mp88",
+ "mp89",
+ "mp90",
+ "mp91",
+ "mp92",
+ "mp93",
+ "mp94",
+ "mp95",
+ "mp96",
+ "mp97",
+ "mp98",
+ "mp99",
+ "mp100",
+ "mp101",
+ "mp102",
+ "mp103",
+ "mp104",
+ "mp105",
+ "mp106",
+ "mp107",
+ "mp108",
+ "mp109",
+ "mp110",
+ "mp111",
+ "mp112",
+ "mp113",
+ "mp114",
+ "mp115",
+ "mp116",
+ "mp117",
+ "mp118",
+ "mp119",
+ "mp120",
+ "mp121",
+ "mp122",
+ "mp123",
+ "mp124",
+ "mp125",
+ "mp126",
+ "mp127",
+ "mp128",
+ "mp129",
+ "mp130",
+ "mp131",
+ "mp132",
+ "mp133",
+ "mp134",
+ "mp135",
+ "mp136",
+ "mp137",
+ "mp138",
+ "mp139",
+ "mp140",
+ "mp141",
+ "mp142",
+ "mp143",
+ "mp144",
+ "mp145",
+ "mp146",
+ "mp147",
+ "mp148",
+ "mp149",
+ "mp150",
+ "mp151",
+ "mp152",
+ "mp153",
+ "mp154",
+ "mp155",
+ "mp156",
+ "mp157",
+ "mp158",
+ "mp159",
+ "mp160",
+ "mp161",
+ "mp162",
+ "mp163",
+ "mp164",
+ "mp165",
+ "mp166",
+ "mp167",
+ "mp168",
+ "mp169",
+ "mp170",
+ "mp171",
+ "mp172",
+ "mp173",
+ "mp174",
+ "mp175",
+ "mp176",
+ "mp177",
+ "mp178",
+ "mp179",
+ "mp180",
+ "mp181",
+ "mp182",
+ "mp183",
+ "mp184",
+ "mp185",
+ "mp186",
+ "mp187",
+ "mp188",
+ "mp189",
+ "mp190",
+ "mp191",
+ "mp192",
+ "mp193",
+ "mp194",
+ "mp195",
+ "mp196",
+ "mp197",
+ "mp198",
+ "mp199",
+ "mp200",
+ "mp201",
+ "mp202",
+ "mp203",
+ "mp204",
+ "mp205",
+ "mp206",
+ "mp207",
+ "mp208",
+ "mp209",
+ "mp210",
+ "mp211",
+ "mp212",
+ "mp213",
+ "mp214",
+ "mp215",
+ "mp216",
+ "mp217",
+ "mp218",
+ "mp219",
+ "mp220",
+ "mp221",
+ "mp222",
+ "mp223",
+ "mp224",
+ "mp225",
+ "mp226",
+ "mp227",
+ "mp228",
+ "mp229",
+ "mp230",
+ "mp231",
+ "mp232",
+ "mp233",
+ "mp234",
+ "mp235",
+ "mp236",
+ "mp237",
+ "mp238",
+ "mp239",
+ "mp240",
+ "mp241",
+ "mp242",
+ "mp243",
+ "mp244",
+ "mp245",
+ "mp246",
+ "mp247",
+ "mp248",
+ "mp249",
+ "mp250",
+ "mp251",
+ "mp252",
+ "mp253",
+ "mp254",
+ "mp255",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/pending": {
+ "get": {
+ "responseFields": [
+ "delete",
+ "key",
+ "pending",
+ "value"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/interfaces": {
+ "get": {
+ "responseFields": [
+ "hardware-address",
+ "hwaddr",
+ "inet",
+ "inet6",
+ "ip-addresses",
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/lxc/{vmid}/mtunnelwebsocket": {
+ "get": {
+ "responseFields": [
+ "port",
+ "socket"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/ceph/cfg": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/ceph/cfg/db": {
+ "get": {
+ "responseFields": [
+ "can_update_at_runtime",
+ "level",
+ "mask",
+ "name",
+ "section",
+ "value"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/osd/{osdid}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/ceph/osd/{osdid}/metadata": {
+ "get": {
+ "responseFields": [
+ "devices",
+ "osd"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/osd/{osdid}/lv-info": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "block",
+ "db",
+ "wal"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "creation_time",
+ "lv_name",
+ "lv_path",
+ "lv_size",
+ "lv_uuid",
+ "vg_name"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/mds": {
+ "get": {
+ "responseFields": [
+ "addr",
+ "host",
+ "name",
+ "rank",
+ "standby_replay",
+ "state"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/mgr": {
+ "get": {
+ "responseFields": [
+ "addr",
+ "host",
+ "name",
+ "state"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/mon": {
+ "get": {
+ "responseFields": [
+ "addr",
+ "ceph_version",
+ "ceph_version_short",
+ "direxists",
+ "host",
+ "name",
+ "quorum",
+ "rank",
+ "service",
+ "state"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/fs": {
+ "get": {
+ "responseFields": [
+ "data_pool",
+ "metadata_pool",
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/pool": {
+ "get": {
+ "responseFields": [
+ "application_metadata",
+ "autoscale_status",
+ "bytes_used",
+ "crush_rule",
+ "crush_rule_name",
+ "min_size",
+ "percent_used",
+ "pg_autoscale_mode",
+ "pg_num",
+ "pg_num_final",
+ "pg_num_min",
+ "pool",
+ "pool_name",
+ "size",
+ "target_size",
+ "target_size_ratio",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "application": {
+ "enum": [
+ "rbd",
+ "cephfs",
+ "rgw"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "pg_autoscale_mode": {
+ "enum": [
+ "on",
+ "off",
+ "warn"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/ceph/pool/{name}": {
+ "get": {
+ "responseFields": []
+ },
+ "put": {
+ "params": {
+ "application": {
+ "enum": [
+ "rbd",
+ "cephfs",
+ "rgw"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "pg_autoscale_mode": {
+ "enum": [
+ "on",
+ "off",
+ "warn"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/ceph/pool/{name}/status": {
+ "get": {
+ "responseFields": [
+ "application",
+ "application_list",
+ "autoscale_status",
+ "crush_rule",
+ "fast_read",
+ "hashpspool",
+ "id",
+ "min_size",
+ "name",
+ "nodeep-scrub",
+ "nodelete",
+ "nopgchange",
+ "noscrub",
+ "nosizechange",
+ "pg_autoscale_mode",
+ "pg_num",
+ "pg_num_min",
+ "pgp_num",
+ "size",
+ "statistics",
+ "target_size",
+ "target_size_ratio",
+ "use_gmt_hitset",
+ "write_fadvise_dontneed"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/rules": {
+ "get": {
+ "responseFields": [
+ "name"
+ ]
+ }
+ },
+ "/nodes/{node}/ceph/cmd-safety": {
+ "get": {
+ "params": {
+ "action": {
+ "enum": [
+ "stop",
+ "destroy"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "service": {
+ "enum": [
+ "osd",
+ "mon",
+ "mds"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "safe",
+ "status"
+ ]
+ }
+ },
+ "/nodes/{node}/vzdump": {
+ "post": {
+ "params": {
+ "compress": {
+ "enum": [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "mailnotification": {
+ "enum": [
+ "always",
+ "failure"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "mode": {
+ "enum": [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "notification-mode": {
+ "enum": [
+ "auto",
+ "legacy-sendmail",
+ "notification-system"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "pbs-change-detection-mode": {
+ "enum": [
+ "legacy",
+ "data",
+ "metadata"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/vzdump/defaults": {
+ "get": {
+ "responseFields": [
+ "all",
+ "bwlimit",
+ "compress",
+ "dumpdir",
+ "exclude",
+ "exclude-path",
+ "fleecing",
+ "ionice",
+ "lockwait",
+ "mailnotification",
+ "mailto",
+ "maxfiles",
+ "mode",
+ "node",
+ "notes-template",
+ "notification-mode",
+ "pbs-change-detection-mode",
+ "performance",
+ "pigz",
+ "pool",
+ "protected",
+ "prune-backups",
+ "quiet",
+ "remove",
+ "script",
+ "stdexcludes",
+ "stop",
+ "stopwait",
+ "storage",
+ "tmpdir",
+ "vmid",
+ "zstd"
+ ]
+ }
+ },
+ "/nodes/{node}/services": {
+ "get": {
+ "responseFields": [
+ "active-state",
+ "desc",
+ "name",
+ "service",
+ "state",
+ "unit-state"
+ ]
+ }
+ },
+ "/nodes/{node}/services/{service}": {
+ "get": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/services/{service}/state": {
+ "get": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "active-state",
+ "desc",
+ "name",
+ "service",
+ "state",
+ "unit-state"
+ ]
+ }
+ },
+ "/nodes/{node}/services/{service}/start": {
+ "post": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/services/{service}/stop": {
+ "post": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/services/{service}/restart": {
+ "post": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/services/{service}/reload": {
+ "post": {
+ "params": {
+ "service": {
+ "enum": [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "lxcfs",
+ "postfix",
+ "proxmox-firewall",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pve-lxc-syscalld",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "qmeventd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/subscription": {
+ "get": {
+ "responseFields": [
+ "checktime",
+ "key",
+ "level",
+ "message",
+ "nextduedate",
+ "productname",
+ "regdate",
+ "serverid",
+ "signature",
+ "sockets",
+ "status",
+ "url"
+ ]
+ }
+ },
+ "/nodes/{node}/network": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "fabric",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "vnet",
+ "any_bridge",
+ "any_local_bridge",
+ "include_sdn"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "active",
+ "address",
+ "address6",
+ "autostart",
+ "bond-primary",
+ "bond_mode",
+ "bond_xmit_hash_policy",
+ "bridge-access",
+ "bridge-arp-nd-suppress",
+ "bridge-learning",
+ "bridge-multicast-flood",
+ "bridge-unicast-flood",
+ "bridge_ports",
+ "bridge_vids",
+ "bridge_vlan_aware",
+ "cidr",
+ "cidr6",
+ "comments",
+ "comments6",
+ "exists",
+ "families",
+ "gateway",
+ "gateway6",
+ "iface",
+ "link-type",
+ "method",
+ "method6",
+ "mtu",
+ "netmask",
+ "netmask6",
+ "options",
+ "options6",
+ "ovs_bonds",
+ "ovs_bridge",
+ "ovs_options",
+ "ovs_ports",
+ "ovs_tag",
+ "priority",
+ "slaves",
+ "type",
+ "uplink-id",
+ "vlan-id",
+ "vlan-protocol",
+ "vlan-raw-device",
+ "vxlan-id",
+ "vxlan-local-tunnelip",
+ "vxlan-physdev",
+ "vxlan-svcnodeip"
+ ]
+ },
+ "post": {
+ "params": {
+ "bond_mode": {
+ "enum": [
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "bond_xmit_hash_policy": {
+ "enum": [
+ "layer2",
+ "layer2+3",
+ "layer3+4"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "netmask": {
+ "enum": [
+ "0.0.0.0",
+ "128.0.0.0",
+ "192.0.0.0",
+ "224.0.0.0",
+ "240.0.0.0",
+ "248.0.0.0",
+ "252.0.0.0",
+ "254.0.0.0",
+ "255.0.0.0",
+ "255.128.0.0",
+ "255.192.0.0",
+ "255.224.0.0",
+ "255.240.0.0",
+ "255.248.0.0",
+ "255.252.0.0",
+ "255.254.0.0",
+ "255.255.0.0",
+ "255.255.128.0",
+ "255.255.192.0",
+ "255.255.224.0",
+ "255.255.240.0",
+ "255.255.248.0",
+ "255.255.252.0",
+ "255.255.254.0",
+ "255.255.255.0",
+ "255.255.255.128",
+ "255.255.255.192",
+ "255.255.255.224",
+ "255.255.255.240",
+ "255.255.255.248",
+ "255.255.255.252",
+ "255.255.255.254",
+ "255.255.255.255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "fabric",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "vnet",
+ "unknown"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/network/{iface}": {
+ "get": {
+ "responseFields": [
+ "method",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "bond_mode": {
+ "enum": [
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "bond_xmit_hash_policy": {
+ "enum": [
+ "layer2",
+ "layer2+3",
+ "layer3+4"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "netmask": {
+ "enum": [
+ "0.0.0.0",
+ "128.0.0.0",
+ "192.0.0.0",
+ "224.0.0.0",
+ "240.0.0.0",
+ "248.0.0.0",
+ "252.0.0.0",
+ "254.0.0.0",
+ "255.0.0.0",
+ "255.128.0.0",
+ "255.192.0.0",
+ "255.224.0.0",
+ "255.240.0.0",
+ "255.248.0.0",
+ "255.252.0.0",
+ "255.254.0.0",
+ "255.255.0.0",
+ "255.255.128.0",
+ "255.255.192.0",
+ "255.255.224.0",
+ "255.255.240.0",
+ "255.255.248.0",
+ "255.255.252.0",
+ "255.255.254.0",
+ "255.255.255.0",
+ "255.255.255.128",
+ "255.255.255.192",
+ "255.255.255.224",
+ "255.255.255.240",
+ "255.255.255.248",
+ "255.255.255.252",
+ "255.255.255.254",
+ "255.255.255.255"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "fabric",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "vnet",
+ "unknown"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/tasks": {
+ "get": {
+ "params": {
+ "source": {
+ "enum": [
+ "archive",
+ "active",
+ "all"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "statusfilter": {
+ "enum": null,
+ "x-enum-values": [
+ "ok",
+ "error",
+ "warning",
+ "unknown"
+ ],
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "endtime",
+ "id",
+ "node",
+ "pid",
+ "pstart",
+ "starttime",
+ "status",
+ "type",
+ "upid",
+ "user"
+ ]
+ }
+ },
+ "/nodes/{node}/tasks/{upid}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/tasks/{upid}/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/tasks/{upid}/status": {
+ "get": {
+ "responseFields": [
+ "exitstatus",
+ "id",
+ "node",
+ "pid",
+ "pstart",
+ "starttime",
+ "status",
+ "type",
+ "upid",
+ "user"
+ ]
+ }
+ },
+ "/nodes/{node}/scan": {
+ "get": {
+ "responseFields": [
+ "method"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/nfs": {
+ "get": {
+ "responseFields": [
+ "options",
+ "path"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/cifs": {
+ "get": {
+ "responseFields": [
+ "description",
+ "share"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/pbs": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "store"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/iscsi": {
+ "get": {
+ "responseFields": [
+ "portal",
+ "target"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/lvm": {
+ "get": {
+ "responseFields": [
+ "vg"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/lvmthin": {
+ "get": {
+ "responseFields": [
+ "lv"
+ ]
+ }
+ },
+ "/nodes/{node}/scan/zfs": {
+ "get": {
+ "responseFields": [
+ "pool"
+ ]
+ }
+ },
+ "/nodes/{node}/hardware": {
+ "get": {
+ "responseFields": [
+ "type"
+ ]
+ }
+ },
+ "/nodes/{node}/hardware/pci": {
+ "get": {
+ "responseFields": [
+ "class",
+ "device",
+ "device_name",
+ "id",
+ "iommugroup",
+ "mdev",
+ "subsystem_device",
+ "subsystem_device_name",
+ "subsystem_vendor",
+ "subsystem_vendor_name",
+ "vendor",
+ "vendor_name"
+ ]
+ }
+ },
+ "/nodes/{node}/hardware/pci/{pci-id-or-mapping}": {
+ "get": {
+ "responseFields": [
+ "method"
+ ]
+ }
+ },
+ "/nodes/{node}/hardware/pci/{pci-id-or-mapping}/mdev": {
+ "get": {
+ "responseFields": [
+ "available",
+ "description",
+ "name",
+ "type"
+ ]
+ }
+ },
+ "/nodes/{node}/hardware/usb": {
+ "get": {
+ "responseFields": [
+ "busnum",
+ "class",
+ "devnum",
+ "level",
+ "manufacturer",
+ "port",
+ "prodid",
+ "product",
+ "serial",
+ "speed",
+ "usbpath",
+ "vendid"
+ ]
+ }
+ },
+ "/nodes/{node}/capabilities": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/capabilities/qemu": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/capabilities/qemu/cpu": {
+ "get": {
+ "responseFields": [
+ "custom",
+ "name",
+ "vendor"
+ ]
+ }
+ },
+ "/nodes/{node}/capabilities/qemu/machines": {
+ "get": {
+ "responseFields": [
+ "changes",
+ "id",
+ "type",
+ "version"
+ ]
+ }
+ },
+ "/nodes/{node}/storage": {
+ "get": {
+ "params": {
+ "content": {
+ "enum": null,
+ "x-enum-values": [
+ "import"
+ ],
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "active",
+ "avail",
+ "content",
+ "enabled",
+ "formats",
+ "select_existing",
+ "shared",
+ "storage",
+ "total",
+ "type",
+ "used",
+ "used_fraction"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}/prunebackups": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "qemu",
+ "lxc"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "ctime",
+ "mark",
+ "type",
+ "vmid",
+ "volid"
+ ]
+ },
+ "delete": {
+ "params": {
+ "type": {
+ "enum": [
+ "qemu",
+ "lxc"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/storage/{storage}/content": {
+ "get": {
+ "params": {
+ "content": {
+ "enum": [
+ "import"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "ctime",
+ "encrypted",
+ "format",
+ "notes",
+ "parent",
+ "protected",
+ "size",
+ "used",
+ "verification",
+ "vmid",
+ "volid"
+ ]
+ },
+ "post": {
+ "params": {
+ "format": {
+ "enum": [
+ "raw",
+ "qcow2",
+ "subvol",
+ "vmdk"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/storage/{storage}/content/{volume}": {
+ "get": {
+ "responseFields": [
+ "format",
+ "notes",
+ "path",
+ "protected",
+ "size",
+ "used"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}/file-restore/list": {
+ "get": {
+ "responseFields": [
+ "filepath",
+ "leaf",
+ "mtime",
+ "size",
+ "text",
+ "type"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}/status": {
+ "get": {
+ "responseFields": [
+ "active",
+ "avail",
+ "content",
+ "enabled",
+ "shared",
+ "total",
+ "type",
+ "used"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}/rrd": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "filename"
+ ]
+ }
+ },
+ "/nodes/{node}/storage/{storage}/rrddata": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/storage/{storage}/upload": {
+ "post": {
+ "params": {
+ "checksum-algorithm": {
+ "enum": [
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "content": {
+ "enum": [
+ "iso",
+ "vztmpl",
+ "import"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/storage/{storage}/download-url": {
+ "post": {
+ "params": {
+ "checksum-algorithm": {
+ "enum": [
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "content": {
+ "enum": [
+ "iso",
+ "vztmpl",
+ "import"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/storage/{storage}/import-metadata": {
+ "get": {
+ "responseFields": [
+ "create-args",
+ "disks",
+ "net",
+ "source",
+ "type",
+ "warnings"
+ ]
+ }
+ },
+ "/nodes/{node}/disks": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/disks/lvm": {
+ "get": {
+ "responseFields": [
+ "children",
+ "leaf"
+ ]
+ }
+ },
+ "/nodes/{node}/disks/lvmthin": {
+ "get": {
+ "responseFields": [
+ "lv",
+ "lv_size",
+ "metadata_size",
+ "metadata_used",
+ "used",
+ "vg"
+ ]
+ }
+ },
+ "/nodes/{node}/disks/directory": {
+ "get": {
+ "responseFields": [
+ "device",
+ "options",
+ "path",
+ "type",
+ "unitfile"
+ ]
+ },
+ "post": {
+ "params": {
+ "filesystem": {
+ "enum": [
+ "ext4",
+ "xfs"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/disks/zfs": {
+ "get": {
+ "responseFields": [
+ "alloc",
+ "dedup",
+ "frag",
+ "free",
+ "health",
+ "name",
+ "size"
+ ]
+ },
+ "post": {
+ "params": {
+ "compression": {
+ "enum": [
+ "on",
+ "off",
+ "gzip",
+ "lz4",
+ "lzjb",
+ "zle",
+ "zstd"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "raidlevel": {
+ "enum": [
+ "single",
+ "mirror",
+ "raid10",
+ "raidz",
+ "raidz2",
+ "raidz3",
+ "draid",
+ "draid2",
+ "draid3"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/disks/zfs/{name}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "children",
+ "errors",
+ "name",
+ "scan",
+ "state",
+ "status"
+ ]
+ }
+ },
+ "/nodes/{node}/disks/list": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "unused",
+ "journal_disks"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "devpath",
+ "gpt",
+ "health",
+ "model",
+ "mounted",
+ "osdid",
+ "osdid-list",
+ "parent",
+ "serial",
+ "size",
+ "used",
+ "vendor",
+ "wwn"
+ ]
+ }
+ },
+ "/nodes/{node}/disks/smart": {
+ "get": {
+ "responseFields": [
+ "attributes",
+ "health",
+ "text",
+ "type"
+ ]
+ }
+ },
+ "/nodes/{node}/apt": {
+ "get": {
+ "responseFields": [
+ "id"
+ ]
+ }
+ },
+ "/nodes/{node}/apt/update": {
+ "get": {
+ "responseFields": [
+ "Arch",
+ "Description",
+ "NotifyStatus",
+ "OldVersion",
+ "Origin",
+ "Package",
+ "Priority",
+ "Section",
+ "Title",
+ "Version"
+ ]
+ }
+ },
+ "/nodes/{node}/apt/repositories": {
+ "get": {
+ "responseFields": [
+ "digest",
+ "errors",
+ "files",
+ "infos",
+ "standard-repos"
+ ]
+ }
+ },
+ "/nodes/{node}/apt/versions": {
+ "get": {
+ "responseFields": [
+ "Arch",
+ "CurrentState",
+ "Description",
+ "ManagerVersion",
+ "NotifyStatus",
+ "OldVersion",
+ "Origin",
+ "Package",
+ "Priority",
+ "RunningKernel",
+ "Section",
+ "Title",
+ "Version"
+ ]
+ }
+ },
+ "/nodes/{node}/firewall": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/firewall/rules": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/firewall/rules/{pos}": {
+ "get": {
+ "responseFields": [
+ "action",
+ "comment",
+ "dest",
+ "dport",
+ "enable",
+ "icmp-type",
+ "iface",
+ "ipversion",
+ "log",
+ "macro",
+ "pos",
+ "proto",
+ "source",
+ "sport",
+ "type"
+ ]
+ },
+ "put": {
+ "params": {
+ "log": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "in",
+ "out",
+ "forward",
+ "group"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/firewall/options": {
+ "get": {
+ "responseFields": [
+ "enable",
+ "log_level_forward",
+ "log_level_in",
+ "log_level_out",
+ "log_nf_conntrack",
+ "ndp",
+ "nf_conntrack_allow_invalid",
+ "nf_conntrack_helpers",
+ "nf_conntrack_max",
+ "nf_conntrack_tcp_timeout_established",
+ "nf_conntrack_tcp_timeout_syn_recv",
+ "nftables",
+ "nosmurfs",
+ "protection_synflood",
+ "protection_synflood_burst",
+ "protection_synflood_rate",
+ "smurf_log_level",
+ "tcp_flags_log_level",
+ "tcpflags"
+ ]
+ },
+ "put": {
+ "params": {
+ "log_level_forward": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "log_level_in": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "log_level_out": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "nf_conntrack_helpers": {
+ "enum": null,
+ "x-enum-values": [
+ "amanda",
+ "ftp",
+ "irc",
+ "netbios-ns",
+ "pptp",
+ "sane",
+ "sip",
+ "snmp",
+ "tftp"
+ ],
+ "type": "string"
+ },
+ "smurf_log_level": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "tcp_flags_log_level": {
+ "enum": [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/firewall/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/replication": {
+ "get": {
+ "responseFields": [
+ "id"
+ ]
+ }
+ },
+ "/nodes/{node}/replication/{id}": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/replication/{id}/log": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/certificates": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/certificates/acme": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/certificates/info": {
+ "get": {
+ "responseFields": [
+ "filename",
+ "fingerprint",
+ "issuer",
+ "notafter",
+ "notbefore",
+ "pem",
+ "public-key-bits",
+ "public-key-type",
+ "san",
+ "subject"
+ ]
+ }
+ },
+ "/nodes/{node}/certificates/custom": {
+ "post": {
+ "responseFields": [
+ "filename",
+ "fingerprint",
+ "issuer",
+ "notafter",
+ "notbefore",
+ "pem",
+ "public-key-bits",
+ "public-key-type",
+ "san",
+ "subject"
+ ]
+ }
+ },
+ "/nodes/{node}/config": {
+ "get": {
+ "params": {
+ "property": {
+ "enum": [
+ "acme",
+ "acmedomain0",
+ "acmedomain1",
+ "acmedomain2",
+ "acmedomain3",
+ "acmedomain4",
+ "acmedomain5",
+ "ballooning-target",
+ "description",
+ "startall-onboot-delay",
+ "wakeonlan"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "acme",
+ "acmedomain[n]",
+ "ballooning-target",
+ "description",
+ "digest",
+ "startall-onboot-delay",
+ "wakeonlan"
+ ]
+ }
+ },
+ "/nodes/{node}/sdn": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/sdn/zones": {
+ "get": {
+ "responseFields": [
+ "status",
+ "zone"
+ ]
+ }
+ },
+ "/nodes/{node}/sdn/zones/{zone}": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/nodes/{node}/sdn/zones/{zone}/content": {
+ "get": {
+ "responseFields": [
+ "status",
+ "statusmsg",
+ "vnet"
+ ]
+ }
+ },
+ "/nodes/{node}/version": {
+ "get": {
+ "responseFields": [
+ "release",
+ "repoid",
+ "version"
+ ]
+ }
+ },
+ "/nodes/{node}/status": {
+ "get": {
+ "responseFields": [
+ "boot-info",
+ "cpu",
+ "cpuinfo",
+ "current-kernel",
+ "loadavg",
+ "memory",
+ "pveversion",
+ "rootfs"
+ ]
+ },
+ "post": {
+ "params": {
+ "command": {
+ "enum": [
+ "reboot",
+ "shutdown"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/netstat": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/execute": {
+ "post": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/rrd": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year",
+ "decade"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "filename"
+ ]
+ }
+ },
+ "/nodes/{node}/rrddata": {
+ "get": {
+ "params": {
+ "cf": {
+ "enum": [
+ "AVERAGE",
+ "MAX"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "timeframe": {
+ "enum": [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year",
+ "decade"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/syslog": {
+ "get": {
+ "responseFields": [
+ "n",
+ "t"
+ ]
+ }
+ },
+ "/nodes/{node}/vncshell": {
+ "post": {
+ "params": {
+ "cmd": {
+ "enum": [
+ "ceph_install",
+ "login",
+ "upgrade"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/termproxy": {
+ "post": {
+ "params": {
+ "cmd": {
+ "enum": [
+ "ceph_install",
+ "login",
+ "upgrade"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/vncwebsocket": {
+ "get": {
+ "responseFields": [
+ "port"
+ ]
+ }
+ },
+ "/nodes/{node}/spiceshell": {
+ "post": {
+ "params": {
+ "cmd": {
+ "enum": [
+ "ceph_install",
+ "login",
+ "upgrade"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/nodes/{node}/dns": {
+ "get": {
+ "responseFields": [
+ "dns1",
+ "dns2",
+ "dns3",
+ "search"
+ ]
+ }
+ },
+ "/nodes/{node}/time": {
+ "get": {
+ "responseFields": [
+ "localtime",
+ "time",
+ "timezone"
+ ]
+ }
+ },
+ "/nodes/{node}/aplinfo": {
+ "get": {
+ "responseFields": []
+ }
+ },
+ "/nodes/{node}/query-url-metadata": {
+ "get": {
+ "responseFields": [
+ "filename",
+ "mimetype",
+ "size"
+ ]
+ }
+ },
+ "/nodes/{node}/hosts": {
+ "get": {
+ "responseFields": [
+ "data",
+ "digest"
+ ]
+ }
+ },
+ "/storage": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "btrfs",
+ "cephfs",
+ "cifs",
+ "dir",
+ "esxi",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "pbs",
+ "rbd",
+ "zfs",
+ "zfspool"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "storage"
+ ]
+ },
+ "post": {
+ "params": {
+ "content": {
+ "enum": null,
+ "x-enum-values": [
+ "import"
+ ],
+ "type": "string"
+ },
+ "format": {
+ "enum": [
+ "raw",
+ "qcow2",
+ "subvol",
+ "vmdk"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "preallocation": {
+ "enum": [
+ "off",
+ "metadata",
+ "falloc",
+ "full"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "saferemove-stepsize": {
+ "enum": [
+ "1",
+ "2",
+ "4",
+ "8",
+ "16",
+ "32"
+ ],
+ "x-enum-values": null,
+ "type": "integer"
+ },
+ "smbversion": {
+ "enum": [
+ "default",
+ "2.0",
+ "2.1",
+ "3",
+ "3.0",
+ "3.11"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "btrfs",
+ "cephfs",
+ "cifs",
+ "dir",
+ "esxi",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "pbs",
+ "rbd",
+ "zfs",
+ "zfspool"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "config",
+ "storage",
+ "type"
+ ]
+ }
+ },
+ "/storage/{storage}": {
+ "put": {
+ "params": {
+ "content": {
+ "enum": null,
+ "x-enum-values": [
+ "import"
+ ],
+ "type": "string"
+ },
+ "format": {
+ "enum": [
+ "raw",
+ "qcow2",
+ "subvol",
+ "vmdk"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "preallocation": {
+ "enum": [
+ "off",
+ "metadata",
+ "falloc",
+ "full"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "saferemove-stepsize": {
+ "enum": [
+ "1",
+ "2",
+ "4",
+ "8",
+ "16",
+ "32"
+ ],
+ "x-enum-values": null,
+ "type": "integer"
+ },
+ "smbversion": {
+ "enum": [
+ "default",
+ "2.0",
+ "2.1",
+ "3",
+ "3.0",
+ "3.11"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "config",
+ "storage",
+ "type"
+ ]
+ }
+ },
+ "/access": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/access/users": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "email",
+ "enable",
+ "expire",
+ "firstname",
+ "groups",
+ "keys",
+ "lastname",
+ "realm-type",
+ "tfa-locked-until",
+ "tokens",
+ "totp-locked",
+ "userid"
+ ]
+ }
+ },
+ "/access/users/{userid}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "email",
+ "enable",
+ "expire",
+ "firstname",
+ "groups",
+ "keys",
+ "lastname",
+ "tokens"
+ ]
+ }
+ },
+ "/access/users/{userid}/tfa": {
+ "get": {
+ "responseFields": [
+ "realm",
+ "types",
+ "user"
+ ]
+ }
+ },
+ "/access/users/{userid}/token": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "expire",
+ "privsep",
+ "tokenid"
+ ]
+ }
+ },
+ "/access/users/{userid}/token/{tokenid}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "expire",
+ "privsep"
+ ]
+ },
+ "post": {
+ "responseFields": [
+ "full-tokenid",
+ "info",
+ "value"
+ ]
+ },
+ "put": {
+ "responseFields": [
+ "comment",
+ "expire",
+ "privsep"
+ ]
+ }
+ },
+ "/access/groups": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "groupid",
+ "users"
+ ]
+ }
+ },
+ "/access/groups/{groupid}": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "members"
+ ]
+ }
+ },
+ "/access/roles": {
+ "get": {
+ "responseFields": [
+ "privs",
+ "roleid",
+ "special"
+ ]
+ },
+ "post": {
+ "params": {
+ "privs": {
+ "enum": null,
+ "x-enum-values": [
+ "Datastore.Allocate",
+ "Datastore.AllocateSpace",
+ "Datastore.AllocateTemplate",
+ "Datastore.Audit",
+ "Group.Allocate",
+ "Mapping.Audit",
+ "Mapping.Modify",
+ "Mapping.Use",
+ "Permissions.Modify",
+ "Pool.Allocate",
+ "Pool.Audit",
+ "Realm.Allocate",
+ "Realm.AllocateUser",
+ "SDN.Allocate",
+ "SDN.Audit",
+ "SDN.Use",
+ "Sys.AccessNetwork",
+ "Sys.Audit",
+ "Sys.Console",
+ "Sys.Incoming",
+ "Sys.Modify",
+ "Sys.PowerMgmt",
+ "Sys.Syslog",
+ "User.Modify",
+ "VM.Allocate",
+ "VM.Audit",
+ "VM.Backup",
+ "VM.Clone",
+ "VM.Config.CDROM",
+ "VM.Config.CPU",
+ "VM.Config.Cloudinit",
+ "VM.Config.Disk",
+ "VM.Config.HWType",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.Options",
+ "VM.Console",
+ "VM.Migrate",
+ "VM.Monitor",
+ "VM.PowerMgmt",
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ],
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/access/roles/{roleid}": {
+ "get": {
+ "responseFields": [
+ "Datastore.Allocate",
+ "Datastore.AllocateSpace",
+ "Datastore.AllocateTemplate",
+ "Datastore.Audit",
+ "Group.Allocate",
+ "Mapping.Audit",
+ "Mapping.Modify",
+ "Mapping.Use",
+ "Permissions.Modify",
+ "Pool.Allocate",
+ "Pool.Audit",
+ "Realm.Allocate",
+ "Realm.AllocateUser",
+ "SDN.Allocate",
+ "SDN.Audit",
+ "SDN.Use",
+ "Sys.AccessNetwork",
+ "Sys.Audit",
+ "Sys.Console",
+ "Sys.Incoming",
+ "Sys.Modify",
+ "Sys.PowerMgmt",
+ "Sys.Syslog",
+ "User.Modify",
+ "VM.Allocate",
+ "VM.Audit",
+ "VM.Backup",
+ "VM.Clone",
+ "VM.Config.CDROM",
+ "VM.Config.CPU",
+ "VM.Config.Cloudinit",
+ "VM.Config.Disk",
+ "VM.Config.HWType",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.Options",
+ "VM.Console",
+ "VM.GuestAgent.Audit",
+ "VM.GuestAgent.FileRead",
+ "VM.GuestAgent.FileSystemMgmt",
+ "VM.GuestAgent.FileWrite",
+ "VM.GuestAgent.Unrestricted",
+ "VM.Migrate",
+ "VM.PowerMgmt",
+ "VM.Replicate",
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ]
+ },
+ "put": {
+ "params": {
+ "privs": {
+ "enum": null,
+ "x-enum-values": [
+ "Datastore.Allocate",
+ "Datastore.AllocateSpace",
+ "Datastore.AllocateTemplate",
+ "Datastore.Audit",
+ "Group.Allocate",
+ "Mapping.Audit",
+ "Mapping.Modify",
+ "Mapping.Use",
+ "Permissions.Modify",
+ "Pool.Allocate",
+ "Pool.Audit",
+ "Realm.Allocate",
+ "Realm.AllocateUser",
+ "SDN.Allocate",
+ "SDN.Audit",
+ "SDN.Use",
+ "Sys.AccessNetwork",
+ "Sys.Audit",
+ "Sys.Console",
+ "Sys.Incoming",
+ "Sys.Modify",
+ "Sys.PowerMgmt",
+ "Sys.Syslog",
+ "User.Modify",
+ "VM.Allocate",
+ "VM.Audit",
+ "VM.Backup",
+ "VM.Clone",
+ "VM.Config.CDROM",
+ "VM.Config.CPU",
+ "VM.Config.Cloudinit",
+ "VM.Config.Disk",
+ "VM.Config.HWType",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.Options",
+ "VM.Console",
+ "VM.Migrate",
+ "VM.Monitor",
+ "VM.PowerMgmt",
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ],
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/access/acl": {
+ "get": {
+ "responseFields": [
+ "path",
+ "propagate",
+ "roleid",
+ "type",
+ "ugid"
+ ]
+ }
+ },
+ "/access/domains": {
+ "get": {
+ "responseFields": [
+ "comment",
+ "realm",
+ "tfa",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "mode": {
+ "enum": [
+ "ldap",
+ "ldaps",
+ "ldap+starttls"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "sslversion": {
+ "enum": [
+ "tlsv1",
+ "tlsv1_1",
+ "tlsv1_2",
+ "tlsv1_3"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "ad",
+ "ldap",
+ "openid",
+ "pam",
+ "pve"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/access/domains/{realm}": {
+ "put": {
+ "params": {
+ "mode": {
+ "enum": [
+ "ldap",
+ "ldaps",
+ "ldap+starttls"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ },
+ "sslversion": {
+ "enum": [
+ "tlsv1",
+ "tlsv1_1",
+ "tlsv1_2",
+ "tlsv1_3"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/access/domains/{realm}/sync": {
+ "post": {
+ "params": {
+ "scope": {
+ "enum": [
+ "users",
+ "groups",
+ "both"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/access/openid": {
+ "get": {
+ "responseFields": [
+ "subdir"
+ ]
+ }
+ },
+ "/access/tfa": {
+ "get": {
+ "responseFields": [
+ "entries",
+ "tfa-locked-until",
+ "totp-locked",
+ "userid"
+ ]
+ }
+ },
+ "/access/tfa/{userid}": {
+ "get": {
+ "responseFields": [
+ "created",
+ "description",
+ "enable",
+ "id",
+ "type"
+ ]
+ },
+ "post": {
+ "params": {
+ "type": {
+ "enum": [
+ "totp",
+ "u2f",
+ "webauthn",
+ "recovery",
+ "yubico"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "challenge",
+ "id",
+ "recovery"
+ ]
+ }
+ },
+ "/access/tfa/{userid}/{id}": {
+ "get": {
+ "responseFields": [
+ "created",
+ "description",
+ "enable",
+ "id",
+ "type"
+ ]
+ }
+ },
+ "/access/ticket": {
+ "post": {
+ "params": {
+ "privs": {
+ "enum": null,
+ "x-enum-values": [
+ "Datastore.Allocate",
+ "Datastore.AllocateSpace",
+ "Datastore.AllocateTemplate",
+ "Datastore.Audit",
+ "Group.Allocate",
+ "Mapping.Audit",
+ "Mapping.Modify",
+ "Mapping.Use",
+ "Permissions.Modify",
+ "Pool.Allocate",
+ "Pool.Audit",
+ "Realm.Allocate",
+ "Realm.AllocateUser",
+ "SDN.Allocate",
+ "SDN.Audit",
+ "SDN.Use",
+ "Sys.AccessNetwork",
+ "Sys.Audit",
+ "Sys.Console",
+ "Sys.Incoming",
+ "Sys.Modify",
+ "Sys.PowerMgmt",
+ "Sys.Syslog",
+ "User.Modify",
+ "VM.Allocate",
+ "VM.Audit",
+ "VM.Backup",
+ "VM.Clone",
+ "VM.Config.CDROM",
+ "VM.Config.CPU",
+ "VM.Config.Cloudinit",
+ "VM.Config.Disk",
+ "VM.Config.HWType",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.Options",
+ "VM.Console",
+ "VM.Migrate",
+ "VM.Monitor",
+ "VM.PowerMgmt",
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ],
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "CSRFPreventionToken",
+ "clustername",
+ "ticket",
+ "username"
+ ]
+ }
+ },
+ "/pools": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "qemu",
+ "lxc",
+ "storage"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "comment",
+ "members",
+ "poolid"
+ ]
+ }
+ },
+ "/pools/{poolid}": {
+ "get": {
+ "params": {
+ "type": {
+ "enum": [
+ "qemu",
+ "lxc",
+ "storage"
+ ],
+ "x-enum-values": null,
+ "type": "string"
+ }
+ },
+ "responseFields": [
+ "comment",
+ "members"
+ ]
+ }
+ },
+ "/version": {
+ "get": {
+ "responseFields": [
+ "console",
+ "release",
+ "repoid",
+ "version"
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.json b/tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.pve9.json
similarity index 99%
rename from tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.json
rename to tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.pve9.json
index ab44aaa..3a1bdbe 100644
--- a/tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.json
+++ b/tests/PSProxmoxVE.Core.Tests/Fixtures/pve-api-enums.pve9.json
@@ -1,4 +1,5 @@
{
+ "pve_version": 9,
"paths": {
"/cluster": {
"get": {
@@ -807,13 +808,13 @@
"dow": {
"enum": null,
"x-enum-values": [
- "mon",
- "tue",
- "wed",
- "thu",
"fri",
+ "mon",
"sat",
- "sun"
+ "sun",
+ "thu",
+ "tue",
+ "wed"
],
"type": "string"
},
@@ -872,13 +873,13 @@
"dow": {
"enum": null,
"x-enum-values": [
- "mon",
- "tue",
- "wed",
- "thu",
"fri",
+ "mon",
"sat",
- "sun"
+ "sun",
+ "thu",
+ "tue",
+ "wed"
],
"type": "string"
},
@@ -7325,12 +7326,6 @@
"content": {
"enum": null,
"x-enum-values": [
- "images",
- "rootdir",
- "vztmpl",
- "backup",
- "iso",
- "snippets",
"import"
],
"type": "string"
@@ -7397,12 +7392,6 @@
"params": {
"content": {
"enum": [
- "images",
- "rootdir",
- "vztmpl",
- "backup",
- "iso",
- "snippets",
"import"
],
"x-enum-values": null,
@@ -8452,12 +8441,6 @@
"content": {
"enum": null,
"x-enum-values": [
- "images",
- "rootdir",
- "vztmpl",
- "backup",
- "iso",
- "snippets",
"import"
],
"type": "string"
@@ -8540,12 +8523,6 @@
"content": {
"enum": null,
"x-enum-values": [
- "images",
- "rootdir",
- "vztmpl",
- "backup",
- "iso",
- "snippets",
"import"
],
"type": "string"
@@ -8744,8 +8721,8 @@
"VM.Backup",
"VM.Clone",
"VM.Config.CDROM",
- "VM.Config.Cloudinit",
"VM.Config.CPU",
+ "VM.Config.Cloudinit",
"VM.Config.Disk",
"VM.Config.HWType",
"VM.Config.Memory",
@@ -8758,7 +8735,6 @@
"VM.GuestAgent.FileWrite",
"VM.GuestAgent.Unrestricted",
"VM.Migrate",
- "VM.Monitor",
"VM.PowerMgmt",
"VM.Replicate",
"VM.Snapshot",
@@ -8855,8 +8831,8 @@
"VM.Backup",
"VM.Clone",
"VM.Config.CDROM",
- "VM.Config.Cloudinit",
"VM.Config.CPU",
+ "VM.Config.Cloudinit",
"VM.Config.Disk",
"VM.Config.HWType",
"VM.Config.Memory",
@@ -8869,7 +8845,6 @@
"VM.GuestAgent.FileWrite",
"VM.GuestAgent.Unrestricted",
"VM.Migrate",
- "VM.Monitor",
"VM.PowerMgmt",
"VM.Replicate",
"VM.Snapshot",
@@ -9069,8 +9044,8 @@
"VM.Backup",
"VM.Clone",
"VM.Config.CDROM",
- "VM.Config.Cloudinit",
"VM.Config.CPU",
+ "VM.Config.Cloudinit",
"VM.Config.Disk",
"VM.Config.HWType",
"VM.Config.Memory",
@@ -9083,7 +9058,6 @@
"VM.GuestAgent.FileWrite",
"VM.GuestAgent.Unrestricted",
"VM.Migrate",
- "VM.Monitor",
"VM.PowerMgmt",
"VM.Replicate",
"VM.Snapshot",
@@ -9135,8 +9109,8 @@
"VM.Backup",
"VM.Clone",
"VM.Config.CDROM",
- "VM.Config.Cloudinit",
"VM.Config.CPU",
+ "VM.Config.Cloudinit",
"VM.Config.Disk",
"VM.Config.HWType",
"VM.Config.Memory",
@@ -9149,7 +9123,6 @@
"VM.GuestAgent.FileWrite",
"VM.GuestAgent.Unrestricted",
"VM.Migrate",
- "VM.Monitor",
"VM.PowerMgmt",
"VM.Replicate",
"VM.Snapshot",
@@ -9209,8 +9182,5 @@
]
}
}
- },
- "meta": {
- "generated_at": "2026-03-26T20:08:30.474Z"
}
}
\ No newline at end of file
diff --git a/tests/PSProxmoxVE.Core.Tests/OpenApiSpecValidationTests.cs b/tests/PSProxmoxVE.Core.Tests/OpenApiSpecValidationTests.cs
index 2cb8188..f0654af 100644
--- a/tests/PSProxmoxVE.Core.Tests/OpenApiSpecValidationTests.cs
+++ b/tests/PSProxmoxVE.Core.Tests/OpenApiSpecValidationTests.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
@@ -10,79 +9,181 @@ namespace PSProxmoxVE.Core.Tests
{
///
/// Validates that the module's hardcoded enum values (ValidateSet, privilege names, etc.)
- /// match what the PVE API actually accepts, as defined by the OpenAPI spec.
+ /// match what the PVE API actually accepts, as defined by per-version OpenAPI specs.
///
- /// The fixture pve-api-enums.json is extracted from the full OpenAPI spec at
- /// ~/Source/pve_api/tools/pve-api-parser/pve-openapi.json and contains only
- /// parameter enum values and response field names.
+ /// Fixtures pve-api-enums.pve{7,8,9}.json are extracted from the full OpenAPI specs at
+ /// ~/Source/pve_api/tools/pve-api-parser/ and contain parameter enum values per PVE version.
+ ///
+ /// PVE 7 = best-effort support, PVE 8 + 9 = fully supported.
///
public class OpenApiSpecValidationTests
{
- private static readonly Lazy _spec = new Lazy(() =>
- JObject.Parse(TestHelper.LoadFixture("pve-api-enums.json")));
+ private static readonly Lazy _specPve7 = new Lazy(() =>
+ JObject.Parse(TestHelper.LoadFixture("pve-api-enums.pve7.json")));
+ private static readonly Lazy _specPve8 = new Lazy(() =>
+ JObject.Parse(TestHelper.LoadFixture("pve-api-enums.pve8.json")));
+ private static readonly Lazy _specPve9 = new Lazy(() =>
+ JObject.Parse(TestHelper.LoadFixture("pve-api-enums.pve9.json")));
- private static JObject Spec => _spec.Value;
+ private static JObject SpecPve7 => _specPve7.Value;
+ private static JObject SpecPve8 => _specPve8.Value;
+ private static JObject SpecPve9 => _specPve9.Value;
- private static HashSet GetEnumValues(string path, string method, string paramName)
+ private static HashSet GetEnumValues(JObject spec, string path, string method, string paramName)
{
- var pathData = Spec["paths"]?[path]?[method]?["params"]?[paramName];
+ var pathData = spec["paths"]?[path]?[method]?["params"]?[paramName];
if (pathData == null) return new HashSet(StringComparer.OrdinalIgnoreCase);
var values = new HashSet(StringComparer.OrdinalIgnoreCase);
- var enumArray = pathData["enum"] as JArray;
- if (enumArray != null)
- {
+ if (pathData["enum"] is JArray enumArray)
foreach (var v in enumArray)
values.Add(v.ToString());
- }
- var xEnumArray = pathData["x-enum-values"] as JArray;
- if (xEnumArray != null)
- {
+ if (pathData["x-enum-values"] is JArray xEnumArray)
foreach (var v in xEnumArray)
values.Add(v.ToString());
- }
return values;
}
+ ///
+ /// Asserts that a value is valid in at least one of the supported PVE versions.
+ /// Returns which versions accept/reject it for diagnostic purposes.
+ ///
+ private static void AssertValidInAnyVersion(string path, string method, string paramName, string value)
+ {
+ var pve7 = GetEnumValues(SpecPve7, path, method, paramName);
+ var pve8 = GetEnumValues(SpecPve8, path, method, paramName);
+ var pve9 = GetEnumValues(SpecPve9, path, method, paramName);
+
+ Assert.True(
+ pve7.Contains(value) || pve8.Contains(value) || pve9.Contains(value),
+ $"'{value}' not valid in any PVE version for {method.ToUpper()} {path} param '{paramName}'. " +
+ $"PVE 7: [{string.Join(", ", pve7)}], PVE 8: [{string.Join(", ", pve8)}], PVE 9: [{string.Join(", ", pve9)}]");
+ }
+
+ ///
+ /// Asserts that a value is valid in ALL fully-supported PVE versions (8 + 9).
+ ///
+ private static void AssertValidInAllSupported(string path, string method, string paramName, string value)
+ {
+ var pve8 = GetEnumValues(SpecPve8, path, method, paramName);
+ var pve9 = GetEnumValues(SpecPve9, path, method, paramName);
+
+ var missing = new List();
+ if (!pve8.Contains(value)) missing.Add("PVE 8");
+ if (!pve9.Contains(value)) missing.Add("PVE 9");
+
+ Assert.True(missing.Count == 0,
+ $"'{value}' not valid in: {string.Join(", ", missing)} for {method.ToUpper()} {path} param '{paramName}'. " +
+ $"PVE 8: [{string.Join(", ", pve8)}], PVE 9: [{string.Join(", ", pve9)}]");
+ }
+
// ── Privileges ──────────────────────────────────────────────────────
[Fact]
- public void Privileges_AllKnownValuesAcceptedByApi()
+ public void Privileges_AllPve8And9Common()
{
- var apiPrivileges = GetEnumValues("/access/roles", "post", "privs");
- Assert.NotEmpty(apiPrivileges);
+ var pve8 = GetEnumValues(SpecPve8, "/access/roles", "post", "privs");
+ var pve9 = GetEnumValues(SpecPve9, "/access/roles", "post", "privs");
+ Assert.NotEmpty(pve8);
+ Assert.NotEmpty(pve9);
- // These are privilege names used in tests and documentation
- var modulePrivileges = new[]
+ var common = pve8.Intersect(pve9, StringComparer.Ordinal).OrderBy(p => p).ToList();
+ Assert.True(common.Count > 30, $"Expected >30 common privileges, got {common.Count}");
+ }
+
+ [Fact]
+ public void Privileges_VmMonitor_OnlyPve7And8()
+ {
+ var pve7 = GetEnumValues(SpecPve7, "/access/roles", "post", "privs");
+ var pve8 = GetEnumValues(SpecPve8, "/access/roles", "post", "privs");
+ var pve9 = GetEnumValues(SpecPve9, "/access/roles", "post", "privs");
+
+ Assert.Contains("VM.Monitor", pve7);
+ Assert.Contains("VM.Monitor", pve8);
+ Assert.DoesNotContain("VM.Monitor", pve9);
+ }
+
+ [Fact]
+ public void Privileges_Pve9Only()
+ {
+ var pve8 = GetEnumValues(SpecPve8, "/access/roles", "post", "privs");
+ var pve9 = GetEnumValues(SpecPve9, "/access/roles", "post", "privs");
+
+ // These privileges were added in PVE 9
+ var guestAgentPrivs = new[]
{
- "VM.Allocate", "VM.Audit", "VM.Backup", "VM.Clone",
- "VM.Config.CDROM", "VM.Config.Cloudinit", "VM.Config.CPU",
- "VM.Config.Disk", "VM.Config.HWType", "VM.Config.Memory",
- "VM.Config.Network", "VM.Config.Options", "VM.Console",
- "VM.Migrate", "VM.Monitor", "VM.PowerMgmt", "VM.Snapshot",
- "VM.Snapshot.Rollback",
- "Datastore.Allocate", "Datastore.AllocateSpace",
- "Datastore.AllocateTemplate", "Datastore.Audit",
- "Sys.Audit", "Sys.Console", "Sys.Modify", "Sys.PowerMgmt",
- "Sys.Syslog", "Sys.AccessNetwork", "Sys.Incoming",
- "SDN.Allocate", "SDN.Audit", "SDN.Use",
- "User.Modify", "Permissions.Modify",
- "Pool.Allocate", "Pool.Audit",
- "Group.Allocate",
- "Realm.Allocate", "Realm.AllocateUser",
- "Mapping.Audit", "Mapping.Modify", "Mapping.Use",
- "VM.GuestAgent.Audit", "VM.GuestAgent.FileRead",
- "VM.GuestAgent.FileWrite", "VM.GuestAgent.FileSystemMgmt",
- "VM.GuestAgent.Unrestricted", "VM.Replicate"
+ "VM.GuestAgent.Audit", "VM.GuestAgent.FileRead", "VM.GuestAgent.FileWrite",
+ "VM.GuestAgent.FileSystemMgmt", "VM.GuestAgent.Unrestricted",
+ "VM.Replicate"
};
- var invalid = modulePrivileges.Where(p => !apiPrivileges.Contains(p)).ToList();
- Assert.True(invalid.Count == 0,
- $"Invalid privilege name(s) not accepted by PVE API: {string.Join(", ", invalid)}. " +
- $"Valid privileges: {string.Join(", ", apiPrivileges.OrderBy(p => p))}");
+ foreach (var priv in guestAgentPrivs)
+ {
+ Assert.DoesNotContain(priv, pve8);
+ Assert.Contains(priv, pve9);
+ }
+ }
+
+ [Theory]
+ [InlineData("VM.Allocate")]
+ [InlineData("VM.Audit")]
+ [InlineData("VM.Backup")]
+ [InlineData("VM.Clone")]
+ [InlineData("VM.Config.CDROM")]
+ [InlineData("VM.Config.Cloudinit")]
+ [InlineData("VM.Config.CPU")]
+ [InlineData("VM.Config.Disk")]
+ [InlineData("VM.Config.HWType")]
+ [InlineData("VM.Config.Memory")]
+ [InlineData("VM.Config.Network")]
+ [InlineData("VM.Config.Options")]
+ [InlineData("VM.Console")]
+ [InlineData("VM.Migrate")]
+ [InlineData("VM.PowerMgmt")]
+ [InlineData("VM.Snapshot")]
+ [InlineData("VM.Snapshot.Rollback")]
+ [InlineData("Datastore.Allocate")]
+ [InlineData("Datastore.AllocateSpace")]
+ [InlineData("Datastore.AllocateTemplate")]
+ [InlineData("Datastore.Audit")]
+ [InlineData("Sys.Audit")]
+ [InlineData("Sys.Console")]
+ [InlineData("Sys.Modify")]
+ [InlineData("Sys.PowerMgmt")]
+ [InlineData("Sys.Syslog")]
+ [InlineData("Sys.AccessNetwork")]
+ [InlineData("Sys.Incoming")]
+ [InlineData("SDN.Allocate")]
+ [InlineData("SDN.Audit")]
+ [InlineData("SDN.Use")]
+ [InlineData("User.Modify")]
+ [InlineData("Permissions.Modify")]
+ [InlineData("Pool.Allocate")]
+ [InlineData("Pool.Audit")]
+ [InlineData("Group.Allocate")]
+ [InlineData("Realm.Allocate")]
+ [InlineData("Realm.AllocateUser")]
+ public void Privilege_ValidInAllSupportedVersions(string privilege)
+ {
+ AssertValidInAllSupported("/access/roles", "post", "privs", privilege);
+ }
+
+ [Theory]
+ [InlineData("Mapping.Audit")]
+ [InlineData("Mapping.Modify")]
+ [InlineData("Mapping.Use")]
+ public void Privilege_Pve8AndAbove(string privilege)
+ {
+ var pve7 = GetEnumValues(SpecPve7, "/access/roles", "post", "privs");
+ var pve8 = GetEnumValues(SpecPve8, "/access/roles", "post", "privs");
+ var pve9 = GetEnumValues(SpecPve9, "/access/roles", "post", "privs");
+
+ Assert.DoesNotContain(privilege, pve7);
+ Assert.Contains(privilege, pve8);
+ Assert.Contains(privilege, pve9);
}
// ── Storage Types ───────────────────────────────────────────────────
@@ -100,16 +201,35 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("iscsidirect")]
[InlineData("cifs")]
[InlineData("pbs")]
+ public void StorageType_ValidInAllSupportedVersions(string storageType)
+ {
+ AssertValidInAllSupported("/storage", "post", "type", storageType);
+ }
+
+ [Theory]
[InlineData("btrfs")]
[InlineData("esxi")]
- // Note: "glusterfs" was removed in PVE 9.0 — replaced by btrfs/esxi.
- // The module's ValidateSet still includes it.
- // See: NewPveStorageCmdlet.cs line 27-28
- public void StorageType_IsValidInApi(string storageType)
+ public void StorageType_ValidAcrossAllVersions(string storageType)
{
- var apiTypes = GetEnumValues("/storage", "post", "type");
- Assert.True(apiTypes.Contains(storageType),
- $"Storage type '{storageType}' not in API enum: {string.Join(", ", apiTypes)}");
+ var pve7 = GetEnumValues(SpecPve7, "/storage", "post", "type");
+ var pve8 = GetEnumValues(SpecPve8, "/storage", "post", "type");
+ var pve9 = GetEnumValues(SpecPve9, "/storage", "post", "type");
+ Assert.Contains(storageType, pve7);
+ Assert.Contains(storageType, pve8);
+ Assert.Contains(storageType, pve9);
+ }
+
+ [Fact]
+ public void StorageType_GlusterfsNotInAnyVersion()
+ {
+ // glusterfs was removed before PVE 7 — should not be in any ValidateSet
+ var pve7 = GetEnumValues(SpecPve7, "/storage", "post", "type");
+ var pve8 = GetEnumValues(SpecPve8, "/storage", "post", "type");
+ var pve9 = GetEnumValues(SpecPve9, "/storage", "post", "type");
+
+ Assert.DoesNotContain("glusterfs", pve7);
+ Assert.DoesNotContain("glusterfs", pve8);
+ Assert.DoesNotContain("glusterfs", pve9);
}
// ── Backup Modes ────────────────────────────────────────────────────
@@ -118,11 +238,9 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("snapshot")]
[InlineData("suspend")]
[InlineData("stop")]
- public void BackupMode_IsValidInApi(string mode)
+ public void BackupMode_ValidInAllSupportedVersions(string mode)
{
- var apiModes = GetEnumValues("/nodes/{node}/vzdump", "post", "mode");
- Assert.True(apiModes.Contains(mode),
- $"Backup mode '{mode}' not in API enum: {string.Join(", ", apiModes)}");
+ AssertValidInAllSupported("/nodes/{node}/vzdump", "post", "mode", mode);
}
// ── Backup Compression ──────────────────────────────────────────────
@@ -131,15 +249,10 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("zstd")]
[InlineData("lzo")]
[InlineData("gzip")]
- // Note: "none" is NOT valid — PVE uses "0" for no compression.
- // The module's ValidateSet includes "none" which may cause API errors.
- // See: NewPveBackupCmdlet.cs line 51, NewPveBackupJobCmdlet.cs line 54
[InlineData("0")]
- public void BackupCompression_IsValidInApi(string compress)
+ public void BackupCompression_ValidInAllSupportedVersions(string compress)
{
- var apiValues = GetEnumValues("/nodes/{node}/vzdump", "post", "compress");
- Assert.True(apiValues.Contains(compress),
- $"Compression '{compress}' not in API enum: {string.Join(", ", apiValues)}");
+ AssertValidInAllSupported("/nodes/{node}/vzdump", "post", "compress", compress);
}
// ── Disk Formats ────────────────────────────────────────────────────
@@ -148,11 +261,9 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("raw")]
[InlineData("qcow2")]
[InlineData("vmdk")]
- public void DiskFormat_IsValidInApi(string format)
+ public void DiskFormat_ValidInAllSupportedVersions(string format)
{
- var apiFormats = GetEnumValues("/nodes/{node}/qemu/{vmid}/move_disk", "post", "format");
- Assert.True(apiFormats.Contains(format),
- $"Disk format '{format}' not in API enum: {string.Join(", ", apiFormats)}");
+ AssertValidInAllSupported("/nodes/{node}/qemu/{vmid}/move_disk", "post", "format", format);
}
// ── HA Resource States ──────────────────────────────────────────────
@@ -162,11 +273,9 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("stopped")]
[InlineData("disabled")]
[InlineData("ignored")]
- public void HaResourceState_IsValidInApi(string state)
+ public void HaResourceState_ValidInAllSupportedVersions(string state)
{
- var apiStates = GetEnumValues("/cluster/ha/resources", "post", "state");
- Assert.True(apiStates.Contains(state),
- $"HA state '{state}' not in API enum: {string.Join(", ", apiStates)}");
+ AssertValidInAllSupported("/cluster/ha/resources", "post", "state", state);
}
// ── SDN Zone Types ──────────────────────────────────────────────────
@@ -177,11 +286,9 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("evpn")]
[InlineData("simple")]
[InlineData("qinq")]
- public void SdnZoneType_IsValidInApi(string zoneType)
+ public void SdnZoneType_ValidInAllSupportedVersions(string zoneType)
{
- var apiTypes = GetEnumValues("/cluster/sdn/zones", "post", "type");
- Assert.True(apiTypes.Contains(zoneType),
- $"SDN zone type '{zoneType}' not in API enum: {string.Join(", ", apiTypes)}");
+ AssertValidInAllSupported("/cluster/sdn/zones", "post", "type", zoneType);
}
// ── SDN Controller Types ────────────────────────────────────────────
@@ -189,11 +296,9 @@ namespace PSProxmoxVE.Core.Tests
[Theory]
[InlineData("evpn")]
[InlineData("bgp")]
- public void SdnControllerType_IsValidInApi(string controllerType)
+ public void SdnControllerType_ValidInAllSupportedVersions(string controllerType)
{
- var apiTypes = GetEnumValues("/cluster/sdn/controllers", "post", "type");
- Assert.True(apiTypes.Contains(controllerType),
- $"SDN controller type '{controllerType}' not in API enum: {string.Join(", ", apiTypes)}");
+ AssertValidInAllSupported("/cluster/sdn/controllers", "post", "type", controllerType);
}
// ── SDN IPAM Types ──────────────────────────────────────────────────
@@ -202,22 +307,18 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("pve")]
[InlineData("netbox")]
[InlineData("phpipam")]
- public void SdnIpamType_IsValidInApi(string ipamType)
+ public void SdnIpamType_ValidInAllSupportedVersions(string ipamType)
{
- var apiTypes = GetEnumValues("/cluster/sdn/ipams", "post", "type");
- Assert.True(apiTypes.Contains(ipamType),
- $"SDN IPAM type '{ipamType}' not in API enum: {string.Join(", ", apiTypes)}");
+ AssertValidInAllSupported("/cluster/sdn/ipams", "post", "type", ipamType);
}
// ── SDN DNS Types ───────────────────────────────────────────────────
[Theory]
[InlineData("powerdns")]
- public void SdnDnsType_IsValidInApi(string dnsType)
+ public void SdnDnsType_ValidInAllSupportedVersions(string dnsType)
{
- var apiTypes = GetEnumValues("/cluster/sdn/dns", "post", "type");
- Assert.True(apiTypes.Contains(dnsType),
- $"SDN DNS type '{dnsType}' not in API enum: {string.Join(", ", apiTypes)}");
+ AssertValidInAllSupported("/cluster/sdn/dns", "post", "type", dnsType);
}
// ── Firewall Actions ────────────────────────────────────────────────
@@ -240,11 +341,9 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("in")]
[InlineData("out")]
[InlineData("group")]
- public void FirewallDirection_IsValidInApi(string direction)
+ public void FirewallDirection_ValidInAllSupportedVersions(string direction)
{
- var apiDirections = GetEnumValues("/cluster/firewall/rules", "post", "type");
- Assert.True(apiDirections.Contains(direction),
- $"Firewall direction '{direction}' not in API enum: {string.Join(", ", apiDirections)}");
+ AssertValidInAllSupported("/cluster/firewall/rules", "post", "type", direction);
}
// ── Auth Domain Types ───────────────────────────────────────────────
@@ -255,11 +354,9 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("ad")]
[InlineData("ldap")]
[InlineData("openid")]
- public void AuthDomainType_IsValidInApi(string domainType)
+ public void AuthDomainType_ValidInAllSupportedVersions(string domainType)
{
- var apiTypes = GetEnumValues("/access/domains", "post", "type");
- Assert.True(apiTypes.Contains(domainType),
- $"Auth domain type '{domainType}' not in API enum: {string.Join(", ", apiTypes)}");
+ AssertValidInAllSupported("/access/domains", "post", "type", domainType);
}
// ── Cluster Resource Types ──────────────────────────────────────────
@@ -269,14 +366,9 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("node")]
[InlineData("storage")]
[InlineData("sdn")]
- // Note: "lxc" is NOT a valid type filter — PVE uses "vm" for both QEMU and LXC.
- // The module's ValidateSet includes "lxc" which may cause API errors.
- // See: GetPveClusterResourceCmdlet.cs line 23
- public void ClusterResourceType_IsValidInApi(string resourceType)
+ public void ClusterResourceType_ValidInAllSupportedVersions(string resourceType)
{
- var apiTypes = GetEnumValues("/cluster/resources", "get", "type");
- Assert.True(apiTypes.Contains(resourceType),
- $"Cluster resource type '{resourceType}' not in API enum: {string.Join(", ", apiTypes)}");
+ AssertValidInAllSupported("/cluster/resources", "get", "type", resourceType);
}
// ── Content Types (Upload) ──────────────────────────────────────────
@@ -284,11 +376,9 @@ namespace PSProxmoxVE.Core.Tests
[Theory]
[InlineData("iso")]
[InlineData("vztmpl")]
- public void UploadContentType_IsValidInApi(string contentType)
+ public void UploadContentType_ValidInAllSupportedVersions(string contentType)
{
- var apiTypes = GetEnumValues("/nodes/{node}/storage/{storage}/upload", "post", "content");
- Assert.True(apiTypes.Contains(contentType),
- $"Upload content type '{contentType}' not in API enum: {string.Join(", ", apiTypes)}");
+ AssertValidInAllSupported("/nodes/{node}/storage/{storage}/upload", "post", "content", contentType);
}
// ── Console Viewer Types ────────────────────────────────────────────
@@ -298,11 +388,10 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("vv")]
[InlineData("html5")]
[InlineData("xtermjs")]
- public void ConsoleViewer_IsValidInApi(string viewer)
+ public void ConsoleViewer_ValidInAnyVersion(string viewer)
{
- var apiViewers = GetEnumValues("/cluster/options", "put", "console");
- Assert.True(apiViewers.Contains(viewer),
- $"Console viewer '{viewer}' not in API enum: {string.Join(", ", apiViewers)}");
+ // 'applet' was removed in later versions — validate across any
+ AssertValidInAnyVersion("/cluster/options", "put", "console", viewer);
}
// ── Network Interface Types ─────────────────────────────────────────
@@ -317,11 +406,29 @@ namespace PSProxmoxVE.Core.Tests
[InlineData("OVSBond")]
[InlineData("OVSPort")]
[InlineData("OVSIntPort")]
- public void NetworkInterfaceType_IsValidInApi(string ifaceType)
+ public void NetworkInterfaceType_ValidInAllSupportedVersions(string ifaceType)
{
- var apiTypes = GetEnumValues("/nodes/{node}/network", "post", "type");
- Assert.True(apiTypes.Contains(ifaceType),
- $"Network interface type '{ifaceType}' not in API enum: {string.Join(", ", apiTypes)}");
+ AssertValidInAllSupported("/nodes/{node}/network", "post", "type", ifaceType);
+ }
+
+ // ── Version Progression ─────────────────────────────────────────────
+
+ [Fact]
+ public void Pve9_HasMorePrivilegesThanPve8()
+ {
+ var pve8 = GetEnumValues(SpecPve8, "/access/roles", "post", "privs");
+ var pve9 = GetEnumValues(SpecPve9, "/access/roles", "post", "privs");
+ Assert.True(pve9.Count > pve8.Count,
+ $"Expected PVE 9 ({pve9.Count}) to have more privileges than PVE 8 ({pve8.Count})");
+ }
+
+ [Fact]
+ public void Pve9_HasMorePathsThanPve8()
+ {
+ var pve8Paths = SpecPve8["paths"]?.Children().Count() ?? 0;
+ var pve9Paths = SpecPve9["paths"]?.Children().Count() ?? 0;
+ Assert.True(pve9Paths > pve8Paths,
+ $"Expected PVE 9 ({pve9Paths}) to have more paths than PVE 8 ({pve8Paths})");
}
}
}