From 4d47f12597815e9a1fc3f3c1b4020e0d5c106254 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Tue, 23 Oct 2018 12:57:54 +0200 Subject: [PATCH] make update-static Signed-off-by: Thomas Lamprecht --- api-viewer/apidata.js | 19554 ++++++++++++++++++++++------------- datacenter.cfg.5-opts.adoc | 2 +- pct.1-synopsis.adoc | 36 +- pct.conf.5-opts.adoc | 20 +- pveceph.1-synopsis.adoc | 2 +- pvesm.1-synopsis.adoc | 26 +- qm.1-synopsis.adoc | 102 +- qm.conf.5-opts.adoc | 21 +- 8 files changed, 12357 insertions(+), 7406 deletions(-) diff --git a/api-viewer/apidata.js b/api-viewer/apidata.js index f47afe8..15ae7e0 100644 --- a/api-viewer/apidata.js +++ b/api-viewer/apidata.js @@ -597,7 +597,6 @@ var pveapi = [ ] }, "returns" : { - "properties" : {}, "type" : "object" } } @@ -3885,6 +3884,7 @@ var pveapi = [ "properties" : { "account" : { "optional" : 1, + "renderer" : "yaml", "type" : "object" }, "directory" : { @@ -4170,7 +4170,96 @@ var pveapi = [ }, "returns" : { "items" : { - "properties" : {}, + "properties" : { + "cpu" : { + "description" : "CPU utilization (when type in node,qemu,lxc).", + "optional" : 1, + "renderer" : "fraction_as_percentage", + "type" : "number" + }, + "disk" : { + "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).", + "optional" : 1, + "renderer" : "bytes", + "type" : "string" + }, + "hastate" : { + "description" : "HA service status (for HA managed VMs).", + "optional" : 1, + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "level" : { + "description" : "Support level (when type == node).", + "optional" : 1, + "type" : "string" + }, + "maxcpu" : { + "description" : "Number of available CPUs (when type in node,qemu,lxc).", + "optional" : 1, + "type" : "number" + }, + "maxdisk" : { + "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "maxmem" : { + "description" : "Number of available memory in bytes (when type in node,qemu,lxc).", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "mem" : { + "description" : "Used memory in bytes (when type in node,qemu,lxc).", + "optional" : 1, + "renderer" : "bytes", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name (when type in node,storage,qemu,lxc).", + "format" : "pve-node", + "optional" : 1, + "type" : "string" + }, + "pool" : { + "description" : "The pool name (when type in pool,qemu,lxc).", + "optional" : 1, + "type" : "string" + }, + "status" : { + "description" : "Resource type dependent status.", + "optional" : 1, + "type" : "string" + }, + "storage" : { + "description" : "The storage identifier (when type == storage).", + "format" : "pve-storage-id", + "optional" : 1, + "type" : "string" + }, + "type" : { + "description" : "Resource type.", + "enum" : [ + "node", + "storage", + "pool", + "qemu", + "lxc", + "openvz" + ], + "type" : "string" + }, + "uptime" : { + "description" : "Node uptime in seconds (when type in node,qemu,lxc).", + "optional" : 1, + "renderer" : "duration", + "type" : "integer" + } + }, "type" : "object" }, "type" : "array" @@ -4229,7 +4318,6 @@ var pveapi = [ ] }, "returns" : { - "properties" : {}, "type" : "object" } }, @@ -4360,8 +4448,25 @@ var pveapi = [ "language" : { "description" : "Default GUI language.", "enum" : [ + "zh_CN", + "zh_TW", + "ca", "en", - "de" + "eu", + "fr", + "de", + "it", + "es", + "ja", + "nb", + "nn", + "fa", + "pl", + "pt_BR", + "ru", + "sl", + "sv", + "tr" ], "optional" : 1, "type" : "string" @@ -7124,228 +7229,343 @@ var pveapi = [ "leaf" : 1, "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram", "text" : "suspend-ram" - } - ], - "info" : { - "GET" : { - "description" : "Qemu Agent command index.", - "method" : "GET", - "name" : "index", - "parameters" : { - "additionalProperties" : 1, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + }, + { + "info" : { + "POST" : { + "description" : "Sets the password for the given user to the given password", + "method" : "POST", + "name" : "set-user-password", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "crypted" : { + "default" : 0, + "description" : "set to 1 if the password has already been passed through crypt()", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "password" : { + "description" : "The new password.", + "maxLength" : 64, + "minLength" : 5, + "type" : "string", + "typetext" : "" + }, + "username" : { + "description" : "The user to set the password for.", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns an object with a single `result` property.", + "type" : "object" } } }, - "permissions" : { - "user" : "all" - }, - "proxyto" : "node", - "returns" : { - "description" : "Returns the list of Qemu Agent commands", - "items" : { - "properties" : {}, - "type" : "object" - }, - "links" : [ - { - "href" : "{name}", - "rel" : "child" - } - ], - "type" : "array" - } + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password", + "text" : "set-user-password" }, - "POST" : { - "description" : "Execute Qemu Guest Agent commands.", - "method" : "POST", - "name" : "agent", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "command" : { - "description" : "The QGA 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" - ], - "type" : "string" + { + "info" : { + "POST" : { + "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.", + "method" : "POST", + "name" : "exec", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "command" : { + "description" : "The command as a list of program + arguments", + "format" : "string-alist", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "pid" : { + "description" : "The PID of the process started by the guest-agent.", + "type" : "integer" + } + }, + "type" : "object" } } }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Monitor" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "description" : "Returns an object with a single `result` property.", - "type" : "object" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/qemu/{vmid}/agent", - "text" : "agent" - }, - { - "info" : { - "GET" : { - "description" : "Read VM RRD statistics (returns PNG)", - "method" : "GET", - "name" : "rrd", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "cf" : { - "description" : "The RRD consolidation function", - "enum" : [ - "AVERAGE", - "MAX" - ], - "optional" : 1, - "type" : "string" + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/exec", + "text" : "exec" + }, + { + "info" : { + "GET" : { + "description" : "Gets the status of the given pid started by the guest-agent", + "method" : "GET", + "name" : "exec-status", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "pid" : { + "description" : "The PID to query", + "type" : "integer", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } }, - "ds" : { - "description" : "The list of datasources you want to display.", - "format" : "pve-configid-list", - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "err-data" : { + "description" : "stderr of the process", + "optional" : 1, + "type" : "string" + }, + "err-truncated" : { + "description" : "true if stderr was not fully captured", + "optional" : 1, + "type" : "boolean" + }, + "exitcode" : { + "description" : "process exit code if it was normally terminated.", + "optional" : 1, + "type" : "integer" + }, + "exited" : { + "description" : "Tells if the given command has exited yet.", + "type" : "boolean" + }, + "out-data" : { + "description" : "stdout of the process", + "optional" : 1, + "type" : "string" + }, + "out-truncated" : { + "description" : "true if stdout was not fully captured", + "optional" : 1, + "type" : "boolean" + }, + "signal" : { + "description" : "signal number or exception code if the process was abnormally terminated.", + "optional" : 1, + "type" : "integer" + } + }, + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status", + "text" : "exec-status" + }, + { + "info" : { + "GET" : { + "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.", + "method" : "GET", + "name" : "file-read", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "file" : { + "description" : "The path to the file", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } }, - "timeframe" : { - "description" : "Specify the time frame you are interested in.", - "enum" : [ - "hour", - "day", - "week", - "month", - "year" - ], - "type" : "string" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns an object with a `content` property.", + "properties" : { + "content" : { + "description" : "The content of the file, maximum 16777216", + "type" : "string" + }, + "truncated" : { + "description" : "If set to 1, the output is truncated and not complete", + "optional" : 1, + "type" : "boolean" + } + }, + "type" : "object" } } }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] - }, - "protected" : 1, - "returns" : { - "properties" : { - "filename" : { - "type" : "string" + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read", + "text" : "file-read" + }, + { + "info" : { + "POST" : { + "description" : "Writes the given file via guest agent.", + "method" : "POST", + "name" : "file-write", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "content" : { + "description" : "The content to write into the file.", + "maxLength" : 61440, + "type" : "string", + "typetext" : "" + }, + "file" : { + "description" : "The path to the file.", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" } - }, - "type" : "object" - } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write", + "text" : "file-write" } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/rrd", - "text" : "rrd" - }, - { + ], "info" : { "GET" : { - "description" : "Read VM RRD statistics", + "description" : "Qemu Agent command index.", "method" : "GET", - "name" : "rrddata", + "name" : "index", "parameters" : { - "additionalProperties" : 0, + "additionalProperties" : 1, "properties" : { - "cf" : { - "description" : "The RRD consolidation function", - "enum" : [ - "AVERAGE", - "MAX" - ], - "optional" : 1, - "type" : "string" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, - "timeframe" : { - "description" : "Specify the time frame you are interested in.", - "enum" : [ - "hour", - "day", - "week", - "month", - "year" - ], - "type" : "string" - }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -7356,15 +7576,221 @@ var pveapi = [ } }, "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] + "user" : "all" }, - "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns the list of Qemu Agent commands", + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + }, + "POST" : { + "description" : "Execute Qemu Guest Agent commands.", + "method" : "POST", + "name" : "agent", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "command" : { + "description" : "The QGA 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" + ], + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns an object with a single `result` property.", + "type" : "object" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/qemu/{vmid}/agent", + "text" : "agent" + }, + { + "info" : { + "GET" : { + "description" : "Read VM RRD statistics (returns PNG)", + "method" : "GET", + "name" : "rrd", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "cf" : { + "description" : "The RRD consolidation function", + "enum" : [ + "AVERAGE", + "MAX" + ], + "optional" : 1, + "type" : "string" + }, + "ds" : { + "description" : "The list of datasources you want to display.", + "format" : "pve-configid-list", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "timeframe" : { + "description" : "Specify the time frame you are interested in.", + "enum" : [ + "hour", + "day", + "week", + "month", + "year" + ], + "type" : "string" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "protected" : 1, + "returns" : { + "properties" : { + "filename" : { + "type" : "string" + } + }, + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/rrd", + "text" : "rrd" + }, + { + "info" : { + "GET" : { + "description" : "Read VM RRD statistics", + "method" : "GET", + "name" : "rrddata", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "cf" : { + "description" : "The RRD consolidation function", + "enum" : [ + "AVERAGE", + "MAX" + ], + "optional" : 1, + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "timeframe" : { + "description" : "Specify the time frame you are interested in.", + "enum" : [ + "hour", + "day", + "week", + "month", + "year" + ], + "type" : "string" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "protected" : 1, "returns" : { "items" : { "properties" : {}, @@ -7420,64 +7846,50 @@ var pveapi = [ }, "proxyto" : "node", "returns" : { - "properties" : { - "digest" : { - "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.", - "type" : "string" - } - }, - "type" : "object" - } - }, - "POST" : { - "description" : "Set virtual machine options (asynchrounous API).", - "method" : "POST", - "name" : "update_vm_async", - "parameters" : { - "additionalProperties" : 0, + "description" : "The current VM configuration.", "properties" : { "acpi" : { "default" : 1, "description" : "Enable/disable ACPI.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, "agent" : { - "default" : 0, - "description" : "Enable/disable Qemu GuestAgent.", + "description" : "Enable/disable Qemu GuestAgent and its properties.", + "format" : { + "enabled" : { + "default" : 0, + "default_key" : 1, + "description" : "Enable/disable Qemu GuestAgent.", + "type" : "boolean" + }, + "fstrim_cloned_disks" : { + "default" : 0, + "description" : "Run fstrim after cloning/moving a disk.", + "optional" : 1, + "type" : "boolean" + } + }, "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "string" }, "args" : { "description" : "Arbitrary arguments passed to kvm.", "optional" : 1, "type" : "string", - "typetext" : "", "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n" }, "autostart" : { "default" : 0, "description" : "Automatic restart after crash (currently ignored).", "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "background_delay" : { - "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.", - "maximum" : 30, - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - 30)" + "type" : "boolean" }, "balloon" : { "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.", "minimum" : 0, "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" + "type" : "integer" }, "bios" : { "default" : "seabios", @@ -7513,8 +7925,7 @@ var pveapi = [ "cipassword" : { "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, "citype" : { "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.", @@ -7528,16 +7939,14 @@ var pveapi = [ "ciuser" : { "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, "cores" : { "default" : 1, "description" : "The number of cores per socket.", "minimum" : 1, "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "type" : "integer" }, "cpu" : { "description" : "Emulated CPU type.", @@ -7594,10 +8003,10 @@ var pveapi = [ "type" : "string" }, "flags" : { - "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl'.", + "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.", "format_description" : "+FLAG[;-FLAG...]", "optional" : 1, - "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl))(;(?^:[+-](pcid|spec-ctrl)))*)", + "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)", "type" : "string" }, "hidden" : { @@ -7608,8 +8017,7 @@ var pveapi = [ } }, "optional" : 1, - "type" : "string", - "typetext" : "[cputype=] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]" + "type" : "string" }, "cpulimit" : { "default" : 0, @@ -7618,7 +8026,6 @@ var pveapi = [ "minimum" : 0, "optional" : 1, "type" : "number", - "typetext" : " (0 - 128)", "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit." }, "cpuunits" : { @@ -7628,48 +8035,65 @@ var pveapi = [ "minimum" : 2, "optional" : 1, "type" : "integer", - "typetext" : " (2 - 262144)", "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs." }, - "delete" : { - "description" : "A list of settings you want to delete.", - "format" : "pve-configid-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, "description" : { "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, - "optional" : 1, - "type" : "string", - "typetext" : "" + "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.", + "type" : "string" }, - "force" : { - "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.", + "efidisk0" : { + "description" : "Configure a Disk for storing EFI vars", + "format" : { + "file" : { + "default_key" : 1, + "description" : "The drive's backing volume.", + "format" : "pve-volume-id-or-qm-path", + "format_description" : "volume", + "type" : "string" + }, + "format" : { + "description" : "The drive's backing file's data format.", + "enum" : [ + "raw", + "cow", + "qcow", + "qed", + "qcow2", + "vmdk", + "cloop" + ], + "optional" : 1, + "type" : "string" + }, + "size" : { + "description" : "Disk size. This is purely informational and has no effect.", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "volume" : { + "alias" : "file" + } + }, "optional" : 1, - "requires" : "delete", - "type" : "boolean", - "typetext" : "" + "type" : "string" }, "freeze" : { "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, "hostpci[n]" : { "description" : "Map host PCI devices into guest.", "format" : "pve-qm-hostpci", "optional" : 1, "type" : "string", - "typetext" : "[host=] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=] [,x-vga=<1|0>]", "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer \npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n" }, "hotplug" : { @@ -7677,8 +8101,7 @@ var pveapi = [ "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.", "format" : "pve-hotplug-features", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, "hugepages" : { "description" : "Enable/disable hugepages memory.", @@ -8000,15 +8423,13 @@ var pveapi = [ } }, "optional" : 1, - "type" : "string", - "typetext" : "[file=] [,aio=] [,backup=<1|0>] [,bps=] [,bps_max_length=] [,bps_rd=] [,bps_rd_max_length=] [,bps_wr=] [,bps_wr_max_length=] [,cache=] [,cyls=] [,detect_zeroes=<1|0>] [,discard=] [,format=] [,heads=] [,iops=] [,iops_max=] [,iops_max_length=] [,iops_rd=] [,iops_rd_max=] [,iops_rd_max_length=] [,iops_wr=] [,iops_wr_max=] [,iops_wr_max_length=] [,mbps=] [,mbps_max=] [,mbps_rd=] [,mbps_rd_max=] [,mbps_wr=] [,mbps_wr_max=] [,media=] [,model=] [,replicate=<1|0>] [,rerror=] [,secs=] [,serial=] [,shared=<1|0>] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + "type" : "string" }, "ipconfig[n]" : { "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.\n", "format" : "pve-qm-ipconfig", "optional" : 1, - "type" : "string", - "typetext" : "[gw=] [,gw6=] [,ip=] [,ip6=]" + "type" : "string" }, "keyboard" : { "default" : null, @@ -8047,14 +8468,12 @@ var pveapi = [ "default" : 1, "description" : "Enable/disable KVM hardware virtualization.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, "localtime" : { "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, "lock" : { "description" : "Lock/unlock the VM.", @@ -8068,7 +8487,7 @@ var pveapi = [ "type" : "string" }, "machine" : { - "description" : "Specific the Qemu machine type.", + "description" : "Specifies the Qemu machine type.", "maxLength" : 40, "optional" : 1, "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)", @@ -8079,38 +8498,33 @@ var pveapi = [ "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.", "minimum" : 16, "optional" : 1, - "type" : "integer", - "typetext" : " (16 - N)" + "type" : "integer" }, "migrate_downtime" : { "default" : 0.1, "description" : "Set maximum tolerated downtime (in seconds) for migrations.", "minimum" : 0, "optional" : 1, - "type" : "number", - "typetext" : " (0 - N)" + "type" : "number" }, "migrate_speed" : { "default" : 0, "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.", "minimum" : 0, "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" + "type" : "integer" }, "name" : { "description" : "Set a name for the VM. Only used on the configuration web interface.", "format" : "dns-name", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, "nameserver" : { "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.", "format" : "address-list", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, "net[n]" : { "description" : "Specify network devices.", @@ -8239,21 +8653,13 @@ var pveapi = [ } }, "optional" : 1, - "type" : "string", - "typetext" : "[model=] [,bridge=] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=] [,queues=] [,rate=] [,tag=] [,trunks=] [,=]" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "type" : "string" }, "numa" : { "default" : 0, "description" : "Enable/disable NUMA.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, "numa[n]" : { "description" : "NUMA topology.", @@ -8288,15 +8694,13 @@ var pveapi = [ } }, "optional" : 1, - "type" : "string", - "typetext" : "cpus= [,hostnodes=] [,memory=] [,policy=]" + "type" : "string" }, "onboot" : { "default" : 0, "description" : "Specifies whether a VM will be started during system bootup.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, "ostype" : { "description" : "Specify guest operating system.", @@ -8329,22 +8733,13 @@ var pveapi = [ "default" : 0, "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, "reboot" : { "default" : 1, "description" : "Allow reboot. If set to '0' the VM exit on reboot.", "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "revert" : { - "description" : "Revert a pending change.", - "format" : "pve-configid-list", - "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "boolean" }, "sata[n]" : { "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).", @@ -8648,8 +9043,7 @@ var pveapi = [ } }, "optional" : 1, - "type" : "string", - "typetext" : "[file=] [,aio=] [,backup=<1|0>] [,bps=] [,bps_max_length=] [,bps_rd=] [,bps_rd_max_length=] [,bps_wr=] [,bps_wr_max_length=] [,cache=] [,cyls=] [,detect_zeroes=<1|0>] [,discard=] [,format=] [,heads=] [,iops=] [,iops_max=] [,iops_max_length=] [,iops_rd=] [,iops_rd_max=] [,iops_rd_max_length=] [,iops_wr=] [,iops_wr_max=] [,iops_wr_max_length=] [,mbps=] [,mbps_max=] [,mbps_rd=] [,mbps_rd_max=] [,mbps_wr=] [,mbps_wr_max=] [,media=] [,replicate=<1|0>] [,rerror=] [,secs=] [,serial=] [,shared=<1|0>] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + "type" : "string" }, "scsi[n]" : { "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).", @@ -8970,8 +9364,7 @@ var pveapi = [ } }, "optional" : 1, - "type" : "string", - "typetext" : "[file=] [,aio=] [,backup=<1|0>] [,bps=] [,bps_max_length=] [,bps_rd=] [,bps_rd_max_length=] [,bps_wr=] [,bps_wr_max_length=] [,cache=] [,cyls=] [,detect_zeroes=<1|0>] [,discard=] [,format=] [,heads=] [,iops=] [,iops_max=] [,iops_max_length=] [,iops_rd=] [,iops_rd_max=] [,iops_rd_max_length=] [,iops_wr=] [,iops_wr_max=] [,iops_wr_max_length=] [,iothread=<1|0>] [,mbps=] [,mbps_max=] [,mbps_rd=] [,mbps_rd_max=] [,mbps_wr=] [,mbps_wr_max=] [,media=] [,queues=] [,replicate=<1|0>] [,rerror=] [,scsiblock=<1|0>] [,secs=] [,serial=] [,shared=<1|0>] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + "type" : "string" }, "scsihw" : { "default" : "lsi", @@ -8990,8 +9383,7 @@ var pveapi = [ "searchdomain" : { "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, "serial[n]" : { "description" : "Create a serial device inside the VM (n is 0 to 3)", @@ -9006,45 +9398,34 @@ var pveapi = [ "maximum" : 50000, "minimum" : 0, "optional" : 1, - "type" : "integer", - "typetext" : " (0 - 50000)" - }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "integer" }, "smbios1" : { "description" : "Specify SMBIOS type 1 fields.", "format" : "pve-qm-smbios1", "maxLength" : 256, "optional" : 1, - "type" : "string", - "typetext" : "[family=] [,manufacturer=] [,product=] [,serial=] [,sku=] [,uuid=] [,version=]" + "type" : "string" }, "smp" : { "default" : 1, "description" : "The number of CPUs. Please use option -sockets instead.", "minimum" : 1, "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "type" : "integer" }, "sockets" : { "default" : 1, "description" : "The number of CPU sockets.", "minimum" : 1, "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "type" : "integer" }, "sshkeys" : { "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).", "format" : "urlencoded", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, "startdate" : { "default" : "now", @@ -9066,29 +9447,25 @@ var pveapi = [ "description" : "Enable/disable the USB tablet device.", "optional" : 1, "type" : "boolean", - "typetext" : "", "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl)." }, "tdf" : { "default" : 0, "description" : "Enable/disable time drift fix.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, "template" : { "default" : 0, "description" : "Enable/disable Template.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, "unused[n]" : { "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.", "format" : "pve-volume-id", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, "usb[n]" : { "description" : "Configure an USB device (n is 0 to 4).", @@ -9108,31 +9485,30 @@ var pveapi = [ } }, "optional" : 1, - "type" : "string", - "typetext" : "[host=] [,usb3=<1|0>]" + "type" : "string" }, "vcpus" : { "default" : 0, "description" : "Number of hotplugged vcpus.", "minimum" : 1, "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "type" : "integer" }, "vga" : { "description" : "Select the VGA type.", "enum" : [ - "std", "cirrus", - "vmware", "qxl", + "qxl2", + "qxl3", + "qxl4", "serial0", "serial1", "serial2", "serial3", - "qxl2", - "qxl3", - "qxl4" + "std", + "virtio", + "vmware" ], "optional" : 1, "type" : "string", @@ -9445,61 +9821,38 @@ var pveapi = [ } }, "optional" : 1, - "type" : "string", - "typetext" : "[file=] [,aio=] [,backup=<1|0>] [,bps=] [,bps_max_length=] [,bps_rd=] [,bps_rd_max_length=] [,bps_wr=] [,bps_wr_max_length=] [,cache=] [,cyls=] [,detect_zeroes=<1|0>] [,discard=] [,format=] [,heads=] [,iops=] [,iops_max=] [,iops_max_length=] [,iops_rd=] [,iops_rd_max=] [,iops_rd_max_length=] [,iops_wr=] [,iops_wr_max=] [,iops_wr_max_length=] [,iothread=<1|0>] [,mbps=] [,mbps_max=] [,mbps_rd=] [,mbps_rd_max=] [,mbps_wr=] [,mbps_wr_max=] [,media=] [,replicate=<1|0>] [,rerror=] [,secs=] [,serial=] [,shared=<1|0>] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + "type" : "string" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "vmgenid" : { + "default" : "1 (autogenerated)", + "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.", + "format_description" : "UUID", + "optional" : 1, + "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])", + "type" : "string", + "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file." }, "vmstatestorage" : { "description" : "Default storage for VM state volumes/files.", "format" : "pve-storage-id", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, "watchdog" : { "description" : "Create a virtual hardware watchdog device.", "format" : "pve-qm-watchdog", "optional" : 1, "type" : "string", - "typetext" : "[[model=]] [,action=]", "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)" } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Config.Disk", - "VM.Config.CDROM", - "VM.Config.CPU", - "VM.Config.Memory", - "VM.Config.Network", - "VM.Config.HWType", - "VM.Config.Options" - ], - "any", - 1 - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "optional" : 1, - "type" : "string" + }, + "type" : "object" } }, - "PUT" : { - "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.", - "method" : "PUT", - "name" : "update_vm", + "POST" : { + "description" : "Set virtual machine options (asynchrounous API).", + "method" : "POST", + "name" : "update_vm_async", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -9511,11 +9864,24 @@ var pveapi = [ "typetext" : "" }, "agent" : { - "default" : 0, - "description" : "Enable/disable Qemu GuestAgent.", + "description" : "Enable/disable Qemu GuestAgent and its properties.", + "format" : { + "enabled" : { + "default" : 0, + "default_key" : 1, + "description" : "Enable/disable Qemu GuestAgent.", + "type" : "boolean" + }, + "fstrim_cloned_disks" : { + "default" : 0, + "description" : "Run fstrim after cloning/moving a disk.", + "optional" : 1, + "type" : "boolean" + } + }, "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "string", + "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]" }, "args" : { "description" : "Arbitrary arguments passed to kvm.", @@ -9531,6 +9897,14 @@ var pveapi = [ "type" : "boolean", "typetext" : "" }, + "background_delay" : { + "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.", + "maximum" : 30, + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - 30)" + }, "balloon" : { "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.", "minimum" : 0, @@ -9653,10 +10027,10 @@ var pveapi = [ "type" : "string" }, "flags" : { - "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl'.", + "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.", "format_description" : "+FLAG[;-FLAG...]", "optional" : 1, - "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl))(;(?^:[+-](pcid|spec-ctrl)))*)", + "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)", "type" : "string" }, "hidden" : { @@ -9710,9 +10084,48 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "force" : { - "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.", - "optional" : 1, + "efidisk0" : { + "description" : "Configure a Disk for storing EFI vars", + "format" : { + "file" : { + "default_key" : 1, + "description" : "The drive's backing volume.", + "format" : "pve-volume-id-or-qm-path", + "format_description" : "volume", + "type" : "string" + }, + "format" : { + "description" : "The drive's backing file's data format.", + "enum" : [ + "raw", + "cow", + "qcow", + "qed", + "qcow2", + "vmdk", + "cloop" + ], + "optional" : 1, + "type" : "string" + }, + "size" : { + "description" : "Disk size. This is purely informational and has no effect.", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "volume" : { + "alias" : "file" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[file=] [,format=] [,size=]" + }, + "force" : { + "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.", + "optional" : 1, "requires" : "delete", "type" : "boolean", "typetext" : "" @@ -10127,7 +10540,7 @@ var pveapi = [ "type" : "string" }, "machine" : { - "description" : "Specific the Qemu machine type.", + "description" : "Specifies the Qemu machine type.", "maxLength" : 40, "optional" : 1, "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)", @@ -11181,17 +11594,18 @@ var pveapi = [ "vga" : { "description" : "Select the VGA type.", "enum" : [ - "std", "cirrus", - "vmware", "qxl", + "qxl2", + "qxl3", + "qxl4", "serial0", "serial1", "serial2", "serial3", - "qxl2", - "qxl3", - "qxl4" + "std", + "virtio", + "vmware" ], "optional" : 1, "type" : "string", @@ -11507,6 +11921,15 @@ var pveapi = [ "type" : "string", "typetext" : "[file=] [,aio=] [,backup=<1|0>] [,bps=] [,bps_max_length=] [,bps_rd=] [,bps_rd_max_length=] [,bps_wr=] [,bps_wr_max_length=] [,cache=] [,cyls=] [,detect_zeroes=<1|0>] [,discard=] [,format=] [,heads=] [,iops=] [,iops_max=] [,iops_max_length=] [,iops_rd=] [,iops_rd_max=] [,iops_rd_max_length=] [,iops_wr=] [,iops_wr_max=] [,iops_wr_max_length=] [,iothread=<1|0>] [,mbps=] [,mbps_max=] [,mbps_rd=] [,mbps_rd_max=] [,mbps_wr=] [,mbps_wr_max=] [,media=] [,replicate=<1|0>] [,rerror=] [,secs=] [,serial=] [,shared=<1|0>] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" }, + "vmgenid" : { + "default" : "1 (autogenerated)", + "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.", + "format_description" : "UUID", + "optional" : 1, + "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])", + "type" : "string", + "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file." + }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -11551,1061 +11974,866 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "null" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/config", - "text" : "config" - }, - { - "info" : { - "GET" : { - "description" : "Get virtual machine configuration, including pending changes.", - "method" : "GET", - "name" : "vm_pending", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] - }, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "delete" : { - "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.", - "maximum" : 2, - "minimum" : 0, - "optional" : 1, - "type" : "integer" - }, - "key" : { - "description" : "Configuration option name.", - "type" : "string" - }, - "pending" : { - "description" : "Pending value.", - "optional" : 1, - "type" : "string" - }, - "value" : { - "description" : "Current value.", - "optional" : 1, - "type" : "string" - } - }, - "type" : "object" - }, - "type" : "array" + "optional" : 1, + "type" : "string" } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/pending", - "text" : "pending" - }, - { - "info" : { + }, "PUT" : { - "description" : "Unlink/delete disk images.", + "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.", "method" : "PUT", - "name" : "unlink", + "name" : "update_vm", "parameters" : { "additionalProperties" : 0, "properties" : { - "force" : { - "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.", + "acpi" : { + "default" : 1, + "description" : "Enable/disable ACPI.", "optional" : 1, "type" : "boolean", "typetext" : "" }, - "idlist" : { - "description" : "A list of disk IDs you want to delete.", - "format" : "pve-configid-list", - "type" : "string", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "agent" : { + "description" : "Enable/disable Qemu GuestAgent and its properties.", + "format" : { + "enabled" : { + "default" : 0, + "default_key" : 1, + "description" : "Enable/disable Qemu GuestAgent.", + "type" : "boolean" + }, + "fstrim_cloned_disks" : { + "default" : 0, + "description" : "Run fstrim after cloning/moving a disk.", + "optional" : 1, + "type" : "boolean" + } + }, + "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Config.Disk" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/unlink", - "text" : "unlink" - }, - { - "info" : { - "POST" : { - "description" : "Creates a TCP VNC proxy connections.", - "method" : "POST", - "name" : "vncproxy", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "args" : { + "description" : "Arbitrary arguments passed to kvm.", + "optional" : 1, "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "typetext" : "", + "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n" }, - "websocket" : { - "description" : "starts websockify instead of vncproxy", + "autostart" : { + "default" : 0, + "description" : "Automatic restart after crash (currently ignored).", "optional" : 1, "type" : "boolean", "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Console" - ] - ] - }, - "protected" : 1, - "returns" : { - "additionalProperties" : 0, - "properties" : { - "cert" : { - "type" : "string" }, - "port" : { - "type" : "integer" + "balloon" : { + "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" }, - "ticket" : { + "bios" : { + "default" : "seabios", + "description" : "Select BIOS implementation.", + "enum" : [ + "seabios", + "ovmf" + ], + "optional" : 1, "type" : "string" }, - "upid" : { - "type" : "string" + "boot" : { + "default" : "cdn", + "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).", + "optional" : 1, + "pattern" : "[acdn]{1,4}", + "type" : "string" }, - "user" : { + "bootdisk" : { + "description" : "Enable booting from specified disk.", + "format" : "pve-qm-bootdisk", + "optional" : 1, + "pattern" : "(ide|sata|scsi|virtio)\\d+", "type" : "string" - } - } - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/vncproxy", - "text" : "vncproxy" - }, - { - "info" : { - "POST" : { - "description" : "Creates a TCP proxy connections.", - "method" : "POST", - "name" : "termproxy", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + }, + "cdrom" : { + "description" : "This is an alias for option -ide2", + "format" : "pve-qm-ide", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "cipassword" : { + "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.", + "optional" : 1, "type" : "string", "typetext" : "" }, - "serial" : { - "description" : "opens a serial terminal (defaults to display)", + "citype" : { + "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.", "enum" : [ - "serial0", - "serial1", - "serial2", - "serial3" + "configdrive2", + "nocloud" ], "optional" : 1, "type" : "string" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", + "ciuser" : { + "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "cores" : { + "default" : 1, + "description" : "The number of cores per socket.", "minimum" : 1, + "optional" : 1, "type" : "integer", "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Console" - ] - ] - }, - "protected" : 1, - "returns" : { - "additionalProperties" : 0, - "properties" : { - "port" : { - "type" : "integer" }, - "ticket" : { - "type" : "string" + "cpu" : { + "description" : "Emulated CPU type.", + "format" : { + "cputype" : { + "default" : "kvm64", + "default_key" : 1, + "description" : "Emulated CPU type.", + "enum" : [ + "486", + "athlon", + "Broadwell", + "Broadwell-IBRS", + "Broadwell-noTSX", + "Broadwell-noTSX-IBRS", + "Conroe", + "core2duo", + "coreduo", + "EPYC", + "EPYC-IBPB", + "Haswell", + "Haswell-IBRS", + "Haswell-noTSX", + "Haswell-noTSX-IBRS", + "host", + "IvyBridge", + "IvyBridge-IBRS", + "kvm32", + "kvm64", + "max", + "Nehalem", + "Nehalem-IBRS", + "Opteron_G1", + "Opteron_G2", + "Opteron_G3", + "Opteron_G4", + "Opteron_G5", + "Penryn", + "pentium", + "pentium2", + "pentium3", + "phenom", + "qemu32", + "qemu64", + "SandyBridge", + "SandyBridge-IBRS", + "Skylake-Client", + "Skylake-Client-IBRS", + "Skylake-Server", + "Skylake-Server-IBRS", + "Westmere", + "Westmere-IBRS" + ], + "type" : "string" + }, + "flags" : { + "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.", + "format_description" : "+FLAG[;-FLAG...]", + "optional" : 1, + "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)", + "type" : "string" + }, + "hidden" : { + "default" : 0, + "description" : "Do not identify as a KVM virtual machine.", + "optional" : 1, + "type" : "boolean" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[cputype=] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]" }, - "upid" : { - "type" : "string" + "cpulimit" : { + "default" : 0, + "description" : "Limit of CPU usage.", + "maximum" : 128, + "minimum" : 0, + "optional" : 1, + "type" : "number", + "typetext" : " (0 - 128)", + "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit." }, - "user" : { - "type" : "string" - } - } - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/termproxy", - "text" : "termproxy" - }, - { - "info" : { - "GET" : { - "description" : "Opens a weksocket for VNC traffic.", - "method" : "GET", - "name" : "vncwebsocket", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "cpuunits" : { + "default" : 1024, + "description" : "CPU weight for a VM.", + "maximum" : 262144, + "minimum" : 2, + "optional" : 1, + "type" : "integer", + "typetext" : " (2 - 262144)", + "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs." + }, + "delete" : { + "description" : "A list of settings you want to delete.", + "format" : "pve-configid-list", + "optional" : 1, "type" : "string", "typetext" : "" }, - "port" : { - "description" : "Port number returned by previous vncproxy call.", - "maximum" : 5999, - "minimum" : 5900, - "type" : "integer", - "typetext" : " (5900 - 5999)" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "description" : { + "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.", + "optional" : 1, + "type" : "string", + "typetext" : "" }, - "vncticket" : { - "description" : "Ticket from previous call to vncproxy.", - "maxLength" : 512, - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Console" - ] - ], - "description" : "You also need to pass a valid ticket (vncticket)." - }, - "returns" : { - "properties" : { - "port" : { - "type" : "string" - } - }, - "type" : "object" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket", - "text" : "vncwebsocket" - }, - { - "info" : { - "POST" : { - "description" : "Returns a SPICE configuration to connect to the VM.", - "method" : "POST", - "name" : "spiceproxy", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, "type" : "string", "typetext" : "" }, - "proxy" : { - "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).", - "format" : "address", + "efidisk0" : { + "description" : "Configure a Disk for storing EFI vars", + "format" : { + "file" : { + "default_key" : 1, + "description" : "The drive's backing volume.", + "format" : "pve-volume-id-or-qm-path", + "format_description" : "volume", + "type" : "string" + }, + "format" : { + "description" : "The drive's backing file's data format.", + "enum" : [ + "raw", + "cow", + "qcow", + "qed", + "qcow2", + "vmdk", + "cloop" + ], + "optional" : 1, + "type" : "string" + }, + "size" : { + "description" : "Disk size. This is purely informational and has no effect.", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "volume" : { + "alias" : "file" + } + }, "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "[file=] [,format=] [,size=]" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Console" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "additionalProperties" : 1, - "description" : "Returned values can be directly passed to the 'remote-viewer' application.", - "properties" : { - "host" : { - "type" : "string" + "force" : { + "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.", + "optional" : 1, + "requires" : "delete", + "type" : "boolean", + "typetext" : "" }, - "password" : { - "type" : "string" + "freeze" : { + "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "proxy" : { - "type" : "string" + "hostpci[n]" : { + "description" : "Map host PCI devices into guest.", + "format" : "pve-qm-hostpci", + "optional" : 1, + "type" : "string", + "typetext" : "[host=] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=] [,x-vga=<1|0>]", + "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer \npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n" }, - "tls-port" : { - "type" : "integer" + "hotplug" : { + "default" : "network,disk,usb", + "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.", + "format" : "pve-hotplug-features", + "optional" : 1, + "type" : "string", + "typetext" : "" }, - "type" : { + "hugepages" : { + "description" : "Enable/disable hugepages memory.", + "enum" : [ + "any", + "2", + "1024" + ], + "optional" : 1, "type" : "string" - } - } - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy", - "text" : "spiceproxy" - }, - { - "children" : [ - { - "info" : { - "GET" : { - "description" : "Get virtual machine status.", - "method" : "GET", - "name" : "vm_status", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "object" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/status/current", - "text" : "current" - }, - { - "info" : { - "POST" : { - "description" : "Start virtual machine.", - "method" : "POST", - "name" : "vm_start", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "machine" : { - "description" : "Specific the Qemu machine type.", - "maxLength" : 40, + "ide[n]" : { + "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).", + "format" : { + "aio" : { + "description" : "AIO type to use.", + "enum" : [ + "native", + "threads" + ], "optional" : 1, - "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)", "type" : "string" }, - "migratedfrom" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "backup" : { + "description" : "Whether the drive should be included when making backups.", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "boolean" }, - "migration_network" : { - "description" : "CIDR of the (sub) network that is used for migration.", - "format" : "CIDR", + "bps" : { + "description" : "Maximum r/w speed in bytes per second.", + "format_description" : "bps", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "integer" }, - "migration_type" : { - "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.", - "enum" : [ - "secure", - "insecure" - ], + "bps_max_length" : { + "description" : "Maximum length of I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, "optional" : 1, - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "type" : "integer" }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", + "bps_rd" : { + "description" : "Maximum read speed in bytes per second.", + "format_description" : "bps", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "integer" }, - "stateuri" : { - "description" : "Some command save/restore state from this location.", - "maxLength" : 128, + "bps_rd_length" : { + "alias" : "bps_rd_max_length" + }, + "bps_rd_max_length" : { + "description" : "Maximum length of read I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "integer" }, - "targetstorage" : { - "description" : "Target storage for the migration. (Can be '1' to use the same storage id as on the source node.)", + "bps_wr" : { + "description" : "Maximum write speed in bytes per second.", + "format_description" : "bps", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "integer" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", + "bps_wr_length" : { + "alias" : "bps_wr_max_length" + }, + "bps_wr_max_length" : { + "description" : "Maximum length of write I/O bursts in seconds.", + "format_description" : "seconds", "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.PowerMgmt" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/status/start", - "text" : "start" - }, - { - "info" : { - "POST" : { - "description" : "Stop virtual machine. The qemu process will exit immediately. Thisis akin to pulling the power plug of a running computer and may damage the VM data", - "method" : "POST", - "name" : "vm_stop", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "keepActive" : { - "default" : 0, - "description" : "Do not deactivate storage volumes.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "integer" }, - "migratedfrom" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "cache" : { + "description" : "The drive's cache mode", + "enum" : [ + "none", + "writethrough", + "writeback", + "unsafe", + "directsync" + ], "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "cyls" : { + "description" : "Force the drive's physical geometry to have a specific cylinder count.", + "optional" : 1, + "type" : "integer" }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", + "detect_zeroes" : { + "description" : "Controls whether to detect and try to optimize writes of zeroes.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, - "timeout" : { - "description" : "Wait maximal timeout seconds.", - "minimum" : 0, + "discard" : { + "description" : "Controls whether to pass discard/trim requests to the underlying storage.", + "enum" : [ + "ignore", + "on" + ], "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" + "type" : "string" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.PowerMgmt" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/status/stop", - "text" : "stop" - }, - { - "info" : { - "POST" : { - "description" : "Reset virtual machine.", - "method" : "POST", - "name" : "vm_reset", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "file" : { + "default_key" : 1, + "description" : "The drive's backing volume.", + "format" : "pve-volume-id-or-qm-path", + "format_description" : "volume", + "type" : "string" }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", + "format" : { + "description" : "The drive's backing file's data format.", + "enum" : [ + "raw", + "cow", + "qcow", + "qed", + "qcow2", + "vmdk", + "cloop" + ], "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "string" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.PowerMgmt" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/status/reset", - "text" : "reset" - }, - { - "info" : { - "POST" : { - "description" : "Shutdown virtual machine. This is similar to pressing the power button on a physical machine.This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.", - "method" : "POST", - "name" : "vm_shutdown", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "forceStop" : { - "default" : 0, - "description" : "Make sure the VM stops.", + "heads" : { + "description" : "Force the drive's physical geometry to have a specific head count.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "integer" }, - "keepActive" : { - "default" : 0, - "description" : "Do not deactivate storage volumes.", + "iops" : { + "description" : "Maximum r/w I/O in operations per second.", + "format_description" : "iops", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "integer" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "iops_max" : { + "description" : "Maximum unthrottled r/w I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", + "iops_max_length" : { + "description" : "Maximum length of I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "integer" }, - "timeout" : { - "description" : "Wait maximal timeout seconds.", - "minimum" : 0, + "iops_rd" : { + "description" : "Maximum read I/O in operations per second.", + "format_description" : "iops", "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" + "type" : "integer" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", + "iops_rd_length" : { + "alias" : "iops_rd_max_length" + }, + "iops_rd_max" : { + "description" : "Maximum unthrottled read I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_rd_max_length" : { + "description" : "Maximum length of read I/O bursts in seconds.", + "format_description" : "seconds", "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.PowerMgmt" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown", - "text" : "shutdown" - }, - { - "info" : { - "POST" : { - "description" : "Suspend virtual machine.", - "method" : "POST", - "name" : "vm_suspend", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "optional" : 1, + "type" : "integer" }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", + "iops_wr" : { + "description" : "Maximum write I/O in operations per second.", + "format_description" : "iops", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "integer" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", + "iops_wr_length" : { + "alias" : "iops_wr_max_length" + }, + "iops_wr_max" : { + "description" : "Maximum unthrottled write I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_wr_max_length" : { + "description" : "Maximum length of write I/O bursts in seconds.", + "format_description" : "seconds", "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.PowerMgmt" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/status/suspend", - "text" : "suspend" - }, - { - "info" : { - "POST" : { - "description" : "Resume virtual machine.", - "method" : "POST", - "name" : "vm_resume", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "nocheck" : { "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "integer" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "mbps" : { + "description" : "Maximum r/w speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", + "mbps_max" : { + "description" : "Maximum unthrottled r/w pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_rd" : { + "description" : "Maximum read speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_rd_max" : { + "description" : "Maximum unthrottled read pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_wr" : { + "description" : "Maximum write speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_wr_max" : { + "description" : "Maximum unthrottled write pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "media" : { + "default" : "disk", + "description" : "The drive's media type.", + "enum" : [ + "cdrom", + "disk" + ], + "optional" : 1, + "type" : "string" + }, + "model" : { + "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.", + "format" : "urlencoded", + "format_description" : "model", + "maxLength" : 120, + "optional" : 1, + "type" : "string" + }, + "replicate" : { + "default" : 1, + "description" : "Whether the drive should considered for replication jobs.", + "optional" : 1, + "type" : "boolean" + }, + "rerror" : { + "description" : "Read error action.", + "enum" : [ + "ignore", + "report", + "stop" + ], + "optional" : 1, + "type" : "string" + }, + "secs" : { + "description" : "Force the drive's physical geometry to have a specific sector count.", + "optional" : 1, + "type" : "integer" + }, + "serial" : { + "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.", + "format" : "urlencoded", + "format_description" : "serial", + "maxLength" : 60, + "optional" : 1, + "type" : "string" + }, + "shared" : { + "default" : 0, + "description" : "Mark this locally-managed volume as available on all nodes", "optional" : 1, "type" : "boolean", - "typetext" : "" + "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "size" : { + "description" : "Disk size. This is purely informational and has no effect.", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "snapshot" : { + "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.", + "optional" : 1, + "type" : "boolean" + }, + "trans" : { + "description" : "Force disk geometry bios translation mode.", + "enum" : [ + "none", + "lba", + "auto" + ], + "optional" : 1, + "type" : "string" + }, + "volume" : { + "alias" : "file" + }, + "werror" : { + "description" : "Write error action.", + "enum" : [ + "enospc", + "ignore", + "report", + "stop" + ], + "optional" : 1, + "type" : "string" } - } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[file=] [,aio=] [,backup=<1|0>] [,bps=] [,bps_max_length=] [,bps_rd=] [,bps_rd_max_length=] [,bps_wr=] [,bps_wr_max_length=] [,cache=] [,cyls=] [,detect_zeroes=<1|0>] [,discard=] [,format=] [,heads=] [,iops=] [,iops_max=] [,iops_max_length=] [,iops_rd=] [,iops_rd_max=] [,iops_rd_max_length=] [,iops_wr=] [,iops_wr_max=] [,iops_wr_max_length=] [,mbps=] [,mbps_max=] [,mbps_rd=] [,mbps_rd_max=] [,mbps_wr=] [,mbps_wr_max=] [,media=] [,model=] [,replicate=<1|0>] [,rerror=] [,secs=] [,serial=] [,shared=<1|0>] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.PowerMgmt" - ] - ] + "ipconfig[n]" : { + "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.\n", + "format" : "pve-qm-ipconfig", + "optional" : 1, + "type" : "string", + "typetext" : "[gw=] [,gw6=] [,ip=] [,ip6=]" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { + "keyboard" : { + "default" : null, + "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.", + "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" + ], + "optional" : 1, "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/status/resume", - "text" : "resume" - } - ], - "info" : { - "GET" : { - "description" : "Directory index", - "method" : "GET", - "name" : "vmcmdidx", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "user" : "all" - }, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "subdir" : { - "type" : "string" - } - }, - "type" : "object" - }, - "links" : [ - { - "href" : "{subdir}", - "rel" : "child" - } - ], - "type" : "array" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/qemu/{vmid}/status", - "text" : "status" - }, - { - "info" : { - "PUT" : { - "description" : "Send key event to virtual machine.", - "method" : "PUT", - "name" : "vm_sendkey", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "key" : { - "description" : "The key (qemu monitor encoding).", - "type" : "string", - "typetext" : "" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "kvm" : { + "default" : 1, + "description" : "Enable/disable KVM hardware virtualization.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", + "localtime" : { + "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.", "optional" : 1, "type" : "boolean", "typetext" : "" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Console" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/sendkey", - "text" : "sendkey" - }, - { - "info" : { - "GET" : { - "description" : "Check if feature for virtual machine is available.", - "method" : "GET", - "name" : "vm_feature", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "feature" : { - "description" : "Feature to check.", + "lock" : { + "description" : "Lock/unlock the VM.", "enum" : [ + "migrate", + "backup", "snapshot", - "clone", - "copy" + "rollback" ], + "optional" : 1, "type" : "string" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", + "machine" : { + "description" : "Specifies the Qemu machine type.", "maxLength" : 40, "optional" : 1, - "type" : "string", - "typetext" : "" + "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)", + "type" : "string" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, + "memory" : { + "default" : 512, + "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.", + "minimum" : 16, + "optional" : 1, "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "properties" : { - "hasFeature" : { - "type" : "boolean" + "typetext" : " (16 - N)" }, - "nodes" : { - "items" : { - "type" : "string" - }, - "type" : "array" - } - }, - "type" : "object" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/feature", - "text" : "feature" - }, - { - "info" : { - "POST" : { - "description" : "Create a copy of virtual machine/template.", - "method" : "POST", - "name" : "clone_vm", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "description" : { - "description" : "Description for the new VM.", + "migrate_downtime" : { + "default" : 0.1, + "description" : "Set maximum tolerated downtime (in seconds) for migrations.", + "minimum" : 0, + "optional" : 1, + "type" : "number", + "typetext" : " (0 - N)" + }, + "migrate_speed" : { + "default" : 0, + "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "name" : { + "description" : "Set a name for the VM. Only used on the configuration web interface.", + "format" : "dns-name", "optional" : 1, "type" : "string", "typetext" : "" }, - "format" : { - "description" : "Target format for file storage. Only valid for full clone.", - "enum" : [ - "raw", - "qcow2", - "vmdk" - ], - "optional" : 1, - "type" : "string" - }, - "full" : { - "description" : "Create a full copy of all disks. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "name" : { - "description" : "Set a name for the new VM.", - "format" : "dns-name", + "nameserver" : { + "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.", + "format" : "address-list", "optional" : 1, "type" : "string", "typetext" : "" }, - "newid" : { - "description" : "VMID for the clone.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "net[n]" : { + "description" : "Specify network devices.", + "format" : { + "bridge" : { + "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n", + "format_description" : "bridge", + "optional" : 1, + "type" : "string" + }, + "e1000" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "e1000-82540em" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "e1000-82544gc" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "e1000-82545em" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "firewall" : { + "description" : "Whether this interface should be protected by the firewall.", + "optional" : 1, + "type" : "boolean" + }, + "i82551" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "i82557b" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "i82559er" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "link_down" : { + "description" : "Whether this interface should be disconnected (like pulling the plug).", + "optional" : 1, + "type" : "boolean" + }, + "macaddr" : { + "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.", + "format_description" : "XX:XX:XX:XX:XX:XX", + "optional" : 1, + "pattern" : "(?^i:[0-9a-f]{2}(?::[0-9a-f]{2}){5})", + "type" : "string" + }, + "model" : { + "default_key" : 1, + "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.", + "enum" : [ + "rtl8139", + "ne2k_pci", + "e1000", + "pcnet", + "virtio", + "ne2k_isa", + "i82551", + "i82557b", + "i82559er", + "vmxnet3", + "e1000-82540em", + "e1000-82544gc", + "e1000-82545em" + ], + "type" : "string" + }, + "ne2k_isa" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "ne2k_pci" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "pcnet" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "queues" : { + "description" : "Number of packet queues to be used on the device.", + "maximum" : 16, + "minimum" : 0, + "optional" : 1, + "type" : "integer" + }, + "rate" : { + "description" : "Rate limit in mbps (megabytes per second) as floating point number.", + "minimum" : 0, + "optional" : 1, + "type" : "number" + }, + "rtl8139" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "tag" : { + "description" : "VLAN tag to apply to packets on this interface.", + "maximum" : 4094, + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "trunks" : { + "description" : "VLAN trunks to pass through this interface.", + "format_description" : "vlanid[;vlanid...]", + "optional" : 1, + "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)", + "type" : "string" + }, + "virtio" : { + "alias" : "macaddr", + "keyAlias" : "model" + }, + "vmxnet3" : { + "alias" : "macaddr", + "keyAlias" : "model" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[model=] [,bridge=] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=] [,queues=] [,rate=] [,tag=] [,trunks=] [,=]" }, "node" : { "description" : "The cluster node name.", @@ -12613,31 +12841,2415 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "pool" : { - "description" : "Add the new VM to the specified pool.", - "format" : "pve-poolid", + "numa" : { + "default" : 0, + "description" : "Enable/disable NUMA.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "numa[n]" : { + "description" : "NUMA topology.", + "format" : { + "cpus" : { + "description" : "CPUs accessing this NUMA node.", + "format_description" : "id[-id];...", + "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)", + "type" : "string" + }, + "hostnodes" : { + "description" : "Host NUMA nodes to use.", + "format_description" : "id[-id];...", + "optional" : 1, + "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)", + "type" : "string" + }, + "memory" : { + "description" : "Amount of memory this NUMA node provides.", + "optional" : 1, + "type" : "number" + }, + "policy" : { + "description" : "NUMA allocation policy.", + "enum" : [ + "preferred", + "bind", + "interleave" + ], + "optional" : 1, + "type" : "string" + } + }, "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "cpus= [,hostnodes=] [,memory=] [,policy=]" }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, + "onboot" : { + "default" : 0, + "description" : "Specifies whether a VM will be started during system bootup.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "ostype" : { + "description" : "Specify guest operating system.", + "enum" : [ + "other", + "wxp", + "w2k", + "w2k3", + "w2k8", + "wvista", + "win7", + "win8", + "win10", + "l24", + "l26", + "solaris" + ], "optional" : 1, "type" : "string", - "typetext" : "" + "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" }, - "storage" : { - "description" : "Target storage for full clone.", - "format" : "pve-storage-id", + "parallel[n]" : { + "description" : "Map host parallel devices (n is 0 to 2).", "optional" : 1, + "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+", "type" : "string", - "typetext" : "" + "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n" }, - "target" : { - "description" : "Target node. Only allowed if the original VM is on shared storage.", - "format" : "pve-node", + "protection" : { + "default" : 0, + "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "reboot" : { + "default" : 1, + "description" : "Allow reboot. If set to '0' the VM exit on reboot.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "revert" : { + "description" : "Revert a pending change.", + "format" : "pve-configid-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "sata[n]" : { + "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).", + "format" : { + "aio" : { + "description" : "AIO type to use.", + "enum" : [ + "native", + "threads" + ], + "optional" : 1, + "type" : "string" + }, + "backup" : { + "description" : "Whether the drive should be included when making backups.", + "optional" : 1, + "type" : "boolean" + }, + "bps" : { + "description" : "Maximum r/w speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "type" : "integer" + }, + "bps_max_length" : { + "description" : "Maximum length of I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "bps_rd" : { + "description" : "Maximum read speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "type" : "integer" + }, + "bps_rd_length" : { + "alias" : "bps_rd_max_length" + }, + "bps_rd_max_length" : { + "description" : "Maximum length of read I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "bps_wr" : { + "description" : "Maximum write speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "type" : "integer" + }, + "bps_wr_length" : { + "alias" : "bps_wr_max_length" + }, + "bps_wr_max_length" : { + "description" : "Maximum length of write I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "cache" : { + "description" : "The drive's cache mode", + "enum" : [ + "none", + "writethrough", + "writeback", + "unsafe", + "directsync" + ], + "optional" : 1, + "type" : "string" + }, + "cyls" : { + "description" : "Force the drive's physical geometry to have a specific cylinder count.", + "optional" : 1, + "type" : "integer" + }, + "detect_zeroes" : { + "description" : "Controls whether to detect and try to optimize writes of zeroes.", + "optional" : 1, + "type" : "boolean" + }, + "discard" : { + "description" : "Controls whether to pass discard/trim requests to the underlying storage.", + "enum" : [ + "ignore", + "on" + ], + "optional" : 1, + "type" : "string" + }, + "file" : { + "default_key" : 1, + "description" : "The drive's backing volume.", + "format" : "pve-volume-id-or-qm-path", + "format_description" : "volume", + "type" : "string" + }, + "format" : { + "description" : "The drive's backing file's data format.", + "enum" : [ + "raw", + "cow", + "qcow", + "qed", + "qcow2", + "vmdk", + "cloop" + ], + "optional" : 1, + "type" : "string" + }, + "heads" : { + "description" : "Force the drive's physical geometry to have a specific head count.", + "optional" : 1, + "type" : "integer" + }, + "iops" : { + "description" : "Maximum r/w I/O in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_max" : { + "description" : "Maximum unthrottled r/w I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_max_length" : { + "description" : "Maximum length of I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "iops_rd" : { + "description" : "Maximum read I/O in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_rd_length" : { + "alias" : "iops_rd_max_length" + }, + "iops_rd_max" : { + "description" : "Maximum unthrottled read I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_rd_max_length" : { + "description" : "Maximum length of read I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "iops_wr" : { + "description" : "Maximum write I/O in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_wr_length" : { + "alias" : "iops_wr_max_length" + }, + "iops_wr_max" : { + "description" : "Maximum unthrottled write I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_wr_max_length" : { + "description" : "Maximum length of write I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "mbps" : { + "description" : "Maximum r/w speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_max" : { + "description" : "Maximum unthrottled r/w pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_rd" : { + "description" : "Maximum read speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_rd_max" : { + "description" : "Maximum unthrottled read pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_wr" : { + "description" : "Maximum write speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_wr_max" : { + "description" : "Maximum unthrottled write pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "media" : { + "default" : "disk", + "description" : "The drive's media type.", + "enum" : [ + "cdrom", + "disk" + ], + "optional" : 1, + "type" : "string" + }, + "replicate" : { + "default" : 1, + "description" : "Whether the drive should considered for replication jobs.", + "optional" : 1, + "type" : "boolean" + }, + "rerror" : { + "description" : "Read error action.", + "enum" : [ + "ignore", + "report", + "stop" + ], + "optional" : 1, + "type" : "string" + }, + "secs" : { + "description" : "Force the drive's physical geometry to have a specific sector count.", + "optional" : 1, + "type" : "integer" + }, + "serial" : { + "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.", + "format" : "urlencoded", + "format_description" : "serial", + "maxLength" : 60, + "optional" : 1, + "type" : "string" + }, + "shared" : { + "default" : 0, + "description" : "Mark this locally-managed volume as available on all nodes", + "optional" : 1, + "type" : "boolean", + "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!" + }, + "size" : { + "description" : "Disk size. This is purely informational and has no effect.", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "snapshot" : { + "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.", + "optional" : 1, + "type" : "boolean" + }, + "trans" : { + "description" : "Force disk geometry bios translation mode.", + "enum" : [ + "none", + "lba", + "auto" + ], + "optional" : 1, + "type" : "string" + }, + "volume" : { + "alias" : "file" + }, + "werror" : { + "description" : "Write error action.", + "enum" : [ + "enospc", + "ignore", + "report", + "stop" + ], + "optional" : 1, + "type" : "string" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[file=] [,aio=] [,backup=<1|0>] [,bps=] [,bps_max_length=] [,bps_rd=] [,bps_rd_max_length=] [,bps_wr=] [,bps_wr_max_length=] [,cache=] [,cyls=] [,detect_zeroes=<1|0>] [,discard=] [,format=] [,heads=] [,iops=] [,iops_max=] [,iops_max_length=] [,iops_rd=] [,iops_rd_max=] [,iops_rd_max_length=] [,iops_wr=] [,iops_wr_max=] [,iops_wr_max_length=] [,mbps=] [,mbps_max=] [,mbps_rd=] [,mbps_rd_max=] [,mbps_wr=] [,mbps_wr_max=] [,media=] [,replicate=<1|0>] [,rerror=] [,secs=] [,serial=] [,shared=<1|0>] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + }, + "scsi[n]" : { + "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).", + "format" : { + "aio" : { + "description" : "AIO type to use.", + "enum" : [ + "native", + "threads" + ], + "optional" : 1, + "type" : "string" + }, + "backup" : { + "description" : "Whether the drive should be included when making backups.", + "optional" : 1, + "type" : "boolean" + }, + "bps" : { + "description" : "Maximum r/w speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "type" : "integer" + }, + "bps_max_length" : { + "description" : "Maximum length of I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "bps_rd" : { + "description" : "Maximum read speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "type" : "integer" + }, + "bps_rd_length" : { + "alias" : "bps_rd_max_length" + }, + "bps_rd_max_length" : { + "description" : "Maximum length of read I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "bps_wr" : { + "description" : "Maximum write speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "type" : "integer" + }, + "bps_wr_length" : { + "alias" : "bps_wr_max_length" + }, + "bps_wr_max_length" : { + "description" : "Maximum length of write I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "cache" : { + "description" : "The drive's cache mode", + "enum" : [ + "none", + "writethrough", + "writeback", + "unsafe", + "directsync" + ], + "optional" : 1, + "type" : "string" + }, + "cyls" : { + "description" : "Force the drive's physical geometry to have a specific cylinder count.", + "optional" : 1, + "type" : "integer" + }, + "detect_zeroes" : { + "description" : "Controls whether to detect and try to optimize writes of zeroes.", + "optional" : 1, + "type" : "boolean" + }, + "discard" : { + "description" : "Controls whether to pass discard/trim requests to the underlying storage.", + "enum" : [ + "ignore", + "on" + ], + "optional" : 1, + "type" : "string" + }, + "file" : { + "default_key" : 1, + "description" : "The drive's backing volume.", + "format" : "pve-volume-id-or-qm-path", + "format_description" : "volume", + "type" : "string" + }, + "format" : { + "description" : "The drive's backing file's data format.", + "enum" : [ + "raw", + "cow", + "qcow", + "qed", + "qcow2", + "vmdk", + "cloop" + ], + "optional" : 1, + "type" : "string" + }, + "heads" : { + "description" : "Force the drive's physical geometry to have a specific head count.", + "optional" : 1, + "type" : "integer" + }, + "iops" : { + "description" : "Maximum r/w I/O in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_max" : { + "description" : "Maximum unthrottled r/w I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_max_length" : { + "description" : "Maximum length of I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "iops_rd" : { + "description" : "Maximum read I/O in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_rd_length" : { + "alias" : "iops_rd_max_length" + }, + "iops_rd_max" : { + "description" : "Maximum unthrottled read I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_rd_max_length" : { + "description" : "Maximum length of read I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "iops_wr" : { + "description" : "Maximum write I/O in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_wr_length" : { + "alias" : "iops_wr_max_length" + }, + "iops_wr_max" : { + "description" : "Maximum unthrottled write I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_wr_max_length" : { + "description" : "Maximum length of write I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "iothread" : { + "description" : "Whether to use iothreads for this drive", + "optional" : 1, + "type" : "boolean" + }, + "mbps" : { + "description" : "Maximum r/w speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_max" : { + "description" : "Maximum unthrottled r/w pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_rd" : { + "description" : "Maximum read speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_rd_max" : { + "description" : "Maximum unthrottled read pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_wr" : { + "description" : "Maximum write speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_wr_max" : { + "description" : "Maximum unthrottled write pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "media" : { + "default" : "disk", + "description" : "The drive's media type.", + "enum" : [ + "cdrom", + "disk" + ], + "optional" : 1, + "type" : "string" + }, + "queues" : { + "description" : "Number of queues.", + "minimum" : 2, + "optional" : 1, + "type" : "integer" + }, + "replicate" : { + "default" : 1, + "description" : "Whether the drive should considered for replication jobs.", + "optional" : 1, + "type" : "boolean" + }, + "rerror" : { + "description" : "Read error action.", + "enum" : [ + "ignore", + "report", + "stop" + ], + "optional" : 1, + "type" : "string" + }, + "scsiblock" : { + "default" : 0, + "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host", + "optional" : 1, + "type" : "boolean" + }, + "secs" : { + "description" : "Force the drive's physical geometry to have a specific sector count.", + "optional" : 1, + "type" : "integer" + }, + "serial" : { + "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.", + "format" : "urlencoded", + "format_description" : "serial", + "maxLength" : 60, + "optional" : 1, + "type" : "string" + }, + "shared" : { + "default" : 0, + "description" : "Mark this locally-managed volume as available on all nodes", + "optional" : 1, + "type" : "boolean", + "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!" + }, + "size" : { + "description" : "Disk size. This is purely informational and has no effect.", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "snapshot" : { + "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.", + "optional" : 1, + "type" : "boolean" + }, + "trans" : { + "description" : "Force disk geometry bios translation mode.", + "enum" : [ + "none", + "lba", + "auto" + ], + "optional" : 1, + "type" : "string" + }, + "volume" : { + "alias" : "file" + }, + "werror" : { + "description" : "Write error action.", + "enum" : [ + "enospc", + "ignore", + "report", + "stop" + ], + "optional" : 1, + "type" : "string" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[file=] [,aio=] [,backup=<1|0>] [,bps=] [,bps_max_length=] [,bps_rd=] [,bps_rd_max_length=] [,bps_wr=] [,bps_wr_max_length=] [,cache=] [,cyls=] [,detect_zeroes=<1|0>] [,discard=] [,format=] [,heads=] [,iops=] [,iops_max=] [,iops_max_length=] [,iops_rd=] [,iops_rd_max=] [,iops_rd_max_length=] [,iops_wr=] [,iops_wr_max=] [,iops_wr_max_length=] [,iothread=<1|0>] [,mbps=] [,mbps_max=] [,mbps_rd=] [,mbps_rd_max=] [,mbps_wr=] [,mbps_wr_max=] [,media=] [,queues=] [,replicate=<1|0>] [,rerror=] [,scsiblock=<1|0>] [,secs=] [,serial=] [,shared=<1|0>] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + }, + "scsihw" : { + "default" : "lsi", + "description" : "SCSI controller model", + "enum" : [ + "lsi", + "lsi53c810", + "virtio-scsi-pci", + "virtio-scsi-single", + "megasas", + "pvscsi" + ], + "optional" : 1, + "type" : "string" + }, + "searchdomain" : { + "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "serial[n]" : { + "description" : "Create a serial device inside the VM (n is 0 to 3)", + "optional" : 1, + "pattern" : "(/dev/.+|socket)", + "type" : "string", + "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n" + }, + "shares" : { + "default" : 1000, + "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.", + "maximum" : 50000, + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - 50000)" + }, + "skiplock" : { + "description" : "Ignore locks - only root is allowed to use this option.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "smbios1" : { + "description" : "Specify SMBIOS type 1 fields.", + "format" : "pve-qm-smbios1", + "maxLength" : 256, + "optional" : 1, + "type" : "string", + "typetext" : "[family=] [,manufacturer=] [,product=] [,serial=] [,sku=] [,uuid=] [,version=]" + }, + "smp" : { + "default" : 1, + "description" : "The number of CPUs. Please use option -sockets instead.", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "sockets" : { + "default" : 1, + "description" : "The number of CPU sockets.", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "sshkeys" : { + "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).", + "format" : "urlencoded", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "startdate" : { + "default" : "now", + "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.", + "optional" : 1, + "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)", + "type" : "string", + "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)" + }, + "startup" : { + "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.", + "format" : "pve-startup-order", + "optional" : 1, + "type" : "string", + "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] " + }, + "tablet" : { + "default" : 1, + "description" : "Enable/disable the USB tablet device.", + "optional" : 1, + "type" : "boolean", + "typetext" : "", + "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl)." + }, + "tdf" : { + "default" : 0, + "description" : "Enable/disable time drift fix.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "template" : { + "default" : 0, + "description" : "Enable/disable Template.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "unused[n]" : { + "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.", + "format" : "pve-volume-id", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "usb[n]" : { + "description" : "Configure an USB device (n is 0 to 4).", + "format" : { + "host" : { + "default_key" : 1, + "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n", + "format" : "pve-qm-usb-device", + "format_description" : "HOSTUSBDEVICE|spice", + "type" : "string" + }, + "usb3" : { + "default" : 0, + "description" : "Specifies whether if given host option is a USB3 device or port (this does currently not work reliably with spice redirection and is then ignored).", + "optional" : 1, + "type" : "boolean" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[host=] [,usb3=<1|0>]" + }, + "vcpus" : { + "default" : 0, + "description" : "Number of hotplugged vcpus.", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "vga" : { + "description" : "Select the VGA type.", + "enum" : [ + "cirrus", + "qxl", + "qxl2", + "qxl3", + "qxl4", + "serial0", + "serial1", + "serial2", + "serial3", + "std", + "virtio", + "vmware" + ], + "optional" : 1, + "type" : "string", + "verbose_description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal." + }, + "virtio[n]" : { + "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).", + "format" : { + "aio" : { + "description" : "AIO type to use.", + "enum" : [ + "native", + "threads" + ], + "optional" : 1, + "type" : "string" + }, + "backup" : { + "description" : "Whether the drive should be included when making backups.", + "optional" : 1, + "type" : "boolean" + }, + "bps" : { + "description" : "Maximum r/w speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "type" : "integer" + }, + "bps_max_length" : { + "description" : "Maximum length of I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "bps_rd" : { + "description" : "Maximum read speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "type" : "integer" + }, + "bps_rd_length" : { + "alias" : "bps_rd_max_length" + }, + "bps_rd_max_length" : { + "description" : "Maximum length of read I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "bps_wr" : { + "description" : "Maximum write speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "type" : "integer" + }, + "bps_wr_length" : { + "alias" : "bps_wr_max_length" + }, + "bps_wr_max_length" : { + "description" : "Maximum length of write I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "cache" : { + "description" : "The drive's cache mode", + "enum" : [ + "none", + "writethrough", + "writeback", + "unsafe", + "directsync" + ], + "optional" : 1, + "type" : "string" + }, + "cyls" : { + "description" : "Force the drive's physical geometry to have a specific cylinder count.", + "optional" : 1, + "type" : "integer" + }, + "detect_zeroes" : { + "description" : "Controls whether to detect and try to optimize writes of zeroes.", + "optional" : 1, + "type" : "boolean" + }, + "discard" : { + "description" : "Controls whether to pass discard/trim requests to the underlying storage.", + "enum" : [ + "ignore", + "on" + ], + "optional" : 1, + "type" : "string" + }, + "file" : { + "default_key" : 1, + "description" : "The drive's backing volume.", + "format" : "pve-volume-id-or-qm-path", + "format_description" : "volume", + "type" : "string" + }, + "format" : { + "description" : "The drive's backing file's data format.", + "enum" : [ + "raw", + "cow", + "qcow", + "qed", + "qcow2", + "vmdk", + "cloop" + ], + "optional" : 1, + "type" : "string" + }, + "heads" : { + "description" : "Force the drive's physical geometry to have a specific head count.", + "optional" : 1, + "type" : "integer" + }, + "iops" : { + "description" : "Maximum r/w I/O in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_max" : { + "description" : "Maximum unthrottled r/w I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_max_length" : { + "description" : "Maximum length of I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "iops_rd" : { + "description" : "Maximum read I/O in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_rd_length" : { + "alias" : "iops_rd_max_length" + }, + "iops_rd_max" : { + "description" : "Maximum unthrottled read I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_rd_max_length" : { + "description" : "Maximum length of read I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "iops_wr" : { + "description" : "Maximum write I/O in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_wr_length" : { + "alias" : "iops_wr_max_length" + }, + "iops_wr_max" : { + "description" : "Maximum unthrottled write I/O pool in operations per second.", + "format_description" : "iops", + "optional" : 1, + "type" : "integer" + }, + "iops_wr_max_length" : { + "description" : "Maximum length of write I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "iothread" : { + "description" : "Whether to use iothreads for this drive", + "optional" : 1, + "type" : "boolean" + }, + "mbps" : { + "description" : "Maximum r/w speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_max" : { + "description" : "Maximum unthrottled r/w pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_rd" : { + "description" : "Maximum read speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_rd_max" : { + "description" : "Maximum unthrottled read pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_wr" : { + "description" : "Maximum write speed in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "mbps_wr_max" : { + "description" : "Maximum unthrottled write pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "media" : { + "default" : "disk", + "description" : "The drive's media type.", + "enum" : [ + "cdrom", + "disk" + ], + "optional" : 1, + "type" : "string" + }, + "replicate" : { + "default" : 1, + "description" : "Whether the drive should considered for replication jobs.", + "optional" : 1, + "type" : "boolean" + }, + "rerror" : { + "description" : "Read error action.", + "enum" : [ + "ignore", + "report", + "stop" + ], + "optional" : 1, + "type" : "string" + }, + "secs" : { + "description" : "Force the drive's physical geometry to have a specific sector count.", + "optional" : 1, + "type" : "integer" + }, + "serial" : { + "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.", + "format" : "urlencoded", + "format_description" : "serial", + "maxLength" : 60, + "optional" : 1, + "type" : "string" + }, + "shared" : { + "default" : 0, + "description" : "Mark this locally-managed volume as available on all nodes", + "optional" : 1, + "type" : "boolean", + "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!" + }, + "size" : { + "description" : "Disk size. This is purely informational and has no effect.", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "snapshot" : { + "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.", + "optional" : 1, + "type" : "boolean" + }, + "trans" : { + "description" : "Force disk geometry bios translation mode.", + "enum" : [ + "none", + "lba", + "auto" + ], + "optional" : 1, + "type" : "string" + }, + "volume" : { + "alias" : "file" + }, + "werror" : { + "description" : "Write error action.", + "enum" : [ + "enospc", + "ignore", + "report", + "stop" + ], + "optional" : 1, + "type" : "string" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[file=] [,aio=] [,backup=<1|0>] [,bps=] [,bps_max_length=] [,bps_rd=] [,bps_rd_max_length=] [,bps_wr=] [,bps_wr_max_length=] [,cache=] [,cyls=] [,detect_zeroes=<1|0>] [,discard=] [,format=] [,heads=] [,iops=] [,iops_max=] [,iops_max_length=] [,iops_rd=] [,iops_rd_max=] [,iops_rd_max_length=] [,iops_wr=] [,iops_wr_max=] [,iops_wr_max_length=] [,iothread=<1|0>] [,mbps=] [,mbps_max=] [,mbps_rd=] [,mbps_rd_max=] [,mbps_wr=] [,mbps_wr_max=] [,media=] [,replicate=<1|0>] [,rerror=] [,secs=] [,serial=] [,shared=<1|0>] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + }, + "vmgenid" : { + "default" : "1 (autogenerated)", + "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.", + "format_description" : "UUID", + "optional" : 1, + "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])", + "type" : "string", + "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file." + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "vmstatestorage" : { + "description" : "Default storage for VM state volumes/files.", + "format" : "pve-storage-id", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "watchdog" : { + "description" : "Create a virtual hardware watchdog device.", + "format" : "pve-qm-watchdog", + "optional" : 1, + "type" : "string", + "typetext" : "[[model=]] [,action=]", + "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Config.Disk", + "VM.Config.CDROM", + "VM.Config.CPU", + "VM.Config.Memory", + "VM.Config.Network", + "VM.Config.HWType", + "VM.Config.Options" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/config", + "text" : "config" + }, + { + "info" : { + "GET" : { + "description" : "Get virtual machine configuration, including pending changes.", + "method" : "GET", + "name" : "vm_pending", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "delete" : { + "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.", + "maximum" : 2, + "minimum" : 0, + "optional" : 1, + "type" : "integer" + }, + "key" : { + "description" : "Configuration option name.", + "type" : "string" + }, + "pending" : { + "description" : "Pending value.", + "optional" : 1, + "type" : "string" + }, + "value" : { + "description" : "Current value.", + "optional" : 1, + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/pending", + "text" : "pending" + }, + { + "info" : { + "PUT" : { + "description" : "Unlink/delete disk images.", + "method" : "PUT", + "name" : "unlink", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "force" : { + "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "idlist" : { + "description" : "A list of disk IDs you want to delete.", + "format" : "pve-configid-list", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Config.Disk" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/unlink", + "text" : "unlink" + }, + { + "info" : { + "POST" : { + "description" : "Creates a TCP VNC proxy connections.", + "method" : "POST", + "name" : "vncproxy", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "websocket" : { + "description" : "starts websockify instead of vncproxy", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Console" + ] + ] + }, + "protected" : 1, + "returns" : { + "additionalProperties" : 0, + "properties" : { + "cert" : { + "type" : "string" + }, + "port" : { + "type" : "integer" + }, + "ticket" : { + "type" : "string" + }, + "upid" : { + "type" : "string" + }, + "user" : { + "type" : "string" + } + } + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/vncproxy", + "text" : "vncproxy" + }, + { + "info" : { + "POST" : { + "description" : "Creates a TCP proxy connections.", + "method" : "POST", + "name" : "termproxy", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "serial" : { + "description" : "opens a serial terminal (defaults to display)", + "enum" : [ + "serial0", + "serial1", + "serial2", + "serial3" + ], + "optional" : 1, + "type" : "string" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Console" + ] + ] + }, + "protected" : 1, + "returns" : { + "additionalProperties" : 0, + "properties" : { + "port" : { + "type" : "integer" + }, + "ticket" : { + "type" : "string" + }, + "upid" : { + "type" : "string" + }, + "user" : { + "type" : "string" + } + } + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/termproxy", + "text" : "termproxy" + }, + { + "info" : { + "GET" : { + "description" : "Opens a weksocket for VNC traffic.", + "method" : "GET", + "name" : "vncwebsocket", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "port" : { + "description" : "Port number returned by previous vncproxy call.", + "maximum" : 5999, + "minimum" : 5900, + "type" : "integer", + "typetext" : " (5900 - 5999)" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "vncticket" : { + "description" : "Ticket from previous call to vncproxy.", + "maxLength" : 512, + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Console" + ] + ], + "description" : "You also need to pass a valid ticket (vncticket)." + }, + "returns" : { + "properties" : { + "port" : { + "type" : "string" + } + }, + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket", + "text" : "vncwebsocket" + }, + { + "info" : { + "POST" : { + "description" : "Returns a SPICE configuration to connect to the VM.", + "method" : "POST", + "name" : "spiceproxy", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "proxy" : { + "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As reasonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).", + "format" : "address", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Console" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "additionalProperties" : 1, + "description" : "Returned values can be directly passed to the 'remote-viewer' application.", + "properties" : { + "host" : { + "type" : "string" + }, + "password" : { + "type" : "string" + }, + "proxy" : { + "type" : "string" + }, + "tls-port" : { + "type" : "integer" + }, + "type" : { + "type" : "string" + } + } + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy", + "text" : "spiceproxy" + }, + { + "children" : [ + { + "info" : { + "GET" : { + "description" : "Get virtual machine status.", + "method" : "GET", + "name" : "vm_status", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "agent" : { + "description" : "Qemu GuestAgent enabled in config.", + "optional" : 1, + "type" : "boolean" + }, + "cpus" : { + "description" : "Maximum usable CPUs.", + "optional" : 1, + "type" : "number" + }, + "ha" : { + "description" : "HA manager service status.", + "type" : "object" + }, + "maxdisk" : { + "description" : "Root disk size in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "maxmem" : { + "description" : "Maximum memory in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "name" : { + "description" : "VM name.", + "optional" : 1, + "type" : "string" + }, + "pid" : { + "description" : "PID of running qemu process.", + "optional" : 1, + "type" : "integer" + }, + "qmpstatus" : { + "description" : "Qemu QMP agent status.", + "optional" : 1, + "type" : "string" + }, + "spice" : { + "description" : "Qemu VGA configuration supports spice.", + "optional" : 1, + "type" : "boolean" + }, + "status" : { + "description" : "Qemu process status.", + "enum" : [ + "stopped", + "running" + ], + "type" : "string" + }, + "uptime" : { + "description" : "Uptime.", + "optional" : 1, + "renderer" : "duration", + "type" : "integer" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer" + } + }, + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/status/current", + "text" : "current" + }, + { + "info" : { + "POST" : { + "description" : "Start virtual machine.", + "method" : "POST", + "name" : "vm_start", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "machine" : { + "description" : "Specifies the Qemu machine type.", + "maxLength" : 40, + "optional" : 1, + "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)", + "type" : "string" + }, + "migratedfrom" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "migration_network" : { + "description" : "CIDR of the (sub) network that is used for migration.", + "format" : "CIDR", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "migration_type" : { + "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.", + "enum" : [ + "secure", + "insecure" + ], + "optional" : 1, + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "skiplock" : { + "description" : "Ignore locks - only root is allowed to use this option.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "stateuri" : { + "description" : "Some command save/restore state from this location.", + "maxLength" : 128, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "targetstorage" : { + "description" : "Target storage for the migration. (Can be '1' to use the same storage id as on the source node.)", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.PowerMgmt" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/status/start", + "text" : "start" + }, + { + "info" : { + "POST" : { + "description" : "Stop virtual machine. The qemu process will exit immediately. Thisis akin to pulling the power plug of a running computer and may damage the VM data", + "method" : "POST", + "name" : "vm_stop", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "keepActive" : { + "default" : 0, + "description" : "Do not deactivate storage volumes.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "migratedfrom" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "skiplock" : { + "description" : "Ignore locks - only root is allowed to use this option.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "timeout" : { + "description" : "Wait maximal timeout seconds.", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.PowerMgmt" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/status/stop", + "text" : "stop" + }, + { + "info" : { + "POST" : { + "description" : "Reset virtual machine.", + "method" : "POST", + "name" : "vm_reset", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "skiplock" : { + "description" : "Ignore locks - only root is allowed to use this option.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.PowerMgmt" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/status/reset", + "text" : "reset" + }, + { + "info" : { + "POST" : { + "description" : "Shutdown virtual machine. This is similar to pressing the power button on a physical machine.This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.", + "method" : "POST", + "name" : "vm_shutdown", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "forceStop" : { + "default" : 0, + "description" : "Make sure the VM stops.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "keepActive" : { + "default" : 0, + "description" : "Do not deactivate storage volumes.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "skiplock" : { + "description" : "Ignore locks - only root is allowed to use this option.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "timeout" : { + "description" : "Wait maximal timeout seconds.", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.PowerMgmt" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown", + "text" : "shutdown" + }, + { + "info" : { + "POST" : { + "description" : "Suspend virtual machine.", + "method" : "POST", + "name" : "vm_suspend", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "skiplock" : { + "description" : "Ignore locks - only root is allowed to use this option.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.PowerMgmt" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/status/suspend", + "text" : "suspend" + }, + { + "info" : { + "POST" : { + "description" : "Resume virtual machine.", + "method" : "POST", + "name" : "vm_resume", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "nocheck" : { + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "skiplock" : { + "description" : "Ignore locks - only root is allowed to use this option.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.PowerMgmt" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/status/resume", + "text" : "resume" + } + ], + "info" : { + "GET" : { + "description" : "Directory index", + "method" : "GET", + "name" : "vmcmdidx", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "user" : "all" + }, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "subdir" : { + "type" : "string" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{subdir}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/qemu/{vmid}/status", + "text" : "status" + }, + { + "info" : { + "PUT" : { + "description" : "Send key event to virtual machine.", + "method" : "PUT", + "name" : "vm_sendkey", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "key" : { + "description" : "The key (qemu monitor encoding).", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "skiplock" : { + "description" : "Ignore locks - only root is allowed to use this option.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Console" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/sendkey", + "text" : "sendkey" + }, + { + "info" : { + "GET" : { + "description" : "Check if feature for virtual machine is available.", + "method" : "GET", + "name" : "vm_feature", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "feature" : { + "description" : "Feature to check.", + "enum" : [ + "snapshot", + "clone", + "copy" + ], + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "snapname" : { + "description" : "The name of the snapshot.", + "format" : "pve-configid", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "hasFeature" : { + "type" : "boolean" + }, + "nodes" : { + "items" : { + "type" : "string" + }, + "type" : "array" + } + }, + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/feature", + "text" : "feature" + }, + { + "info" : { + "POST" : { + "description" : "Create a copy of virtual machine/template.", + "method" : "POST", + "name" : "clone_vm", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "description" : { + "description" : "Description for the new VM.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "format" : { + "description" : "Target format for file storage. Only valid for full clone.", + "enum" : [ + "raw", + "qcow2", + "vmdk" + ], + "optional" : 1, + "type" : "string" + }, + "full" : { + "description" : "Create a full copy of all disks. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "name" : { + "description" : "Set a name for the new VM.", + "format" : "dns-name", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "newid" : { + "description" : "VMID for the clone.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "pool" : { + "description" : "Add the new VM to the specified pool.", + "format" : "pve-poolid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "snapname" : { + "description" : "The name of the snapshot.", + "format" : "pve-configid", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "storage" : { + "description" : "Target storage for full clone.", + "format" : "pve-storage-id", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "target" : { + "description" : "Target node. Only allowed if the original VM is on shared storage.", + "format" : "pve-node", "optional" : 1, "type" : "string", "typetext" : "" @@ -13381,7 +15993,32 @@ var pveapi = [ "proxyto" : "node", "returns" : { "items" : { - "properties" : {}, + "properties" : { + "description" : { + "description" : "Snapshot description.", + "type" : "string" + }, + "name" : { + "description" : "Snapshot identifier. Value 'current' identifies the current VM.", + "type" : "string" + }, + "parent" : { + "description" : "Parent snapshot identifier.", + "optional" : 1, + "type" : "string" + }, + "snaptime" : { + "description" : "Snapshot creation time", + "optional" : 1, + "renderer" : "timestamp", + "type" : "integer" + }, + "vmstate" : { + "description" : "Snapshot includes RAM.", + "optional" : 1, + "type" : "boolean" + } + }, "type" : "object" }, "links" : [ @@ -13673,7 +16310,60 @@ var pveapi = [ "proxyto" : "node", "returns" : { "items" : { - "properties" : {}, + "properties" : { + "cpus" : { + "description" : "Maximum usable CPUs.", + "optional" : 1, + "type" : "number" + }, + "maxdisk" : { + "description" : "Root disk size in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "maxmem" : { + "description" : "Maximum memory in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "name" : { + "description" : "VM name.", + "optional" : 1, + "type" : "string" + }, + "pid" : { + "description" : "PID of running qemu process.", + "optional" : 1, + "type" : "integer" + }, + "qmpstatus" : { + "description" : "Qemu QMP agent status.", + "optional" : 1, + "type" : "string" + }, + "status" : { + "description" : "Qemu process status.", + "enum" : [ + "stopped", + "running" + ], + "type" : "string" + }, + "uptime" : { + "description" : "Uptime.", + "optional" : 1, + "renderer" : "duration", + "type" : "integer" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer" + } + }, "type" : "object" }, "links" : [ @@ -13700,11 +16390,24 @@ var pveapi = [ "typetext" : "" }, "agent" : { - "default" : 0, - "description" : "Enable/disable Qemu GuestAgent.", + "description" : "Enable/disable Qemu GuestAgent and its properties.", + "format" : { + "enabled" : { + "default" : 0, + "default_key" : 1, + "description" : "Enable/disable Qemu GuestAgent.", + "type" : "boolean" + }, + "fstrim_cloned_disks" : { + "default" : 0, + "description" : "Run fstrim after cloning/moving a disk.", + "optional" : 1, + "type" : "boolean" + } + }, "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "string", + "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]" }, "archive" : { "description" : "The backup file.", @@ -13856,10 +16559,10 @@ var pveapi = [ "type" : "string" }, "flags" : { - "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl'.", + "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.", "format_description" : "+FLAG[;-FLAG...]", "optional" : 1, - "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl))(;(?^:[+-](pcid|spec-ctrl)))*)", + "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)", "type" : "string" }, "hidden" : { @@ -13899,6 +16602,45 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "efidisk0" : { + "description" : "Configure a Disk for storing EFI vars", + "format" : { + "file" : { + "default_key" : 1, + "description" : "The drive's backing volume.", + "format" : "pve-volume-id-or-qm-path", + "format_description" : "volume", + "type" : "string" + }, + "format" : { + "description" : "The drive's backing file's data format.", + "enum" : [ + "raw", + "cow", + "qcow", + "qed", + "qcow2", + "vmdk", + "cloop" + ], + "optional" : 1, + "type" : "string" + }, + "size" : { + "description" : "Disk size. This is purely informational and has no effect.", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "volume" : { + "alias" : "file" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[file=] [,format=] [,size=]" + }, "force" : { "description" : "Allow to overwrite existing VM.", "optional" : 1, @@ -14316,7 +17058,7 @@ var pveapi = [ "type" : "string" }, "machine" : { - "description" : "Specific the Qemu machine type.", + "description" : "Specifies the Qemu machine type.", "maxLength" : 40, "optional" : 1, "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)", @@ -15385,17 +18127,18 @@ var pveapi = [ "vga" : { "description" : "Select the VGA type.", "enum" : [ - "std", "cirrus", - "vmware", "qxl", + "qxl2", + "qxl3", + "qxl4", "serial0", "serial1", "serial2", "serial3", - "qxl2", - "qxl3", - "qxl4" + "std", + "virtio", + "vmware" ], "optional" : 1, "type" : "string", @@ -15711,6 +18454,15 @@ var pveapi = [ "type" : "string", "typetext" : "[file=] [,aio=] [,backup=<1|0>] [,bps=] [,bps_max_length=] [,bps_rd=] [,bps_rd_max_length=] [,bps_wr=] [,bps_wr_max_length=] [,cache=] [,cyls=] [,detect_zeroes=<1|0>] [,discard=] [,format=] [,heads=] [,iops=] [,iops_max=] [,iops_max_length=] [,iops_rd=] [,iops_rd_max=] [,iops_rd_max_length=] [,iops_wr=] [,iops_wr_max=] [,iops_wr_max_length=] [,iothread=<1|0>] [,mbps=] [,mbps_max=] [,mbps_rd=] [,mbps_rd_max=] [,mbps_wr=] [,mbps_wr_max=] [,media=] [,replicate=<1|0>] [,rerror=] [,secs=] [,serial=] [,shared=<1|0>] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" }, + "vmgenid" : { + "default" : "1 (autogenerated)", + "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.", + "format_description" : "UUID", + "optional" : 1, + "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])", + "type" : "string", + "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file." + }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -15767,31 +18519,438 @@ var pveapi = [ "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", - "typetext" : "" + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "proxyto" : "node", + "returns" : { + "properties" : { + "arch" : { + "default" : "amd64", + "description" : "OS architecture type.", + "enum" : [ + "amd64", + "i386", + "arm64", + "armhf" + ], + "optional" : 1, + "type" : "string" + }, + "cmode" : { + "default" : "tty", + "description" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login).", + "enum" : [ + "shell", + "console", + "tty" + ], + "optional" : 1, + "type" : "string" + }, + "console" : { + "default" : 1, + "description" : "Attach a console device (/dev/console) to the container.", + "optional" : 1, + "type" : "boolean" + }, + "cores" : { + "description" : "The number of cores assigned to the container. A container can use all available cores by default.", + "maximum" : 128, + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "cpulimit" : { + "default" : 0, + "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.", + "maximum" : 128, + "minimum" : 0, + "optional" : 1, + "type" : "number" + }, + "cpuunits" : { + "default" : 1024, + "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.", + "maximum" : 500000, + "minimum" : 0, + "optional" : 1, + "type" : "integer" + }, + "description" : { + "description" : "Container description. Only used on the configuration web interface.", + "optional" : 1, + "type" : "string" + }, + "digest" : { + "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.", + "type" : "string" + }, + "features" : { + "description" : "Allow containers access to advanced features.", + "format" : { + "keyctl" : { + "default" : 0, + "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.", + "optional" : 1, + "type" : "boolean" + }, + "mount" : { + "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.", + "format_description" : "fstype;fstype;...", + "optional" : 1, + "pattern" : "(?^:[a-zA-Z0-9; ]+)", + "type" : "string" + }, + "nesting" : { + "default" : 0, + "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.", + "optional" : 1, + "type" : "boolean" + } + }, + "optional" : 1, + "type" : "string" + }, + "hostname" : { + "description" : "Set a host name for the container.", + "format" : "dns-name", + "maxLength" : 255, + "optional" : 1, + "type" : "string" + }, + "lock" : { + "description" : "Lock/unlock the VM.", + "enum" : [ + "backup", + "disk", + "migrate", + "mounted", + "rollback", + "snapshot", + "snapshot-delete" + ], + "optional" : 1, + "type" : "string" + }, + "lxc" : { + "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).", + "items" : { + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "optional" : 1, + "type" : "array" + }, + "memory" : { + "default" : 512, + "description" : "Amount of RAM for the VM in MB.", + "minimum" : 16, + "optional" : 1, + "type" : "integer" + }, + "mp[n]" : { + "description" : "Use volume as container mount point.", + "format" : { + "acl" : { + "description" : "Explicitly enable or disable ACL support.", + "optional" : 1, + "type" : "boolean" + }, + "backup" : { + "description" : "Whether to include the mount point in backups.", + "optional" : 1, + "type" : "boolean", + "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)." + }, + "mp" : { + "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).", + "format" : "pve-lxc-mp-string", + "format_description" : "Path", + "type" : "string", + "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons." + }, + "quota" : { + "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)", + "optional" : 1, + "type" : "boolean" + }, + "replicate" : { + "default" : 1, + "description" : "Will include this volume to a storage replica job.", + "optional" : 1, + "type" : "boolean" + }, + "ro" : { + "description" : "Read-only mount point", + "optional" : 1, + "type" : "boolean" + }, + "shared" : { + "default" : 0, + "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')", + "optional" : 1, + "type" : "boolean", + "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!" + }, + "size" : { + "description" : "Volume size (read only value).", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "volume" : { + "default_key" : 1, + "description" : "Volume, device or directory to mount into the container.", + "format" : "pve-lxc-mp-string", + "format_description" : "volume", + "type" : "string" + } + }, + "optional" : 1, + "type" : "string" + }, + "nameserver" : { + "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.", + "format" : "address-list", + "optional" : 1, + "type" : "string" + }, + "net[n]" : { + "description" : "Specifies network interfaces for the container.", + "format" : { + "bridge" : { + "description" : "Bridge to attach the network device to.", + "format_description" : "bridge", + "optional" : 1, + "pattern" : "[-_.\\w\\d]+", + "type" : "string" + }, + "firewall" : { + "description" : "Controls whether this interface's firewall rules should be used.", + "optional" : 1, + "type" : "boolean" + }, + "gw" : { + "description" : "Default gateway for IPv4 traffic.", + "format" : "ipv4", + "format_description" : "GatewayIPv4", + "optional" : 1, + "type" : "string" + }, + "gw6" : { + "description" : "Default gateway for IPv6 traffic.", + "format" : "ipv6", + "format_description" : "GatewayIPv6", + "optional" : 1, + "type" : "string" + }, + "hwaddr" : { + "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)", + "format_description" : "XX:XX:XX:XX:XX:XX", + "optional" : 1, + "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})", + "type" : "string" + }, + "ip" : { + "description" : "IPv4 address in CIDR format.", + "format" : "pve-ipv4-config", + "format_description" : "(IPv4/CIDR|dhcp|manual)", + "optional" : 1, + "type" : "string" + }, + "ip6" : { + "description" : "IPv6 address in CIDR format.", + "format" : "pve-ipv6-config", + "format_description" : "(IPv6/CIDR|auto|dhcp|manual)", + "optional" : 1, + "type" : "string" + }, + "mtu" : { + "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)", + "minimum" : 64, + "optional" : 1, + "type" : "integer" + }, + "name" : { + "description" : "Name of the network device as seen from inside the container. (lxc.network.name)", + "format_description" : "string", + "pattern" : "[-_.\\w\\d]+", + "type" : "string" + }, + "rate" : { + "description" : "Apply rate limiting to the interface", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "tag" : { + "description" : "VLAN tag for this interface.", + "maximum" : 4094, + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "trunks" : { + "description" : "VLAN ids to pass through the interface", + "format_description" : "vlanid[;vlanid...]", + "optional" : 1, + "pattern" : "(?^:\\d+(?:;\\d+)*)", + "type" : "string" + }, + "type" : { + "description" : "Network interface type.", + "enum" : [ + "veth" + ], + "optional" : 1, + "type" : "string" + } + }, + "optional" : 1, + "type" : "string" + }, + "onboot" : { + "default" : 0, + "description" : "Specifies whether a VM will be started during system bootup.", + "optional" : 1, + "type" : "boolean" + }, + "ostype" : { + "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.", + "enum" : [ + "debian", + "ubuntu", + "centos", + "fedora", + "opensuse", + "archlinux", + "alpine", + "gentoo", + "unmanaged" + ], + "optional" : 1, + "type" : "string" + }, + "protection" : { + "default" : 0, + "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.", + "optional" : 1, + "type" : "boolean" + }, + "rootfs" : { + "description" : "Use volume as container root.", + "format" : { + "acl" : { + "description" : "Explicitly enable or disable ACL support.", + "optional" : 1, + "type" : "boolean" + }, + "quota" : { + "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)", + "optional" : 1, + "type" : "boolean" + }, + "replicate" : { + "default" : 1, + "description" : "Will include this volume to a storage replica job.", + "optional" : 1, + "type" : "boolean" + }, + "ro" : { + "description" : "Read-only mount point", + "optional" : 1, + "type" : "boolean" + }, + "shared" : { + "default" : 0, + "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')", + "optional" : 1, + "type" : "boolean", + "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!" + }, + "size" : { + "description" : "Volume size (read only value).", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "volume" : { + "default_key" : 1, + "description" : "Volume, device or directory to mount into the container.", + "format" : "pve-lxc-mp-string", + "format_description" : "volume", + "type" : "string" + } + }, + "optional" : 1, + "type" : "string" + }, + "searchdomain" : { + "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.", + "format" : "dns-name-list", + "optional" : 1, + "type" : "string" + }, + "startup" : { + "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.", + "format" : "pve-startup-order", + "optional" : 1, + "type" : "string", + "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] " }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] - }, - "proxyto" : "node", - "returns" : { - "properties" : { - "digest" : { - "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.", + "swap" : { + "default" : 512, + "description" : "Amount of SWAP for the VM in MB.", + "minimum" : 0, + "optional" : 1, + "type" : "integer" + }, + "template" : { + "default" : 0, + "description" : "Enable/disable Template.", + "optional" : 1, + "type" : "boolean" + }, + "tty" : { + "default" : 2, + "description" : "Specify the number of tty available to the container", + "maximum" : 6, + "minimum" : 0, + "optional" : 1, + "type" : "integer" + }, + "unprivileged" : { + "default" : 0, + "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)", + "optional" : 1, + "type" : "boolean" + }, + "unused[n]" : { + "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.", + "format" : "pve-volume-id", + "optional" : 1, "type" : "string" } }, @@ -15810,7 +18969,9 @@ var pveapi = [ "description" : "OS architecture type.", "enum" : [ "amd64", - "i386" + "i386", + "arm64", + "armhf" ], "optional" : 1, "type" : "string" @@ -15879,6 +19040,33 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "features" : { + "description" : "Allow containers access to advanced features.", + "format" : { + "keyctl" : { + "default" : 0, + "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.", + "optional" : 1, + "type" : "boolean" + }, + "mount" : { + "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.", + "format_description" : "fstype;fstype;...", + "optional" : 1, + "pattern" : "(?^:[a-zA-Z0-9; ]+)", + "type" : "string" + }, + "nesting" : { + "default" : 0, + "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.", + "optional" : 1, + "type" : "boolean" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[keyctl=<1|0>] [,mount=] [,nesting=<1|0>]" + }, "hostname" : { "description" : "Set a host name for the container.", "format" : "dns-name", @@ -15890,10 +19078,13 @@ var pveapi = [ "lock" : { "description" : "Lock/unlock the VM.", "enum" : [ - "migrate", "backup", + "disk", + "migrate", + "mounted", + "rollback", "snapshot", - "rollback" + "snapshot-delete" ], "optional" : 1, "type" : "string" @@ -16276,27 +19467,240 @@ var pveapi = [ "perm", "/vms/{vmid}", [ - "VM.Audit" + "VM.Audit" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "cpus" : { + "description" : "Maximum usable CPUs.", + "optional" : 1, + "type" : "number" + }, + "ha" : { + "description" : "HA manager service status.", + "type" : "object" + }, + "maxdisk" : { + "description" : "Root disk size in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "maxmem" : { + "description" : "Maximum memory in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "maxswap" : { + "description" : "Maximum SWAP memory in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "name" : { + "description" : "Container name.", + "optional" : 1, + "type" : "string" + }, + "status" : { + "description" : "LXC Container status.", + "enum" : [ + "stopped", + "running" + ], + "type" : "string" + }, + "uptime" : { + "description" : "Uptime.", + "optional" : 1, + "renderer" : "duration", + "type" : "integer" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer" + } + }, + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/status/current", + "text" : "current" + }, + { + "info" : { + "POST" : { + "description" : "Start the container.", + "method" : "POST", + "name" : "vm_start", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "skiplock" : { + "description" : "Ignore locks - only root is allowed to use this option.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.PowerMgmt" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/status/start", + "text" : "start" + }, + { + "info" : { + "POST" : { + "description" : "Stop the container. This will abruptly stop all processes running in the container.", + "method" : "POST", + "name" : "vm_stop", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "skiplock" : { + "description" : "Ignore locks - only root is allowed to use this option.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.PowerMgmt" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/status/stop", + "text" : "stop" + }, + { + "info" : { + "POST" : { + "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.", + "method" : "POST", + "name" : "vm_shutdown", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "forceStop" : { + "default" : 0, + "description" : "Make sure the Container stops.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "timeout" : { + "default" : 60, + "description" : "Wait maximal timeout seconds.", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.PowerMgmt" ] ] }, "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "object" + "type" : "string" } } }, "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/status/current", - "text" : "current" + "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown", + "text" : "shutdown" }, { "info" : { "POST" : { - "description" : "Start the container.", + "description" : "Suspend the container.", "method" : "POST", - "name" : "vm_start", + "name" : "vm_suspend", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -16306,12 +19710,6 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -16338,15 +19736,15 @@ var pveapi = [ } }, "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/status/start", - "text" : "start" + "path" : "/nodes/{node}/lxc/{vmid}/status/suspend", + "text" : "suspend" }, { "info" : { "POST" : { - "description" : "Stop the container. This will abruptly stop all processes running in the container.", + "description" : "Resume the container.", "method" : "POST", - "name" : "vm_stop", + "name" : "vm_resume", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -16356,12 +19754,6 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -16388,21 +19780,233 @@ var pveapi = [ } }, "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/status/stop", - "text" : "stop" - }, + "path" : "/nodes/{node}/lxc/{vmid}/status/resume", + "text" : "resume" + } + ], + "info" : { + "GET" : { + "description" : "Directory index", + "method" : "GET", + "name" : "vmcmdidx", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "user" : "all" + }, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "subdir" : { + "type" : "string" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{subdir}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/lxc/{vmid}/status", + "text" : "status" + }, + { + "children" : [ { + "children" : [ + { + "info" : { + "POST" : { + "description" : "Rollback LXC state to specified snapshot.", + "method" : "POST", + "name" : "rollback", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "snapname" : { + "description" : "The name of the snapshot.", + "format" : "pve-configid", + "maxLength" : 40, + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Snapshot", + "VM.Snapshot.Rollback" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "the task ID.", + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback", + "text" : "rollback" + }, + { + "info" : { + "GET" : { + "description" : "Get snapshot configuration", + "method" : "GET", + "name" : "get_snapshot_config", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "snapname" : { + "description" : "The name of the snapshot.", + "format" : "pve-configid", + "maxLength" : 40, + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Snapshot", + "VM.Snapshot.Rollback" + ], + "any", + 1 + ] + }, + "proxyto" : "node", + "returns" : { + "type" : "object" + } + }, + "PUT" : { + "description" : "Update snapshot metadata.", + "method" : "PUT", + "name" : "update_snapshot_config", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "description" : { + "description" : "A textual description or comment.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "snapname" : { + "description" : "The name of the snapshot.", + "format" : "pve-configid", + "maxLength" : 40, + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Snapshot" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config", + "text" : "config" + } + ], "info" : { - "POST" : { - "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.", - "method" : "POST", - "name" : "vm_shutdown", + "DELETE" : { + "description" : "Delete a LXC snapshot.", + "method" : "DELETE", + "name" : "delsnapshot", "parameters" : { "additionalProperties" : 0, "properties" : { - "forceStop" : { - "default" : 0, - "description" : "Make sure the Container stops.", + "force" : { + "description" : "For removal from config file, even if removing disk snapshots fails.", "optional" : 1, "type" : "boolean", "typetext" : "" @@ -16413,13 +20017,12 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "timeout" : { - "default" : 60, - "description" : "Wait maximal timeout seconds.", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" + "snapname" : { + "description" : "The name of the snapshot.", + "format" : "pve-configid", + "maxLength" : 40, + "type" : "string", + "typetext" : "" }, "vmid" : { "description" : "The (unique) ID of the VM.", @@ -16435,27 +20038,21 @@ var pveapi = [ "perm", "/vms/{vmid}", [ - "VM.PowerMgmt" + "VM.Snapshot" ] ] }, "protected" : 1, "proxyto" : "node", "returns" : { + "description" : "the task ID.", "type" : "string" } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown", - "text" : "shutdown" - }, - { - "info" : { - "POST" : { - "description" : "Suspend the container.", - "method" : "POST", - "name" : "vm_suspend", + }, + "GET" : { + "description" : "", + "method" : "GET", + "name" : "snapshot_cmd_idx", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -16465,47 +20062,10 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.PowerMgmt" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/status/suspend", - "text" : "suspend" - }, - { - "info" : { - "POST" : { - "description" : "Resume the container.", - "method" : "POST", - "name" : "vm_resume", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "snapname" : { + "description" : "The name of the snapshot.", + "format" : "pve-configid", + "maxLength" : 40, "type" : "string", "typetext" : "" }, @@ -16519,31 +20079,33 @@ var pveapi = [ } }, "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.PowerMgmt" - ] - ] + "user" : "all" }, - "protected" : 1, - "proxyto" : "node", "returns" : { - "type" : "string" + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{cmd}", + "rel" : "child" + } + ], + "type" : "array" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/status/resume", - "text" : "resume" + "leaf" : 0, + "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}", + "text" : "{snapname}" } ], "info" : { "GET" : { - "description" : "Directory index", + "description" : "List all snapshots.", "method" : "GET", - "name" : "vmcmdidx", + "name" : "list", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -16563,31 +20125,105 @@ var pveapi = [ } }, "permissions" : { - "user" : "all" + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] }, + "protected" : 1, "proxyto" : "node", "returns" : { "items" : { "properties" : { - "subdir" : { + "description" : { + "description" : "Snapshot description.", + "type" : "string" + }, + "name" : { + "description" : "Snapshot identifier. Value 'current' identifies the current VM.", + "type" : "string" + }, + "parent" : { + "description" : "Parent snapshot identifier.", + "optional" : 1, "type" : "string" + }, + "snaptime" : { + "description" : "Snapshot creation time", + "optional" : 1, + "renderer" : "timestamp", + "type" : "integer" } }, "type" : "object" }, "links" : [ { - "href" : "{subdir}", + "href" : "{name}", "rel" : "child" } ], "type" : "array" } + }, + "POST" : { + "description" : "Snapshot a container.", + "method" : "POST", + "name" : "snapshot", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "description" : { + "description" : "A textual description or comment.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "snapname" : { + "description" : "The name of the snapshot.", + "format" : "pve-configid", + "maxLength" : 40, + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Snapshot" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "the task ID.", + "type" : "string" + } } }, "leaf" : 0, - "path" : "/nodes/{node}/lxc/{vmid}/status", - "text" : "status" + "path" : "/nodes/{node}/lxc/{vmid}/snapshot", + "text" : "snapshot" }, { "children" : [ @@ -16595,25 +20231,32 @@ var pveapi = [ "children" : [ { "info" : { - "POST" : { - "description" : "Rollback LXC state to specified snapshot.", - "method" : "POST", - "name" : "rollback", + "DELETE" : { + "description" : "Delete rule.", + "method" : "DELETE", + "name" : "delete_rule", "parameters" : { "additionalProperties" : 0, "properties" : { + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, - "type" : "string", - "typetext" : "" + "pos" : { + "description" : "Update rule at position .", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" }, "vmid" : { "description" : "The (unique) ID of the VM.", @@ -16629,31 +20272,20 @@ var pveapi = [ "perm", "/vms/{vmid}", [ - "VM.Snapshot", - "VM.Snapshot.Rollback" - ], - "any", - 1 + "VM.Config.Network" + ] ] }, "protected" : 1, - "proxyto" : "node", + "proxyto" : null, "returns" : { - "description" : "the task ID.", - "type" : "string" + "type" : "null" } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback", - "text" : "rollback" - }, - { - "info" : { + }, "GET" : { - "description" : "Get snapshot configuration", + "description" : "Get single rule data.", "method" : "GET", - "name" : "get_snapshot_config", + "name" : "get_rule", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -16663,12 +20295,12 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, - "type" : "string", - "typetext" : "" + "pos" : { + "description" : "Update rule at position .", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" }, "vmid" : { "description" : "The (unique) ID of the VM.", @@ -16684,44 +20316,143 @@ var pveapi = [ "perm", "/vms/{vmid}", [ - "VM.Snapshot", - "VM.Snapshot.Rollback" - ], - "any", - 1 + "VM.Audit" + ] ] }, - "proxyto" : "node", + "proxyto" : null, "returns" : { + "properties" : { + "pos" : { + "type" : "integer" + } + }, "type" : "object" } }, "PUT" : { - "description" : "Update snapshot metadata.", + "description" : "Modify rule data.", "method" : "PUT", - "name" : "update_snapshot_config", + "name" : "update_rule", "parameters" : { "additionalProperties" : 0, "properties" : { - "description" : { - "description" : "A textual description or comment.", + "action" : { + "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.", + "maxLength" : 20, + "minLength" : 2, + "optional" : 1, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", + "type" : "string" + }, + "comment" : { + "description" : "Descriptive comment.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "delete" : { + "description" : "A list of settings you want to delete.", + "format" : "pve-configid-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "dest" : { + "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.", + "format" : "pve-fw-addr-spec", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "dport" : { + "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.", + "format" : "pve-fw-dport-spec", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "enable" : { + "description" : "Flag to enable/disable a rule.", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "iface" : { + "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.", + "format" : "pve-iface", + "maxLength" : 20, + "minLength" : 2, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "macro" : { + "description" : "Use predefined standard macro.", + "maxLength" : 128, "optional" : 1, "type" : "string", "typetext" : "" }, + "moveto" : { + "description" : "Move rule to new position . Other arguments are ignored.", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, + "pos" : { + "description" : "Update rule at position .", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "proto" : { + "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.", + "format" : "pve-fw-protocol-spec", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "source" : { + "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.", + "format" : "pve-fw-addr-spec", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "sport" : { + "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.", + "format" : "pve-fw-sport-spec", + "optional" : 1, "type" : "string", "typetext" : "" }, + "type" : { + "description" : "Rule type.", + "enum" : [ + "in", + "out", + "group" + ], + "optional" : 1, + "type" : "string" + }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -16736,35 +20467,137 @@ var pveapi = [ "perm", "/vms/{vmid}", [ - "VM.Snapshot" + "VM.Config.Network" ] ] }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config", - "text" : "config" - } - ], - "info" : { - "DELETE" : { - "description" : "Delete a LXC snapshot.", - "method" : "DELETE", - "name" : "delsnapshot", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "force" : { - "description" : "For removal from config file, even if removing disk snapshots fails.", + "protected" : 1, + "proxyto" : null, + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}", + "text" : "{pos}" + } + ], + "info" : { + "GET" : { + "description" : "List rules.", + "method" : "GET", + "name" : "get_rules", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "proxyto" : null, + "returns" : { + "items" : { + "properties" : { + "pos" : { + "type" : "integer" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{pos}", + "rel" : "child" + } + ], + "type" : "array" + } + }, + "POST" : { + "description" : "Create new rule.", + "method" : "POST", + "name" : "create_rule", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "action" : { + "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.", + "maxLength" : 20, + "minLength" : 2, + "optional" : 0, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", + "type" : "string" + }, + "comment" : { + "description" : "Descriptive comment.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "dest" : { + "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.", + "format" : "pve-fw-addr-spec", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "dport" : { + "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.", + "format" : "pve-fw-dport-spec", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "enable" : { + "description" : "Flag to enable/disable a rule.", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "iface" : { + "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.", + "format" : "pve-iface", + "maxLength" : 20, + "minLength" : 2, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "macro" : { + "description" : "Use predefined standard macro.", + "maxLength" : 128, "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "string", + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -16772,13 +20605,44 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, + "pos" : { + "description" : "Update rule at position .", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "proto" : { + "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.", + "format" : "pve-fw-protocol-spec", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "source" : { + "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.", + "format" : "pve-fw-addr-spec", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "sport" : { + "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.", + "format" : "pve-fw-sport-spec", + "optional" : 1, "type" : "string", "typetext" : "" }, + "type" : { + "description" : "Rule type.", + "enum" : [ + "in", + "out", + "group" + ], + "optional" : 0, + "type" : "string" + }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -16793,183 +20657,29 @@ var pveapi = [ "perm", "/vms/{vmid}", [ - "VM.Snapshot" + "VM.Config.Network" ] ] }, "protected" : 1, - "proxyto" : "node", - "returns" : { - "description" : "the task ID.", - "type" : "string" - } - }, - "GET" : { - "description" : "", - "method" : "GET", - "name" : "snapshot_cmd_idx", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "user" : "all" - }, + "proxyto" : null, "returns" : { - "items" : { - "properties" : {}, - "type" : "object" - }, - "links" : [ - { - "href" : "{cmd}", - "rel" : "child" - } - ], - "type" : "array" + "type" : "null" } } }, "leaf" : 0, - "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}", - "text" : "{snapname}" - } - ], - "info" : { - "GET" : { - "description" : "List all snapshots.", - "method" : "GET", - "name" : "list", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : {}, - "type" : "object" - }, - "links" : [ - { - "href" : "{name}", - "rel" : "child" - } - ], - "type" : "array" - } + "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules", + "text" : "rules" }, - "POST" : { - "description" : "Snapshot a container.", - "method" : "POST", - "name" : "snapshot", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "description" : { - "description" : "A textual description or comment.", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Snapshot" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "description" : "the task ID.", - "type" : "string" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/lxc/{vmid}/snapshot", - "text" : "snapshot" - }, - { - "children" : [ { "children" : [ { "info" : { "DELETE" : { - "description" : "Delete rule.", + "description" : "Remove IP or Network alias.", "method" : "DELETE", - "name" : "delete_rule", + "name" : "remove_alias", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -16980,19 +20690,19 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "name" : { + "description" : "Alias name.", + "maxLength" : 64, + "minLength" : 2, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", + "type" : "string" + }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, - "pos" : { - "description" : "Update rule at position .", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -17012,31 +20722,30 @@ var pveapi = [ ] }, "protected" : 1, - "proxyto" : null, "returns" : { "type" : "null" } }, "GET" : { - "description" : "Get single rule data.", + "description" : "Read alias.", "method" : "GET", - "name" : "get_rule", + "name" : "read_alias", "parameters" : { "additionalProperties" : 0, "properties" : { + "name" : { + "description" : "Alias name.", + "maxLength" : 64, + "minLength" : 2, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", + "type" : "string" + }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, - "pos" : { - "description" : "Update rule at position .", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -17055,47 +20764,24 @@ var pveapi = [ ] ] }, - "proxyto" : null, "returns" : { - "properties" : { - "pos" : { - "type" : "integer" - } - }, "type" : "object" } }, "PUT" : { - "description" : "Modify rule data.", + "description" : "Update IP or Network alias.", "method" : "PUT", - "name" : "update_rule", + "name" : "update_alias", "parameters" : { "additionalProperties" : 0, "properties" : { - "action" : { - "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.", - "maxLength" : 20, - "minLength" : 2, - "optional" : 1, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" - }, - "comment" : { - "description" : "Descriptive comment.", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "delete" : { - "description" : "A list of settings you want to delete.", - "format" : "pve-configid-list", - "optional" : 1, + "cidr" : { + "description" : "Network/IP specification in CIDR format.", + "format" : "IPorCIDR", "type" : "string", "typetext" : "" }, - "dest" : { - "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.", - "format" : "pve-fw-addr-spec", + "comment" : { "optional" : 1, "type" : "string", "typetext" : "" @@ -17107,42 +20793,12 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "dport" : { - "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.", - "format" : "pve-fw-dport-spec", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "enable" : { - "description" : "Flag to enable/disable a rule.", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "iface" : { - "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.", - "format" : "pve-iface", - "maxLength" : 20, + "name" : { + "description" : "Alias name.", + "maxLength" : 64, "minLength" : 2, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "macro" : { - "description" : "Use predefined standard macro.", - "maxLength" : 128, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "moveto" : { - "description" : "Move rule to new position . Other arguments are ignored.", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", + "type" : "string" }, "node" : { "description" : "The cluster node name.", @@ -17150,42 +20806,12 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "pos" : { - "description" : "Update rule at position .", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "proto" : { - "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.", - "format" : "pve-fw-protocol-spec", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "source" : { - "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.", - "format" : "pve-fw-addr-spec", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "sport" : { - "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.", - "format" : "pve-fw-sport-spec", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "type" : { - "description" : "Rule type.", - "enum" : [ - "in", - "out", - "group" - ], + "rename" : { + "description" : "Rename an existing alias.", + "maxLength" : 64, + "minLength" : 2, "optional" : 1, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", "type" : "string" }, "vmid" : { @@ -17207,22 +20833,21 @@ var pveapi = [ ] }, "protected" : 1, - "proxyto" : null, "returns" : { "type" : "null" } } }, "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}", - "text" : "{pos}" + "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}", + "text" : "{name}" } ], "info" : { "GET" : { - "description" : "List rules.", + "description" : "List aliases", "method" : "GET", - "name" : "get_rules", + "name" : "get_aliases", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -17250,19 +20875,31 @@ var pveapi = [ ] ] }, - "proxyto" : null, "returns" : { "items" : { "properties" : { - "pos" : { - "type" : "integer" + "cidr" : { + "type" : "string" + }, + "comment" : { + "optional" : 1, + "type" : "string" + }, + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 0, + "type" : "string" + }, + "name" : { + "type" : "string" } }, "type" : "object" }, "links" : [ { - "href" : "{pos}", + "href" : "{name}", "rel" : "child" } ], @@ -17270,114 +20907,36 @@ var pveapi = [ } }, "POST" : { - "description" : "Create new rule.", + "description" : "Create IP or Network Alias.", "method" : "POST", - "name" : "create_rule", + "name" : "create_alias", "parameters" : { "additionalProperties" : 0, "properties" : { - "action" : { - "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.", - "maxLength" : 20, - "minLength" : 2, - "optional" : 0, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" - }, - "comment" : { - "description" : "Descriptive comment.", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "dest" : { - "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.", - "format" : "pve-fw-addr-spec", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "dport" : { - "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.", - "format" : "pve-fw-dport-spec", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "enable" : { - "description" : "Flag to enable/disable a rule.", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "iface" : { - "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.", - "format" : "pve-iface", - "maxLength" : 20, - "minLength" : 2, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "macro" : { - "description" : "Use predefined standard macro.", - "maxLength" : 128, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "pos" : { - "description" : "Update rule at position .", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "proto" : { - "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.", - "format" : "pve-fw-protocol-spec", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "source" : { - "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.", - "format" : "pve-fw-addr-spec", - "optional" : 1, + "cidr" : { + "description" : "Network/IP specification in CIDR format.", + "format" : "IPorCIDR", "type" : "string", "typetext" : "" - }, - "sport" : { - "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.", - "format" : "pve-fw-sport-spec", + }, + "comment" : { "optional" : 1, "type" : "string", "typetext" : "" }, - "type" : { - "description" : "Rule type.", - "enum" : [ - "in", - "out", - "group" - ], - "optional" : 0, + "name" : { + "description" : "Alias name.", + "maxLength" : 64, + "minLength" : 2, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", "type" : "string" }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -17397,36 +20956,208 @@ var pveapi = [ ] }, "protected" : 1, - "proxyto" : null, "returns" : { "type" : "null" } } }, "leaf" : 0, - "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules", - "text" : "rules" + "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases", + "text" : "aliases" }, { "children" : [ { + "children" : [ + { + "info" : { + "DELETE" : { + "description" : "Remove IP or Network from IPSet.", + "method" : "DELETE", + "name" : "remove_ip", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "cidr" : { + "description" : "Network/IP specification in CIDR format.", + "format" : "IPorCIDRorAlias", + "type" : "string", + "typetext" : "" + }, + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "name" : { + "description" : "IP set name.", + "maxLength" : 64, + "minLength" : 2, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Config.Network" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + }, + "GET" : { + "description" : "Read IP or Network settings from IPSet.", + "method" : "GET", + "name" : "read_ip", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "cidr" : { + "description" : "Network/IP specification in CIDR format.", + "format" : "IPorCIDRorAlias", + "type" : "string", + "typetext" : "" + }, + "name" : { + "description" : "IP set name.", + "maxLength" : 64, + "minLength" : 2, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "object" + } + }, + "PUT" : { + "description" : "Update IP or Network settings", + "method" : "PUT", + "name" : "update_ip", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "cidr" : { + "description" : "Network/IP specification in CIDR format.", + "format" : "IPorCIDRorAlias", + "type" : "string", + "typetext" : "" + }, + "comment" : { + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "name" : { + "description" : "IP set name.", + "maxLength" : 64, + "minLength" : 2, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "nomatch" : { + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Config.Network" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}", + "text" : "{cidr}" + } + ], "info" : { "DELETE" : { - "description" : "Remove IP or Network alias.", + "description" : "Delete IPSet", "method" : "DELETE", - "name" : "remove_alias", + "name" : "delete_ipset", "parameters" : { "additionalProperties" : 0, "properties" : { - "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, "name" : { - "description" : "Alias name.", + "description" : "IP set name.", "maxLength" : 64, "minLength" : 2, "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", @@ -17462,14 +21193,14 @@ var pveapi = [ } }, "GET" : { - "description" : "Read alias.", + "description" : "List IPSet content", "method" : "GET", - "name" : "read_alias", + "name" : "get_ipset", "parameters" : { "additionalProperties" : 0, "properties" : { "name" : { - "description" : "Alias name.", + "description" : "IP set name.", "maxLength" : 64, "minLength" : 2, "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", @@ -17488,31 +21219,59 @@ var pveapi = [ "type" : "integer", "typetext" : " (1 - N)" } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] - }, - "returns" : { - "type" : "object" + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "returns" : { + "items" : { + "properties" : { + "cidr" : { + "type" : "string" + }, + "comment" : { + "optional" : 1, + "type" : "string" + }, + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 0, + "type" : "string" + }, + "nomatch" : { + "optional" : 1, + "type" : "boolean" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{cidr}", + "rel" : "child" + } + ], + "type" : "array" } }, - "PUT" : { - "description" : "Update IP or Network alias.", - "method" : "PUT", - "name" : "update_alias", + "POST" : { + "description" : "Add IP or Network to IPSet.", + "method" : "POST", + "name" : "create_ip", "parameters" : { "additionalProperties" : 0, "properties" : { "cidr" : { "description" : "Network/IP specification in CIDR format.", - "format" : "IPorCIDR", + "format" : "IPorCIDRorAlias", "type" : "string", "typetext" : "" }, @@ -17521,15 +21280,8 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, "name" : { - "description" : "Alias name.", + "description" : "IP set name.", "maxLength" : 64, "minLength" : 2, "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", @@ -17541,13 +21293,10 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "rename" : { - "description" : "Rename an existing alias.", - "maxLength" : 64, - "minLength" : 2, + "nomatch" : { "optional" : 1, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" + "type" : "boolean", + "typetext" : "" }, "vmid" : { "description" : "The (unique) ID of the VM.", @@ -17573,16 +21322,16 @@ var pveapi = [ } } }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}", + "leaf" : 0, + "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}", "text" : "{name}" } ], "info" : { "GET" : { - "description" : "List aliases", + "description" : "List IPSets", "method" : "GET", - "name" : "get_aliases", + "name" : "ipset_index", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -17613,9 +21362,6 @@ var pveapi = [ "returns" : { "items" : { "properties" : { - "cidr" : { - "type" : "string" - }, "comment" : { "optional" : 1, "type" : "string" @@ -17627,6 +21373,10 @@ var pveapi = [ "type" : "string" }, "name" : { + "description" : "IP set name.", + "maxLength" : 64, + "minLength" : 2, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", "type" : "string" } }, @@ -17637,436 +21387,419 @@ var pveapi = [ "href" : "{name}", "rel" : "child" } - ], - "type" : "array" + ], + "type" : "array" + } + }, + "POST" : { + "description" : "Create new IPSet", + "method" : "POST", + "name" : "create_ipset", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "comment" : { + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "name" : { + "description" : "IP set name.", + "maxLength" : 64, + "minLength" : 2, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "rename" : { + "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.", + "maxLength" : 64, + "minLength" : 2, + "optional" : 1, + "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", + "type" : "string" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Config.Network" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset", + "text" : "ipset" + }, + { + "info" : { + "GET" : { + "description" : "Get VM firewall options.", + "method" : "GET", + "name" : "get_options", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "proxyto" : "node", + "returns" : { + "properties" : { + "dhcp" : { + "description" : "Enable DHCP.", + "optional" : 1, + "type" : "boolean" + }, + "enable" : { + "description" : "Enable/disable firewall rules.", + "optional" : 1, + "type" : "boolean" + }, + "ipfilter" : { + "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.", + "optional" : 1, + "type" : "boolean" + }, + "log_level_in" : { + "description" : "Log level for incoming traffic.", + "enum" : [ + "emerg", + "alert", + "crit", + "err", + "warning", + "notice", + "info", + "debug", + "nolog" + ], + "optional" : 1, + "type" : "string" + }, + "log_level_out" : { + "description" : "Log level for outgoing traffic.", + "enum" : [ + "emerg", + "alert", + "crit", + "err", + "warning", + "notice", + "info", + "debug", + "nolog" + ], + "optional" : 1, + "type" : "string" + }, + "macfilter" : { + "description" : "Enable/disable MAC address filter.", + "optional" : 1, + "type" : "boolean" + }, + "ndp" : { + "description" : "Enable NDP.", + "optional" : 1, + "type" : "boolean" + }, + "policy_in" : { + "description" : "Input policy.", + "enum" : [ + "ACCEPT", + "REJECT", + "DROP" + ], + "optional" : 1, + "type" : "string" + }, + "policy_out" : { + "description" : "Output policy.", + "enum" : [ + "ACCEPT", + "REJECT", + "DROP" + ], + "optional" : 1, + "type" : "string" + }, + "radv" : { + "description" : "Allow sending Router Advertisement.", + "optional" : 1, + "type" : "boolean" + } + }, + "type" : "object" } }, - "POST" : { - "description" : "Create IP or Network Alias.", - "method" : "POST", - "name" : "create_alias", + "PUT" : { + "description" : "Set Firewall options.", + "method" : "PUT", + "name" : "set_options", "parameters" : { "additionalProperties" : 0, "properties" : { - "cidr" : { - "description" : "Network/IP specification in CIDR format.", - "format" : "IPorCIDR", - "type" : "string", - "typetext" : "" - }, - "comment" : { + "delete" : { + "description" : "A list of settings you want to delete.", + "format" : "pve-configid-list", "optional" : 1, "type" : "string", "typetext" : "" }, - "name" : { - "description" : "Alias name.", - "maxLength" : 64, - "minLength" : 2, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" + "dhcp" : { + "description" : "Enable DHCP.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, "type" : "string", "typetext" : "" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Config.Network" - ] - ] - }, - "protected" : 1, - "returns" : { - "type" : "null" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases", - "text" : "aliases" - }, - { - "children" : [ - { - "children" : [ - { - "info" : { - "DELETE" : { - "description" : "Remove IP or Network from IPSet.", - "method" : "DELETE", - "name" : "remove_ip", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "cidr" : { - "description" : "Network/IP specification in CIDR format.", - "format" : "IPorCIDRorAlias", - "type" : "string", - "typetext" : "" - }, - "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "name" : { - "description" : "IP set name.", - "maxLength" : 64, - "minLength" : 2, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Config.Network" - ] - ] - }, - "protected" : 1, - "returns" : { - "type" : "null" - } - }, - "GET" : { - "description" : "Read IP or Network settings from IPSet.", - "method" : "GET", - "name" : "read_ip", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "cidr" : { - "description" : "Network/IP specification in CIDR format.", - "format" : "IPorCIDRorAlias", - "type" : "string", - "typetext" : "" - }, - "name" : { - "description" : "IP set name.", - "maxLength" : 64, - "minLength" : 2, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] - }, - "protected" : 1, - "returns" : { - "type" : "object" - } - }, - "PUT" : { - "description" : "Update IP or Network settings", - "method" : "PUT", - "name" : "update_ip", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "cidr" : { - "description" : "Network/IP specification in CIDR format.", - "format" : "IPorCIDRorAlias", - "type" : "string", - "typetext" : "" - }, - "comment" : { - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "name" : { - "description" : "IP set name.", - "maxLength" : 64, - "minLength" : 2, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "nomatch" : { - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Config.Network" - ] - ] - }, - "protected" : 1, - "returns" : { - "type" : "null" - } - } + "enable" : { + "description" : "Enable/disable firewall rules.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "ipfilter" : { + "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}", - "text" : "{cidr}" - } - ], - "info" : { - "DELETE" : { - "description" : "Delete IPSet", - "method" : "DELETE", - "name" : "delete_ipset", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "name" : { - "description" : "IP set name.", - "maxLength" : 64, - "minLength" : 2, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + "log_level_in" : { + "description" : "Log level for incoming traffic.", + "enum" : [ + "emerg", + "alert", + "crit", + "err", + "warning", + "notice", + "info", + "debug", + "nolog" + ], + "optional" : 1, + "type" : "string" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Config.Network" - ] - ] + "log_level_out" : { + "description" : "Log level for outgoing traffic.", + "enum" : [ + "emerg", + "alert", + "crit", + "err", + "warning", + "notice", + "info", + "debug", + "nolog" + ], + "optional" : 1, + "type" : "string" }, - "protected" : 1, - "returns" : { - "type" : "null" - } - }, - "GET" : { - "description" : "List IPSet content", - "method" : "GET", - "name" : "get_ipset", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "name" : { - "description" : "IP set name.", - "maxLength" : 64, - "minLength" : 2, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + "macfilter" : { + "description" : "Enable/disable MAC address filter.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] + "ndp" : { + "description" : "Enable NDP.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "returns" : { - "items" : { - "properties" : { - "cidr" : { - "type" : "string" - }, - "comment" : { - "optional" : 1, - "type" : "string" - }, - "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, - "optional" : 0, - "type" : "string" - }, - "nomatch" : { - "optional" : 1, - "type" : "boolean" - } - }, - "type" : "object" - }, - "links" : [ - { - "href" : "{cidr}", - "rel" : "child" - } + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "policy_in" : { + "description" : "Input policy.", + "enum" : [ + "ACCEPT", + "REJECT", + "DROP" ], - "type" : "array" + "optional" : 1, + "type" : "string" + }, + "policy_out" : { + "description" : "Output policy.", + "enum" : [ + "ACCEPT", + "REJECT", + "DROP" + ], + "optional" : 1, + "type" : "string" + }, + "radv" : { + "description" : "Allow sending Router Advertisement.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" } - }, - "POST" : { - "description" : "Add IP or Network to IPSet.", - "method" : "POST", - "name" : "create_ip", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "cidr" : { - "description" : "Network/IP specification in CIDR format.", - "format" : "IPorCIDRorAlias", - "type" : "string", - "typetext" : "" - }, - "comment" : { - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "name" : { - "description" : "IP set name.", - "maxLength" : 64, - "minLength" : 2, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "nomatch" : { - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Config.Network" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/firewall/options", + "text" : "options" + }, + { + "info" : { + "GET" : { + "description" : "Read firewall log", + "method" : "GET", + "name" : "log", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "limit" : { + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Config.Network" - ] - ] + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "protected" : 1, - "returns" : { - "type" : "null" + "start" : { + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" } } }, - "leaf" : 0, - "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}", - "text" : "{name}" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Console" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "n" : { + "description" : "Line number", + "type" : "integer" + }, + "t" : { + "description" : "Line text", + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + } } - ], + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/firewall/log", + "text" : "log" + }, + { "info" : { "GET" : { - "description" : "List IPSets", + "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.", "method" : "GET", - "name" : "ipset_index", + "name" : "refs", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -18076,6 +21809,15 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "type" : { + "description" : "Only list references of specified type.", + "enum" : [ + "alias", + "ipset" + ], + "optional" : 1, + "type" : "string" + }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -18085,535 +21827,607 @@ var pveapi = [ } } }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "returns" : { + "items" : { + "properties" : { + "comment" : { + "optional" : 1, + "type" : "string" + }, + "name" : { + "type" : "string" + }, + "type" : { + "enum" : [ + "alias", + "ipset" + ], + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs", + "text" : "refs" + } + ], + "info" : { + "GET" : { + "description" : "Directory index.", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "user" : "all" + }, + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/lxc/{vmid}/firewall", + "text" : "firewall" + }, + { + "info" : { + "GET" : { + "description" : "Read VM RRD statistics (returns PNG)", + "method" : "GET", + "name" : "rrd", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "cf" : { + "description" : "The RRD consolidation function", + "enum" : [ + "AVERAGE", + "MAX" + ], + "optional" : 1, + "type" : "string" + }, + "ds" : { + "description" : "The list of datasources you want to display.", + "format" : "pve-configid-list", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "timeframe" : { + "description" : "Specify the time frame you are interested in.", + "enum" : [ + "hour", + "day", + "week", + "month", + "year" + ], + "type" : "string" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "protected" : 1, + "returns" : { + "properties" : { + "filename" : { + "type" : "string" + } + }, + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/rrd", + "text" : "rrd" + }, + { + "info" : { + "GET" : { + "description" : "Read VM RRD statistics", + "method" : "GET", + "name" : "rrddata", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "cf" : { + "description" : "The RRD consolidation function", + "enum" : [ + "AVERAGE", + "MAX" + ], + "optional" : 1, + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "returns" : { - "items" : { - "properties" : { - "comment" : { - "optional" : 1, - "type" : "string" - }, - "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, - "optional" : 0, - "type" : "string" - }, - "name" : { - "description" : "IP set name.", - "maxLength" : 64, - "minLength" : 2, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" - } - }, - "type" : "object" - }, - "links" : [ - { - "href" : "{name}", - "rel" : "child" - } + "timeframe" : { + "description" : "Specify the time frame you are interested in.", + "enum" : [ + "hour", + "day", + "week", + "month", + "year" ], - "type" : "array" + "type" : "string" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] + }, + "protected" : 1, + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" }, - "POST" : { - "description" : "Create new IPSet", - "method" : "POST", - "name" : "create_ipset", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "comment" : { - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "name" : { - "description" : "IP set name.", - "maxLength" : 64, - "minLength" : 2, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "rename" : { - "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.", - "maxLength" : 64, - "minLength" : 2, - "optional" : 1, - "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+", - "type" : "string" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/rrddata", + "text" : "rrddata" + }, + { + "info" : { + "POST" : { + "description" : "Creates a TCP VNC proxy connections.", + "method" : "POST", + "name" : "vncproxy", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "height" : { + "description" : "sets the height of the console in pixels.", + "maximum" : 2160, + "minimum" : 16, + "optional" : 1, + "type" : "integer", + "typetext" : " (16 - 2160)" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Config.Network" - ] - ] + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "protected" : 1, - "returns" : { - "type" : "null" + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "websocket" : { + "description" : "use websocket instead of standard VNC.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "width" : { + "description" : "sets the width of the console in pixels.", + "maximum" : 4096, + "minimum" : 16, + "optional" : 1, + "type" : "integer", + "typetext" : " (16 - 4096)" } } }, - "leaf" : 0, - "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset", - "text" : "ipset" - }, - { - "info" : { - "GET" : { - "description" : "Get VM firewall options.", - "method" : "GET", - "name" : "get_options", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Console" + ] + ] + }, + "protected" : 1, + "returns" : { + "additionalProperties" : 0, + "properties" : { + "cert" : { + "type" : "string" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] + "port" : { + "type" : "integer" + }, + "ticket" : { + "type" : "string" + }, + "upid" : { + "type" : "string" + }, + "user" : { + "type" : "string" + } + } + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/vncproxy", + "text" : "vncproxy" + }, + { + "info" : { + "POST" : { + "description" : "Creates a TCP proxy connection.", + "method" : "POST", + "name" : "termproxy", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "proxyto" : "node", - "returns" : { - "properties" : { - "dhcp" : { - "description" : "Enable DHCP.", - "optional" : 1, - "type" : "boolean" - }, - "enable" : { - "description" : "Enable/disable firewall rules.", - "optional" : 1, - "type" : "boolean" - }, - "ipfilter" : { - "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.", - "optional" : 1, - "type" : "boolean" - }, - "log_level_in" : { - "description" : "Log level for incoming traffic.", - "enum" : [ - "emerg", - "alert", - "crit", - "err", - "warning", - "notice", - "info", - "debug", - "nolog" - ], - "optional" : 1, - "type" : "string" - }, - "log_level_out" : { - "description" : "Log level for outgoing traffic.", - "enum" : [ - "emerg", - "alert", - "crit", - "err", - "warning", - "notice", - "info", - "debug", - "nolog" - ], - "optional" : 1, - "type" : "string" - }, - "macfilter" : { - "description" : "Enable/disable MAC address filter.", - "optional" : 1, - "type" : "boolean" - }, - "ndp" : { - "description" : "Enable NDP.", - "optional" : 1, - "type" : "boolean" - }, - "policy_in" : { - "description" : "Input policy.", - "enum" : [ - "ACCEPT", - "REJECT", - "DROP" - ], - "optional" : 1, - "type" : "string" - }, - "policy_out" : { - "description" : "Output policy.", - "enum" : [ - "ACCEPT", - "REJECT", - "DROP" - ], - "optional" : 1, - "type" : "string" - }, - "radv" : { - "description" : "Allow sending Router Advertisement.", - "optional" : 1, - "type" : "boolean" - } - }, - "type" : "object" + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" } - }, - "PUT" : { - "description" : "Set Firewall options.", - "method" : "PUT", - "name" : "set_options", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "delete" : { - "description" : "A list of settings you want to delete.", - "format" : "pve-configid-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "dhcp" : { - "description" : "Enable DHCP.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "enable" : { - "description" : "Enable/disable firewall rules.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "ipfilter" : { - "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "log_level_in" : { - "description" : "Log level for incoming traffic.", - "enum" : [ - "emerg", - "alert", - "crit", - "err", - "warning", - "notice", - "info", - "debug", - "nolog" - ], - "optional" : 1, - "type" : "string" - }, - "log_level_out" : { - "description" : "Log level for outgoing traffic.", - "enum" : [ - "emerg", - "alert", - "crit", - "err", - "warning", - "notice", - "info", - "debug", - "nolog" - ], - "optional" : 1, - "type" : "string" - }, - "macfilter" : { - "description" : "Enable/disable MAC address filter.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "ndp" : { - "description" : "Enable NDP.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "policy_in" : { - "description" : "Input policy.", - "enum" : [ - "ACCEPT", - "REJECT", - "DROP" - ], - "optional" : 1, - "type" : "string" - }, - "policy_out" : { - "description" : "Output policy.", - "enum" : [ - "ACCEPT", - "REJECT", - "DROP" - ], - "optional" : 1, - "type" : "string" - }, - "radv" : { - "description" : "Allow sending Router Advertisement.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Console" + ] + ] + }, + "protected" : 1, + "returns" : { + "additionalProperties" : 0, + "properties" : { + "port" : { + "type" : "integer" + }, + "ticket" : { + "type" : "string" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Config.Network" - ] - ] + "upid" : { + "type" : "string" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" + "user" : { + "type" : "string" + } + } + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/termproxy", + "text" : "termproxy" + }, + { + "info" : { + "GET" : { + "description" : "Opens a weksocket for VNC traffic.", + "method" : "GET", + "name" : "vncwebsocket", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "port" : { + "description" : "Port number returned by previous vncproxy call.", + "maximum" : 5999, + "minimum" : 5900, + "type" : "integer", + "typetext" : " (5900 - 5999)" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "vncticket" : { + "description" : "Ticket from previous call to vncproxy.", + "maxLength" : 512, + "type" : "string", + "typetext" : "" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/firewall/options", - "text" : "options" - }, - { - "info" : { - "GET" : { - "description" : "Read firewall log", - "method" : "GET", - "name" : "log", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "limit" : { - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "start" : { - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Console" + ] + ], + "description" : "You also need to pass a valid ticket (vncticket)." + }, + "returns" : { + "properties" : { + "port" : { + "type" : "string" + } + }, + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket", + "text" : "vncwebsocket" + }, + { + "info" : { + "POST" : { + "description" : "Returns a SPICE configuration to connect to the CT.", + "method" : "POST", + "name" : "spiceproxy", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Console" - ] - ] + "proxy" : { + "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As reasonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).", + "format" : "address", + "optional" : 1, + "type" : "string", + "typetext" : "" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "n" : { - "description" : "Line number", - "type" : "integer" - }, - "t" : { - "description" : "Line text", - "type" : "string" - } - }, - "type" : "object" - }, - "type" : "array" + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/firewall/log", - "text" : "log" - }, - { - "info" : { - "GET" : { - "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.", - "method" : "GET", - "name" : "refs", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "type" : { - "description" : "Only list references of specified type.", - "enum" : [ - "alias", - "ipset" - ], - "optional" : 1, - "type" : "string" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Console" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "additionalProperties" : 1, + "description" : "Returned values can be directly passed to the 'remote-viewer' application.", + "properties" : { + "host" : { + "type" : "string" + }, + "password" : { + "type" : "string" + }, + "proxy" : { + "type" : "string" + }, + "tls-port" : { + "type" : "integer" + }, + "type" : { + "type" : "string" + } + } + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy", + "text" : "spiceproxy" + }, + { + "info" : { + "POST" : { + "description" : "Migrate the container to another node. Creates a new migration task.", + "method" : "POST", + "name" : "migrate_vm", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "force" : { + "description" : "Force migration despite local bind / device mounts. NOTE: deprecated, use 'shared' property of mount point instead.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "returns" : { - "items" : { - "properties" : { - "comment" : { - "optional" : 1, - "type" : "string" - }, - "name" : { - "type" : "string" - }, - "type" : { - "enum" : [ - "alias", - "ipset" - ], - "type" : "string" - } - }, - "type" : "object" - }, - "type" : "array" + "online" : { + "description" : "Use online/live migration.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "restart" : { + "description" : "Use restart migration", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "target" : { + "description" : "Target node.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "timeout" : { + "default" : 180, + "description" : "Timeout in seconds for shutdown for restart migration", + "optional" : 1, + "type" : "integer", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs", - "text" : "refs" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Migrate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "the task ID.", + "type" : "string" + } } - ], + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/migrate", + "text" : "migrate" + }, + { "info" : { "GET" : { - "description" : "Directory index.", + "description" : "Check if feature for virtual machine is available.", "method" : "GET", - "name" : "index", + "name" : "vm_feature", "parameters" : { "additionalProperties" : 0, "properties" : { + "feature" : { + "description" : "Feature to check.", + "enum" : [ + "snapshot", + "clone", + "copy" + ], + "type" : "string" + }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, + "snapname" : { + "description" : "The name of the snapshot.", + "format" : "pve-configid", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -18624,68 +22438,145 @@ var pveapi = [ } }, "permissions" : { - "user" : "all" + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Audit" + ] + ] }, + "protected" : 1, + "proxyto" : "node", "returns" : { - "items" : { - "properties" : {}, - "type" : "object" + "properties" : { + "hasFeature" : { + "type" : "boolean" + } }, - "links" : [ - { - "href" : "{name}", - "rel" : "child" + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/feature", + "text" : "feature" + }, + { + "info" : { + "POST" : { + "description" : "Create a Template.", + "method" : "POST", + "name" : "template", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Allocate" + ] ], - "type" : "array" + "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" } } }, - "leaf" : 0, - "path" : "/nodes/{node}/lxc/{vmid}/firewall", - "text" : "firewall" + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/template", + "text" : "template" }, { "info" : { - "GET" : { - "description" : "Read VM RRD statistics (returns PNG)", - "method" : "GET", - "name" : "rrd", + "POST" : { + "description" : "Create a container clone/copy", + "method" : "POST", + "name" : "clone_vm", "parameters" : { "additionalProperties" : 0, "properties" : { - "cf" : { - "description" : "The RRD consolidation function", - "enum" : [ - "AVERAGE", - "MAX" - ], + "description" : { + "description" : "Description for the new CT.", "optional" : 1, - "type" : "string" + "type" : "string", + "typetext" : "" }, - "ds" : { - "description" : "The list of datasources you want to display.", - "format" : "pve-configid-list", + "full" : { + "description" : "Create a full copy of all disks. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "hostname" : { + "description" : "Set a hostname for the new CT.", + "format" : "dns-name", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "newid" : { + "description" : "VMID for the clone.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "pool" : { + "description" : "Add the new CT to the specified pool.", + "format" : "pve-poolid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "snapname" : { + "description" : "The name of the snapshot.", + "format" : "pve-configid", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "storage" : { + "description" : "Target storage for full clone.", + "format" : "pve-storage-id", + "optional" : 1, "type" : "string", "typetext" : "" }, - "node" : { - "description" : "The cluster node name.", + "target" : { + "description" : "Target node. Only allowed if the original VM is on shared storage.", "format" : "pve-node", + "optional" : 1, "type" : "string", "typetext" : "" }, - "timeframe" : { - "description" : "Specify the time frame you are interested in.", - "enum" : [ - "hour", - "day", - "week", - "month", - "year" - ], - "type" : "string" - }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -18697,44 +22588,324 @@ var pveapi = [ }, "permissions" : { "check" : [ - "perm", - "/vms/{vmid}", + "and", [ - "VM.Audit" + "perm", + "/vms/{vmid}", + [ + "VM.Clone" + ] + ], + [ + "or", + [ + "perm", + "/vms/{newid}", + [ + "VM.Allocate" + ] + ], + [ + "perm", + "/pool/{pool}", + [ + "VM.Allocate" + ], + "require_param", + "pool" + ] ] - ] + ], + "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage." }, "protected" : 1, + "proxyto" : "node", "returns" : { - "properties" : { - "filename" : { - "type" : "string" - } - }, - "type" : "object" + "type" : "string" } } }, "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/rrd", - "text" : "rrd" + "path" : "/nodes/{node}/lxc/{vmid}/clone", + "text" : "clone" }, { "info" : { - "GET" : { - "description" : "Read VM RRD statistics", - "method" : "GET", - "name" : "rrddata", + "PUT" : { + "description" : "Resize a container mount point.", + "method" : "PUT", + "name" : "resize_vm", "parameters" : { "additionalProperties" : 0, "properties" : { - "cf" : { - "description" : "The RRD consolidation function", + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "disk" : { + "description" : "The disk you want to resize.", "enum" : [ - "AVERAGE", - "MAX" + "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" ], - "optional" : 1, "type" : "string" }, "node" : { @@ -18743,15 +22914,9 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "timeframe" : { - "description" : "Specify the time frame you are interested in.", - "enum" : [ - "hour", - "day", - "week", - "month", - "year" - ], + "size" : { + "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.", + "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?", "type" : "string" }, "vmid" : { @@ -18768,40 +22933,46 @@ var pveapi = [ "perm", "/vms/{vmid}", [ - "VM.Audit" - ] + "VM.Config.Disk" + ], + "any", + 1 ] }, "protected" : 1, + "proxyto" : "node", "returns" : { - "items" : { - "properties" : {}, - "type" : "object" - }, - "type" : "array" + "description" : "the task ID.", + "type" : "string" } } }, "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/rrddata", - "text" : "rrddata" + "path" : "/nodes/{node}/lxc/{vmid}/resize", + "text" : "resize" }, { "info" : { "POST" : { - "description" : "Creates a TCP VNC proxy connections.", + "description" : "Move a rootfs-/mp-volume to a different storage", "method" : "POST", - "name" : "vncproxy", + "name" : "move_volume", "parameters" : { "additionalProperties" : 0, "properties" : { - "height" : { - "description" : "sets the height of the console in pixels.", - "maximum" : 2160, - "minimum" : 16, + "delete" : { + "default" : 0, + "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.", "optional" : 1, - "type" : "integer", - "typetext" : " (16 - 2160)" + "type" : "boolean", + "typetext" : "" + }, + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -18809,6 +22980,12 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "storage" : { + "description" : "Target Storage.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" + }, "vmid" : { "description" : "The (unique) ID of the VM.", "format" : "pve-vmid", @@ -18816,710 +22993,1113 @@ var pveapi = [ "type" : "integer", "typetext" : " (1 - N)" }, - "websocket" : { - "description" : "use websocket instead of standard VNC.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "width" : { - "description" : "sets the width of the console in pixels.", - "maximum" : 4096, - "minimum" : 16, - "optional" : 1, - "type" : "integer", - "typetext" : " (16 - 4096)" + "volume" : { + "description" : "Volume which will be moved.", + "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" + ], + "type" : "string" } } }, "permissions" : { "check" : [ - "perm", - "/vms/{vmid}", + "and", [ - "VM.Console" + "perm", + "/vms/{vmid}", + [ + "VM.Config.Disk" + ] + ], + [ + "perm", + "/storage/{storage}", + [ + "Datastore.AllocateSpace" + ] ] - ] + ], + "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage." }, "protected" : 1, + "proxyto" : "node", "returns" : { - "additionalProperties" : 0, - "properties" : { - "cert" : { - "type" : "string" - }, - "port" : { - "type" : "integer" - }, - "ticket" : { - "type" : "string" - }, - "upid" : { - "type" : "string" - }, - "user" : { - "type" : "string" - } - } + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/move_volume", + "text" : "move_volume" + } + ], + "info" : { + "DELETE" : { + "description" : "Destroy the container (also delete all uses files).", + "method" : "DELETE", + "name" : "destroy_vm", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + }, + "GET" : { + "description" : "Directory index", + "method" : "GET", + "name" : "vmdiridx", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/vncproxy", - "text" : "vncproxy" - }, - { - "info" : { - "POST" : { - "description" : "Creates a TCP proxy connection.", - "method" : "POST", - "name" : "termproxy", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } + "permissions" : { + "user" : "all" + }, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "subdir" : { + "type" : "string" } }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Console" - ] - ] - }, - "protected" : 1, - "returns" : { - "additionalProperties" : 0, - "properties" : { - "port" : { - "type" : "integer" - }, - "ticket" : { - "type" : "string" - }, - "upid" : { - "type" : "string" - }, - "user" : { - "type" : "string" - } - } + "type" : "object" + }, + "links" : [ + { + "href" : "{subdir}", + "rel" : "child" } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/lxc/{vmid}", + "text" : "{vmid}" + } + ], + "info" : { + "GET" : { + "description" : "LXC container index (per node).", + "method" : "GET", + "name" : "vmlist", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "description" : "Only list CTs where you have VM.Audit permissons on /vms/.", + "user" : "all" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "cpus" : { + "description" : "Maximum usable CPUs.", + "optional" : 1, + "type" : "number" + }, + "maxdisk" : { + "description" : "Root disk size in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "maxmem" : { + "description" : "Maximum memory in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "maxswap" : { + "description" : "Maximum SWAP memory in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "name" : { + "description" : "Container name.", + "optional" : 1, + "type" : "string" + }, + "status" : { + "description" : "LXC Container status.", + "enum" : [ + "stopped", + "running" + ], + "type" : "string" + }, + "uptime" : { + "description" : "Uptime.", + "optional" : 1, + "renderer" : "duration", + "type" : "integer" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer" } }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/termproxy", - "text" : "termproxy" + "type" : "object" }, - { - "info" : { - "GET" : { - "description" : "Opens a weksocket for VNC traffic.", - "method" : "GET", - "name" : "vncwebsocket", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "port" : { - "description" : "Port number returned by previous vncproxy call.", - "maximum" : 5999, - "minimum" : 5900, - "type" : "integer", - "typetext" : " (5900 - 5999)" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - }, - "vncticket" : { - "description" : "Ticket from previous call to vncproxy.", - "maxLength" : 512, - "type" : "string", - "typetext" : "" - } - } + "links" : [ + { + "href" : "{vmid}", + "rel" : "child" + } + ], + "type" : "array" + } + }, + "POST" : { + "description" : "Create or restore a container.", + "method" : "POST", + "name" : "create_vm", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "arch" : { + "default" : "amd64", + "description" : "OS architecture type.", + "enum" : [ + "amd64", + "i386", + "arm64", + "armhf" + ], + "optional" : 1, + "type" : "string" + }, + "bwlimit" : { + "description" : "Override i/o bandwidth limit (in KiB/s).", + "minimum" : "0", + "optional" : 1, + "type" : "number", + "typetext" : " (0 - N)" + }, + "cmode" : { + "default" : "tty", + "description" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login).", + "enum" : [ + "shell", + "console", + "tty" + ], + "optional" : 1, + "type" : "string" + }, + "console" : { + "default" : 1, + "description" : "Attach a console device (/dev/console) to the container.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "cores" : { + "description" : "The number of cores assigned to the container. A container can use all available cores by default.", + "maximum" : 128, + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - 128)" + }, + "cpulimit" : { + "default" : 0, + "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.", + "maximum" : 128, + "minimum" : 0, + "optional" : 1, + "type" : "number", + "typetext" : " (0 - 128)" + }, + "cpuunits" : { + "default" : 1024, + "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.", + "maximum" : 500000, + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - 500000)" + }, + "description" : { + "description" : "Container description. Only used on the configuration web interface.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "features" : { + "description" : "Allow containers access to advanced features.", + "format" : { + "keyctl" : { + "default" : 0, + "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.", + "optional" : 1, + "type" : "boolean" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Console" - ] - ], - "description" : "You also need to pass a valid ticket (vncticket)." + "mount" : { + "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.", + "format_description" : "fstype;fstype;...", + "optional" : 1, + "pattern" : "(?^:[a-zA-Z0-9; ]+)", + "type" : "string" }, - "returns" : { - "properties" : { - "port" : { - "type" : "string" - } - }, - "type" : "object" + "nesting" : { + "default" : 0, + "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.", + "optional" : 1, + "type" : "boolean" } - } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[keyctl=<1|0>] [,mount=] [,nesting=<1|0>]" }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket", - "text" : "vncwebsocket" - }, - { - "info" : { - "POST" : { - "description" : "Returns a SPICE configuration to connect to the CT.", - "method" : "POST", - "name" : "spiceproxy", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "proxy" : { - "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).", - "format" : "address", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + "force" : { + "description" : "Allow to overwrite existing container.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "hostname" : { + "description" : "Set a host name for the container.", + "format" : "dns-name", + "maxLength" : 255, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ignore-unpack-errors" : { + "description" : "Ignore errors when extracting the template.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "lock" : { + "description" : "Lock/unlock the VM.", + "enum" : [ + "backup", + "disk", + "migrate", + "mounted", + "rollback", + "snapshot", + "snapshot-delete" + ], + "optional" : 1, + "type" : "string" + }, + "memory" : { + "default" : 512, + "description" : "Amount of RAM for the VM in MB.", + "minimum" : 16, + "optional" : 1, + "type" : "integer", + "typetext" : " (16 - N)" + }, + "mp[n]" : { + "description" : "Use volume as container mount point.", + "format" : { + "acl" : { + "description" : "Explicitly enable or disable ACL support.", + "optional" : 1, + "type" : "boolean" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Console" - ] - ] + "backup" : { + "description" : "Whether to include the mount point in backups.", + "optional" : 1, + "type" : "boolean", + "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)." }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "additionalProperties" : 1, - "description" : "Returned values can be directly passed to the 'remote-viewer' application.", - "properties" : { - "host" : { - "type" : "string" - }, - "password" : { - "type" : "string" - }, - "proxy" : { - "type" : "string" - }, - "tls-port" : { - "type" : "integer" - }, - "type" : { - "type" : "string" - } - } - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy", - "text" : "spiceproxy" - }, - { - "info" : { - "POST" : { - "description" : "Migrate the container to another node. Creates a new migration task.", - "method" : "POST", - "name" : "migrate_vm", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "force" : { - "description" : "Force migration despite local bind / device mounts. NOTE: deprecated, use 'shared' property of mount point instead.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "online" : { - "description" : "Use online/live migration.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "restart" : { - "description" : "Use restart migration", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "target" : { - "description" : "Target node.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "timeout" : { - "default" : 180, - "description" : "Timeout in seconds for shutdown for restart migration", - "optional" : 1, - "type" : "integer", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + "mp" : { + "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).", + "format" : "pve-lxc-mp-string", + "format_description" : "Path", + "type" : "string", + "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons." }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Migrate" - ] - ] + "quota" : { + "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)", + "optional" : 1, + "type" : "boolean" + }, + "replicate" : { + "default" : 1, + "description" : "Will include this volume to a storage replica job.", + "optional" : 1, + "type" : "boolean" + }, + "ro" : { + "description" : "Read-only mount point", + "optional" : 1, + "type" : "boolean" + }, + "shared" : { + "default" : 0, + "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')", + "optional" : 1, + "type" : "boolean", + "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "description" : "the task ID.", + "size" : { + "description" : "Volume size (read only value).", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "volume" : { + "default_key" : 1, + "description" : "Volume, device or directory to mount into the container.", + "format" : "pve-lxc-mp-string", + "format_description" : "volume", "type" : "string" } - } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[volume=] ,mp= [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=]" }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/migrate", - "text" : "migrate" - }, - { - "info" : { - "GET" : { - "description" : "Check if feature for virtual machine is available.", - "method" : "GET", - "name" : "vm_feature", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "feature" : { - "description" : "Feature to check.", - "enum" : [ - "snapshot", - "clone", - "copy" - ], - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + "nameserver" : { + "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.", + "format" : "address-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "net[n]" : { + "description" : "Specifies network interfaces for the container.", + "format" : { + "bridge" : { + "description" : "Bridge to attach the network device to.", + "format_description" : "bridge", + "optional" : 1, + "pattern" : "[-_.\\w\\d]+", + "type" : "string" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] + "firewall" : { + "description" : "Controls whether this interface's firewall rules should be used.", + "optional" : 1, + "type" : "boolean" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "properties" : { - "hasFeature" : { - "type" : "boolean" - } - }, - "type" : "object" + "gw" : { + "description" : "Default gateway for IPv4 traffic.", + "format" : "ipv4", + "format_description" : "GatewayIPv4", + "optional" : 1, + "type" : "string" + }, + "gw6" : { + "description" : "Default gateway for IPv6 traffic.", + "format" : "ipv6", + "format_description" : "GatewayIPv6", + "optional" : 1, + "type" : "string" + }, + "hwaddr" : { + "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)", + "format_description" : "XX:XX:XX:XX:XX:XX", + "optional" : 1, + "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})", + "type" : "string" + }, + "ip" : { + "description" : "IPv4 address in CIDR format.", + "format" : "pve-ipv4-config", + "format_description" : "(IPv4/CIDR|dhcp|manual)", + "optional" : 1, + "type" : "string" + }, + "ip6" : { + "description" : "IPv6 address in CIDR format.", + "format" : "pve-ipv6-config", + "format_description" : "(IPv6/CIDR|auto|dhcp|manual)", + "optional" : 1, + "type" : "string" + }, + "mtu" : { + "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)", + "minimum" : 64, + "optional" : 1, + "type" : "integer" + }, + "name" : { + "description" : "Name of the network device as seen from inside the container. (lxc.network.name)", + "format_description" : "string", + "pattern" : "[-_.\\w\\d]+", + "type" : "string" + }, + "rate" : { + "description" : "Apply rate limiting to the interface", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" + }, + "tag" : { + "description" : "VLAN tag for this interface.", + "maximum" : 4094, + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "trunks" : { + "description" : "VLAN ids to pass through the interface", + "format_description" : "vlanid[;vlanid...]", + "optional" : 1, + "pattern" : "(?^:\\d+(?:;\\d+)*)", + "type" : "string" + }, + "type" : { + "description" : "Network interface type.", + "enum" : [ + "veth" + ], + "optional" : 1, + "type" : "string" } - } + }, + "optional" : 1, + "type" : "string", + "typetext" : "name= [,bridge=] [,firewall=<1|0>] [,gw=] [,gw6=] [,hwaddr=] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=] [,rate=] [,tag=] [,trunks=] [,type=]" }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/feature", - "text" : "feature" - }, - { - "info" : { - "POST" : { - "description" : "Create a Template.", - "method" : "POST", - "name" : "template", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "onboot" : { + "default" : 0, + "description" : "Specifies whether a VM will be started during system bootup.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "ostemplate" : { + "description" : "The OS template or backup file.", + "maxLength" : 255, + "type" : "string", + "typetext" : "" + }, + "ostype" : { + "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.", + "enum" : [ + "debian", + "ubuntu", + "centos", + "fedora", + "opensuse", + "archlinux", + "alpine", + "gentoo", + "unmanaged" + ], + "optional" : 1, + "type" : "string" + }, + "password" : { + "description" : "Sets root password inside container.", + "minLength" : 5, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "pool" : { + "description" : "Add the VM to the specified pool.", + "format" : "pve-poolid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "protection" : { + "default" : 0, + "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "restore" : { + "description" : "Mark this as restore task.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "rootfs" : { + "description" : "Use volume as container root.", + "format" : { + "acl" : { + "description" : "Explicitly enable or disable ACL support.", + "optional" : 1, + "type" : "boolean" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Allocate" - ] - ], - "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}" + "quota" : { + "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)", + "optional" : 1, + "type" : "boolean" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" + "replicate" : { + "default" : 1, + "description" : "Will include this volume to a storage replica job.", + "optional" : 1, + "type" : "boolean" + }, + "ro" : { + "description" : "Read-only mount point", + "optional" : 1, + "type" : "boolean" + }, + "shared" : { + "default" : 0, + "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')", + "optional" : 1, + "type" : "boolean", + "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!" + }, + "size" : { + "description" : "Volume size (read only value).", + "format" : "disk-size", + "format_description" : "DiskSize", + "optional" : 1, + "type" : "string" + }, + "volume" : { + "default_key" : 1, + "description" : "Volume, device or directory to mount into the container.", + "format" : "pve-lxc-mp-string", + "format_description" : "volume", + "type" : "string" } - } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[volume=] [,acl=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=]" }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/template", - "text" : "template" - }, + "searchdomain" : { + "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.", + "format" : "dns-name-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ssh-public-keys" : { + "description" : "Setup public SSH keys (one key per line, OpenSSH format).", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "start" : { + "default" : 0, + "description" : "Start the CT after its creation finished successfully.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "startup" : { + "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.", + "format" : "pve-startup-order", + "optional" : 1, + "type" : "string", + "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] " + }, + "storage" : { + "default" : "local", + "description" : "Default Storage.", + "format" : "pve-storage-id", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "swap" : { + "default" : 512, + "description" : "Amount of SWAP for the VM in MB.", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "template" : { + "default" : 0, + "description" : "Enable/disable Template.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "tty" : { + "default" : 2, + "description" : "Specify the number of tty available to the container", + "maximum" : 6, + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - 6)" + }, + "unprivileged" : { + "default" : 0, + "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "unused[n]" : { + "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.", + "format" : "pve-volume-id", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore, it is enough if the user has 'VM.Backup' permission and the VM already exists. You also need 'Datastore.AllocateSpace' permissions on the storage.", + "user" : "all" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/lxc", + "text" : "lxc" + }, + { + "children" : [ + { + "children" : [ { - "info" : { - "POST" : { - "description" : "Create a container clone/copy", - "method" : "POST", - "name" : "clone_vm", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "description" : { - "description" : "Description for the new CT.", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "full" : { - "description" : "Create a full copy of all disks. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "hostname" : { - "description" : "Set a hostname for the new CT.", - "format" : "dns-name", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "newid" : { - "description" : "VMID for the clone.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "pool" : { - "description" : "Add the new CT to the specified pool.", - "format" : "pve-poolid", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "storage" : { - "description" : "Target storage for full clone.", - "format" : "pve-storage-id", - "optional" : 1, - "type" : "string", - "typetext" : "" + "children" : [ + { + "info" : { + "POST" : { + "description" : "ceph osd in", + "method" : "POST", + "name" : "in", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "osdid" : { + "description" : "OSD ID", + "type" : "integer", + "typetext" : "" + } + } }, - "target" : { - "description" : "Target node. Only allowed if the original VM is on shared storage.", - "format" : "pve-node", - "optional" : 1, - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" } } }, - "permissions" : { - "check" : [ - "and", - [ - "perm", - "/vms/{vmid}", - [ - "VM.Clone" - ] - ], - [ - "or", - [ + "leaf" : 1, + "path" : "/nodes/{node}/ceph/osd/{osdid}/in", + "text" : "in" + }, + { + "info" : { + "POST" : { + "description" : "ceph osd out", + "method" : "POST", + "name" : "out", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "osdid" : { + "description" : "OSD ID", + "type" : "integer", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ "perm", - "/vms/{newid}", + "/", [ - "VM.Allocate" + "Sys.Modify" ] - ], - [ - "perm", - "/pool/{pool}", - [ - "VM.Allocate" - ], - "require_param", - "pool" ] - ] - ], - "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage." - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/clone", - "text" : "clone" - }, - { - "info" : { - "PUT" : { - "description" : "Resize a container mount point.", - "method" : "PUT", - "name" : "resize_vm", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "disk" : { - "description" : "The disk you want to resize.", - "enum" : [ - "rootfs", - "mp0", - "mp1", - "mp2", - "mp3", - "mp4", - "mp5", - "mp6", - "mp7", - "mp8", - "mp9" - ], - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" }, - "size" : { - "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.", - "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?", - "type" : "string" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" } } }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Config.Disk" - ], - "any", - 1 - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "description" : "the task ID.", - "type" : "string" - } + "leaf" : 1, + "path" : "/nodes/{node}/ceph/osd/{osdid}/out", + "text" : "out" } - }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/resize", - "text" : "resize" - }, - { + ], "info" : { - "POST" : { - "description" : "Move a rootfs-/mp-volume to a different storage", - "method" : "POST", - "name" : "move_volume", + "DELETE" : { + "description" : "Destroy OSD", + "method" : "DELETE", + "name" : "destroyosd", "parameters" : { "additionalProperties" : 0, "properties" : { - "delete" : { + "cleanup" : { "default" : 0, - "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "digest" : { - "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", - "maxLength" : 40, + "description" : "If set, we remove partition table entries.", "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "storage" : { - "description" : "Target Storage.", - "format" : "pve-storage-id", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - }, - "volume" : { - "description" : "Volume which will be moved.", - "enum" : [ - "rootfs", - "mp0", - "mp1", - "mp2", - "mp3", - "mp4", - "mp5", - "mp6", - "mp7", - "mp8", - "mp9" - ], - "type" : "string" - } - } - }, - "permissions" : { - "check" : [ - "and", - [ - "perm", - "/vms/{vmid}", - [ - "VM.Config.Disk" - ] - ], - [ - "perm", - "/storage/{storage}", - [ - "Datastore.AllocateSpace" - ] - ] - ], - "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage." + "type" : "boolean", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "osdid" : { + "description" : "OSD ID", + "type" : "integer", + "typetext" : "" + } + } }, "protected" : 1, "proxyto" : "node", @@ -19528,16 +24108,16 @@ var pveapi = [ } } }, - "leaf" : 1, - "path" : "/nodes/{node}/lxc/{vmid}/move_volume", - "text" : "move_volume" + "leaf" : 0, + "path" : "/nodes/{node}/ceph/osd/{osdid}", + "text" : "{osdid}" } ], "info" : { - "DELETE" : { - "description" : "Destroy the container (also delete all uses files).", - "method" : "DELETE", - "name" : "destroy_vm", + "GET" : { + "description" : "Get Ceph osd list/tree.", + "method" : "GET", + "name" : "index", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -19546,723 +24126,704 @@ var pveapi = [ "format" : "pve-node", "type" : "string", "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" } } }, "permissions" : { "check" : [ "perm", - "/vms/{vmid}", + "/", [ - "VM.Allocate" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - }, - "GET" : { - "description" : "Directory index", - "method" : "GET", - "name" : "vmdiridx", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "user" : "all" - }, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "subdir" : { - "type" : "string" - } - }, - "type" : "object" - }, - "links" : [ - { - "href" : "{subdir}", - "rel" : "child" - } - ], - "type" : "array" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/lxc/{vmid}", - "text" : "{vmid}" - } - ], - "info" : { - "GET" : { - "description" : "LXC container index (per node).", - "method" : "GET", - "name" : "vmlist", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "description" : "Only list CTs where you have VM.Audit permissons on /vms/.", - "user" : "all" - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : {}, - "type" : "object" - }, - "links" : [ - { - "href" : "{vmid}", - "rel" : "child" - } - ], - "type" : "array" - } - }, - "POST" : { - "description" : "Create or restore a container.", - "method" : "POST", - "name" : "create_vm", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "arch" : { - "default" : "amd64", - "description" : "OS architecture type.", - "enum" : [ - "amd64", - "i386" - ], - "optional" : 1, - "type" : "string" - }, - "bwlimit" : { - "description" : "Override i/o bandwidth limit (in KiB/s).", - "minimum" : "0", - "optional" : 1, - "type" : "number", - "typetext" : " (0 - N)" - }, - "cmode" : { - "default" : "tty", - "description" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login).", - "enum" : [ - "shell", - "console", - "tty" - ], - "optional" : 1, - "type" : "string" - }, - "console" : { - "default" : 1, - "description" : "Attach a console device (/dev/console) to the container.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "cores" : { - "description" : "The number of cores assigned to the container. A container can use all available cores by default.", - "maximum" : 128, - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - 128)" - }, - "cpulimit" : { - "default" : 0, - "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.", - "maximum" : 128, - "minimum" : 0, - "optional" : 1, - "type" : "number", - "typetext" : " (0 - 128)" - }, - "cpuunits" : { - "default" : 1024, - "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.", - "maximum" : 500000, - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - 500000)" - }, - "description" : { - "description" : "Container description. Only used on the configuration web interface.", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "force" : { - "description" : "Allow to overwrite existing container.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "hostname" : { - "description" : "Set a host name for the container.", - "format" : "dns-name", - "maxLength" : 255, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "ignore-unpack-errors" : { - "description" : "Ignore errors when extracting the template.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "lock" : { - "description" : "Lock/unlock the VM.", - "enum" : [ - "migrate", - "backup", - "snapshot", - "rollback" - ], - "optional" : 1, - "type" : "string" - }, - "memory" : { - "default" : 512, - "description" : "Amount of RAM for the VM in MB.", - "minimum" : 16, - "optional" : 1, - "type" : "integer", - "typetext" : " (16 - N)" - }, - "mp[n]" : { - "description" : "Use volume as container mount point.", - "format" : { - "acl" : { - "description" : "Explicitly enable or disable ACL support.", - "optional" : 1, - "type" : "boolean" - }, - "backup" : { - "description" : "Whether to include the mount point in backups.", + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "object" + } + }, + "POST" : { + "description" : "Create OSD", + "method" : "POST", + "name" : "createosd", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "bluestore" : { + "default" : 1, + "description" : "Use bluestore instead of filestore. This is the default.", "optional" : 1, "type" : "boolean", - "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)." + "typetext" : "" }, - "mp" : { - "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).", - "format" : "pve-lxc-mp-string", - "format_description" : "Path", + "dev" : { + "description" : "Block device name.", "type" : "string", - "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons." + "typetext" : "" }, - "quota" : { - "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)", + "fstype" : { + "default" : "xfs", + "description" : "File system type (filestore only).", + "enum" : [ + "xfs", + "ext4" + ], "optional" : 1, - "type" : "boolean" + "type" : "string" }, - "replicate" : { - "default" : 1, - "description" : "Will include this volume to a storage replica job.", + "journal_dev" : { + "description" : "Block device name for journal (filestore) or block.db (bluestore).", "optional" : 1, - "type" : "boolean" + "type" : "string", + "typetext" : "" }, - "ro" : { - "description" : "Read-only mount point", - "optional" : 1, - "type" : "boolean" + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "shared" : { - "default" : 0, - "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')", + "wal_dev" : { + "description" : "Block device name for block.wal (bluestore only).", "optional" : 1, - "type" : "boolean", - "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!" + "type" : "string", + "typetext" : "" + } + } + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/ceph/osd", + "text" : "osd" + }, + { + "info" : { + "GET" : { + "description" : "List local disks.", + "method" : "GET", + "name" : "disks", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "size" : { - "description" : "Volume size (read only value).", - "format" : "disk-size", - "format_description" : "DiskSize", + "type" : { + "description" : "Only list specific types of disks.", + "enum" : [ + "unused", + "journal_disks" + ], "optional" : 1, "type" : "string" - }, - "volume" : { - "default_key" : 1, - "description" : "Volume, device or directory to mount into the container.", - "format" : "pve-lxc-mp-string", - "format_description" : "volume", - "type" : "string" } - }, - "optional" : 1, - "type" : "string", - "typetext" : "[volume=] ,mp= [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=]" + } }, - "nameserver" : { - "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.", - "format" : "address-list", - "optional" : 1, - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 + ] }, - "net[n]" : { - "description" : "Specifies network interfaces for the container.", - "format" : { - "bridge" : { - "description" : "Bridge to attach the network device to.", - "format_description" : "bridge", - "optional" : 1, - "pattern" : "[-_.\\w\\d]+", - "type" : "string" - }, - "firewall" : { - "description" : "Controls whether this interface's firewall rules should be used.", - "optional" : 1, - "type" : "boolean" - }, - "gw" : { - "description" : "Default gateway for IPv4 traffic.", - "format" : "ipv4", - "format_description" : "GatewayIPv4", - "optional" : 1, - "type" : "string" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "dev" : { + "type" : "string" + }, + "gpt" : { + "type" : "boolean" + }, + "model" : { + "optional" : 1, + "type" : "string" + }, + "osdid" : { + "type" : "integer" + }, + "serial" : { + "optional" : 1, + "type" : "string" + }, + "size" : { + "type" : "integer" + }, + "used" : { + "optional" : 1, + "type" : "string" + }, + "vendor" : { + "optional" : 1, + "type" : "string" + } }, - "gw6" : { - "description" : "Default gateway for IPv6 traffic.", - "format" : "ipv6", - "format_description" : "GatewayIPv6", - "optional" : 1, - "type" : "string" + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/ceph/disks", + "text" : "disks" + }, + { + "info" : { + "GET" : { + "description" : "Get Ceph configuration.", + "method" : "GET", + "name" : "config", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 + ] + }, + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/ceph/config", + "text" : "config" + }, + { + "children" : [ + { + "info" : { + "DELETE" : { + "description" : "Destroy Ceph Monitor and Manager.", + "method" : "DELETE", + "name" : "destroymon", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "exclude-manager" : { + "default" : 0, + "description" : "When set, removes only the monitor, not the manager", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "monid" : { + "description" : "Monitor ID", + "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } }, - "hwaddr" : { - "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)", - "format_description" : "XX:XX:XX:XX:XX:XX", - "optional" : 1, - "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})", - "type" : "string" + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] }, - "ip" : { - "description" : "IPv4 address in CIDR format.", - "format" : "pve-ipv4-config", - "format_description" : "(IPv4/CIDR|dhcp|manual)", - "optional" : 1, + "protected" : 1, + "proxyto" : "node", + "returns" : { "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/ceph/mon/{monid}", + "text" : "{monid}" + } + ], + "info" : { + "GET" : { + "description" : "Get Ceph monitor list.", + "method" : "GET", + "name" : "listmon", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "addr" : { + "type" : "string" + }, + "name" : { + "type" : "string" + } }, - "ip6" : { - "description" : "IPv6 address in CIDR format.", - "format" : "pve-ipv6-config", - "format_description" : "(IPv6/CIDR|auto|dhcp|manual)", + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + }, + "POST" : { + "description" : "Create Ceph Monitor and Manager", + "method" : "POST", + "name" : "createmon", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "exclude-manager" : { + "default" : 0, + "description" : "When set, only a monitor will be created.", "optional" : 1, - "type" : "string" + "type" : "boolean", + "typetext" : "" }, - "mtu" : { - "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)", - "minimum" : 64, + "id" : { + "description" : "The ID for the monitor, when omitted the same as the nodename", "optional" : 1, - "type" : "integer" - }, - "name" : { - "description" : "Name of the network device as seen from inside the container. (lxc.network.name)", - "format_description" : "string", - "pattern" : "[-_.\\w\\d]+", + "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?", "type" : "string" }, - "rate" : { - "description" : "Apply rate limiting to the interface", - "format_description" : "mbps", - "optional" : 1, - "type" : "number" - }, - "tag" : { - "description" : "VLAN tag for this interface.", - "maximum" : 4094, - "minimum" : 1, - "optional" : 1, - "type" : "integer" - }, - "trunks" : { - "description" : "VLAN ids to pass through the interface", - "format_description" : "vlanid[;vlanid...]", + "mon-address" : { + "description" : "Overwrites autodetected monitor IP address. Must be in the public network of ceph.", + "format" : "ip", "optional" : 1, - "pattern" : "(?^:\\d+(?:;\\d+)*)", - "type" : "string" + "type" : "string", + "typetext" : "" }, - "type" : { - "description" : "Network interface type.", - "enum" : [ - "veth" - ], - "optional" : 1, - "type" : "string" + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" } - }, - "optional" : 1, - "type" : "string", - "typetext" : "name= [,bridge=] [,firewall=<1|0>] [,gw=] [,gw6=] [,hwaddr=] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=] [,rate=] [,tag=] [,trunks=] [,type=]" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "onboot" : { - "default" : 0, - "description" : "Specifies whether a VM will be started during system bootup.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" + } }, - "ostemplate" : { - "description" : "The OS template or backup file.", - "maxLength" : 255, - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] }, - "ostype" : { - "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.", - "enum" : [ - "debian", - "ubuntu", - "centos", - "fedora", - "opensuse", - "archlinux", - "alpine", - "gentoo", - "unmanaged" - ], - "optional" : 1, + "protected" : 1, + "proxyto" : "node", + "returns" : { "type" : "string" - }, - "password" : { - "description" : "Sets root password inside container.", - "minLength" : 5, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "pool" : { - "description" : "Add the VM to the specified pool.", - "format" : "pve-poolid", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "protection" : { - "default" : 0, - "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "restore" : { - "description" : "Mark this as restore task.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "rootfs" : { - "description" : "Use volume as container root.", - "format" : { - "acl" : { - "description" : "Explicitly enable or disable ACL support.", + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/ceph/mon", + "text" : "mon" + }, + { + "info" : { + "POST" : { + "description" : "Create initial ceph default configuration and setup symlinks.", + "method" : "POST", + "name" : "init", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "disable_cephx" : { + "default" : 0, + "description" : "Disable cephx authentification.\n\nWARNING: cephx is a security feature protecting against man-in-the-middle attacks. Only consider disabling cephx if your network is private!", "optional" : 1, - "type" : "boolean" + "type" : "boolean", + "typetext" : "" }, - "quota" : { - "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)", + "min_size" : { + "default" : 2, + "description" : "Minimum number of available replicas per object to allow I/O", + "maximum" : 7, + "minimum" : 1, "optional" : 1, - "type" : "boolean" + "type" : "integer", + "typetext" : " (1 - 7)" }, - "replicate" : { - "default" : 1, - "description" : "Will include this volume to a storage replica job.", + "network" : { + "description" : "Use specific network for all ceph related traffic", + "format" : "CIDR", + "maxLength" : 128, "optional" : 1, - "type" : "boolean" + "type" : "string", + "typetext" : "" }, - "ro" : { - "description" : "Read-only mount point", - "optional" : 1, - "type" : "boolean" + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "shared" : { - "default" : 0, - "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')", + "pg_bits" : { + "default" : 6, + "description" : "Placement group bits, used to specify the default number of placement groups.\n\nNOTE: 'osd pool default pg num' does not work for default pools.", + "maximum" : 14, + "minimum" : 6, "optional" : 1, - "type" : "boolean", - "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!" + "type" : "integer", + "typetext" : " (6 - 14)" }, "size" : { - "description" : "Volume size (read only value).", - "format" : "disk-size", - "format_description" : "DiskSize", + "default" : 3, + "description" : "Targeted number of replicas per object", + "maximum" : 7, + "minimum" : 1, "optional" : 1, - "type" : "string" - }, - "volume" : { - "default_key" : 1, - "description" : "Volume, device or directory to mount into the container.", - "format" : "pve-lxc-mp-string", - "format_description" : "volume", - "type" : "string" + "type" : "integer", + "typetext" : " (1 - 7)" } - }, - "optional" : 1, - "type" : "string", - "typetext" : "[volume=] [,acl=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=]" - }, - "searchdomain" : { - "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.", - "format" : "dns-name-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "ssh-public-keys" : { - "description" : "Setup public SSH keys (one key per line, OpenSSH format).", - "optional" : 1, - "type" : "string", - "typetext" : "" + } }, - "start" : { - "default" : 0, - "description" : "Start the CT after its creation finished successfully.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] }, - "startup" : { - "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.", - "format" : "pve-startup-order", - "optional" : 1, - "type" : "string", - "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] " + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/ceph/init", + "text" : "init" + }, + { + "children" : [ + { + "info" : { + "DELETE" : { + "description" : "Destroy Ceph Manager.", + "method" : "DELETE", + "name" : "destroymgr", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "id" : { + "description" : "The ID of the manager", + "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } }, - "storage" : { - "default" : "local", - "description" : "Default Storage.", - "format" : "pve-storage-id", - "optional" : 1, - "type" : "string", - "typetext" : "" + "leaf" : 1, + "path" : "/nodes/{node}/ceph/mgr/{id}", + "text" : "{id}" + } + ], + "info" : { + "POST" : { + "description" : "Create Ceph Manager", + "method" : "POST", + "name" : "createmgr", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "id" : { + "description" : "The ID for the manager, when omitted the same as the nodename", + "optional" : 1, + "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } }, - "swap" : { - "default" : 512, - "description" : "Amount of SWAP for the VM in MB.", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] }, - "template" : { - "default" : 0, - "description" : "Enable/disable Template.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/ceph/mgr", + "text" : "mgr" + }, + { + "info" : { + "POST" : { + "description" : "Stop ceph services.", + "method" : "POST", + "name" : "stop", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "service" : { + "description" : "Ceph service name.", + "optional" : 1, + "pattern" : "(mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}", + "type" : "string" + } + } }, - "tty" : { - "default" : 2, - "description" : "Specify the number of tty available to the container", - "maximum" : 6, - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - 6)" + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] }, - "unprivileged" : { - "default" : 0, - "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)", - "optional" : 1, - "type" : "boolean", - "typetext" : "" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/ceph/stop", + "text" : "stop" + }, + { + "info" : { + "POST" : { + "description" : "Start ceph services.", + "method" : "POST", + "name" : "start", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "service" : { + "description" : "Ceph service name.", + "optional" : 1, + "pattern" : "(mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}", + "type" : "string" + } + } }, - "unused[n]" : { - "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.", - "format" : "pve-volume-id", - "optional" : 1, - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" } } }, - "permissions" : { - "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore, it is enough if the user has 'VM.Backup' permission and the VM already exists. You also need 'Datastore.AllocateSpace' permissions on the storage.", - "user" : "all" + "leaf" : 1, + "path" : "/nodes/{node}/ceph/start", + "text" : "start" + }, + { + "info" : { + "GET" : { + "description" : "Get ceph status.", + "method" : "GET", + "name" : "status", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "object" + } + } }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/lxc", - "text" : "lxc" - }, - { - "children" : [ + "leaf" : 1, + "path" : "/nodes/{node}/ceph/status", + "text" : "status" + }, { "children" : [ { - "children" : [ - { - "info" : { - "POST" : { - "description" : "ceph osd in", - "method" : "POST", - "name" : "in", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "osdid" : { - "description" : "OSD ID", - "type" : "integer", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Modify" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/ceph/osd/{osdid}/in", - "text" : "in" - }, - { - "info" : { - "POST" : { - "description" : "ceph osd out", - "method" : "POST", - "name" : "out", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "osdid" : { - "description" : "OSD ID", - "type" : "integer", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Modify" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/ceph/osd/{osdid}/out", - "text" : "out" - } - ], "info" : { "DELETE" : { - "description" : "Destroy OSD", + "description" : "Destroy pool", "method" : "DELETE", - "name" : "destroyosd", + "name" : "destroypool", "parameters" : { "additionalProperties" : 0, "properties" : { - "cleanup" : { + "force" : { "default" : 0, - "description" : "If set, we remove partition table entries.", + "description" : "If true, destroys pool even if in use", "optional" : 1, "type" : "boolean", "typetext" : "" }, + "name" : { + "description" : "The name of the pool. It must be unique.", + "type" : "string", + "typetext" : "" + }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, - "osdid" : { - "description" : "OSD ID", - "type" : "integer", - "typetext" : "" + "remove_storages" : { + "default" : 0, + "description" : "Remove all pveceph-managed storages configured for this pool", + "optional" : 1, + "type" : "boolean", + "typetext" : "" } } }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] + }, "protected" : 1, "proxyto" : "node", "returns" : { @@ -20270,16 +24831,16 @@ var pveapi = [ } } }, - "leaf" : 0, - "path" : "/nodes/{node}/ceph/osd/{osdid}", - "text" : "{osdid}" + "leaf" : 1, + "path" : "/nodes/{node}/ceph/pools/{name}", + "text" : "{name}" } ], "info" : { "GET" : { - "description" : "Get Ceph osd list/tree.", + "description" : "List all pools.", "method" : "GET", - "name" : "index", + "name" : "lspools", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -20306,42 +24867,69 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "object" + "items" : { + "properties" : { + "pool" : { + "type" : "integer" + }, + "pool_name" : { + "type" : "string" + }, + "size" : { + "type" : "integer" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{pool_name}", + "rel" : "child" + } + ], + "type" : "array" } }, "POST" : { - "description" : "Create OSD", + "description" : "Create POOL", "method" : "POST", - "name" : "createosd", + "name" : "createpool", "parameters" : { "additionalProperties" : 0, "properties" : { - "bluestore" : { - "default" : 1, - "description" : "Use bluestore instead of filestore. This is the default.", + "add_storages" : { + "description" : "Configure VM and CT storages using the new pool.", "optional" : 1, "type" : "boolean", "typetext" : "" }, - "dev" : { - "description" : "Block device name.", - "type" : "string", - "typetext" : "" - }, - "fstype" : { - "default" : "xfs", - "description" : "File system type (filestore only).", + "application" : { + "description" : "The application of the pool, 'rbd' by default.", "enum" : [ - "xfs", - "ext4", - "btrfs" + "rbd", + "cephfs", + "rgw" ], "optional" : 1, "type" : "string" }, - "journal_dev" : { - "description" : "Block device name for journal (filestore) or block.db (bluestore).", + "crush_rule" : { + "description" : "The rule to use for mapping object placement in the cluster.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "min_size" : { + "default" : 2, + "description" : "Minimum number of replicas per object", + "maximum" : 7, + "minimum" : 1, "optional" : 1, + "type" : "integer", + "typetext" : " (1 - 7)" + }, + "name" : { + "description" : "The name of the pool. It must be unique.", "type" : "string", "typetext" : "" }, @@ -20351,14 +24939,35 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "wal_dev" : { - "description" : "Block device name for block.wal (bluestore only).", + "pg_num" : { + "default" : 64, + "description" : "Number of placement groups.", + "maximum" : 32768, + "minimum" : 8, "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "integer", + "typetext" : " (8 - 32768)" + }, + "size" : { + "default" : 3, + "description" : "Number of replicas per object", + "maximum" : 7, + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - 7)" } } }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] + }, "protected" : 1, "proxyto" : "node", "returns" : { @@ -20367,15 +24976,120 @@ var pveapi = [ } }, "leaf" : 0, - "path" : "/nodes/{node}/ceph/osd", - "text" : "osd" + "path" : "/nodes/{node}/ceph/pools", + "text" : "pools" }, { + "children" : [ + { + "info" : { + "DELETE" : { + "description" : "Unset a ceph flag", + "method" : "DELETE", + "name" : "unset_flag", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "flag" : { + "description" : "The ceph flag to set/unset", + "enum" : [ + "full", + "pause", + "noup", + "nodown", + "noout", + "noin", + "nobackfill", + "norebalance", + "norecover", + "noscrub", + "nodeep-scrub", + "notieragent" + ], + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + }, + "POST" : { + "description" : "Set a ceph flag", + "method" : "POST", + "name" : "set_flag", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "flag" : { + "description" : "The ceph flag to set/unset", + "enum" : [ + "full", + "pause", + "noup", + "nodown", + "noout", + "noin", + "nobackfill", + "norebalance", + "norecover", + "noscrub", + "nodeep-scrub", + "notieragent" + ], + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/ceph/flags/{flag}", + "text" : "{flag}" + } + ], "info" : { "GET" : { - "description" : "List local disks.", + "description" : "get all set ceph flags", "method" : "GET", - "name" : "disks", + "name" : "get_flags", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -20384,15 +25098,6 @@ var pveapi = [ "format" : "pve-node", "type" : "string", "typetext" : "" - }, - "type" : { - "description" : "Only list specific types of disks.", - "enum" : [ - "unused", - "journal_disks" - ], - "optional" : 1, - "type" : "string" } } }, @@ -20401,63 +25106,27 @@ var pveapi = [ "perm", "/", [ - "Sys.Audit", - "Datastore.Audit" - ], - "any", - 1 + "Sys.Audit" + ] ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "dev" : { - "type" : "string" - }, - "gpt" : { - "type" : "boolean" - }, - "model" : { - "optional" : 1, - "type" : "string" - }, - "osdid" : { - "type" : "integer" - }, - "serial" : { - "optional" : 1, - "type" : "string" - }, - "size" : { - "type" : "integer" - }, - "used" : { - "optional" : 1, - "type" : "string" - }, - "vendor" : { - "optional" : 1, - "type" : "string" - } - }, - "type" : "object" - }, - "type" : "array" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/ceph/disks", - "text" : "disks" + "leaf" : 0, + "path" : "/nodes/{node}/ceph/flags", + "text" : "flags" }, { "info" : { "GET" : { - "description" : "Get Ceph configuration.", + "description" : "Get OSD crush map", "method" : "GET", - "name" : "config", + "name" : "crush", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -20481,93 +25150,53 @@ var pveapi = [ 1 ] }, + "protected" : 1, + "proxyto" : "node", "returns" : { "type" : "string" } } }, "leaf" : 1, - "path" : "/nodes/{node}/ceph/config", - "text" : "config" + "path" : "/nodes/{node}/ceph/crush", + "text" : "crush" }, { - "children" : [ - { - "info" : { - "DELETE" : { - "description" : "Destroy Ceph Monitor and Manager.", - "method" : "DELETE", - "name" : "destroymon", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "exclude-manager" : { - "default" : 0, - "description" : "When set, removes only the monitor, not the manager", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "monid" : { - "description" : "Monitor ID", - "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?", - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Modify" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/ceph/mon/{monid}", - "text" : "{monid}" - } - ], "info" : { "GET" : { - "description" : "Get Ceph monitor list.", + "description" : "Read ceph log", "method" : "GET", - "name" : "listmon", + "name" : "log", "parameters" : { "additionalProperties" : 0, "properties" : { + "limit" : { + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" + }, + "start" : { + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" } } }, "permissions" : { "check" : [ "perm", - "/", + "/nodes/{node}", [ - "Sys.Audit", - "Datastore.Audit" - ], - "any", - 1 + "Sys.Syslog" + ] ] }, "protected" : 1, @@ -20575,51 +25204,34 @@ var pveapi = [ "returns" : { "items" : { "properties" : { - "addr" : { - "type" : "string" + "n" : { + "description" : "Line number", + "type" : "integer" }, - "name" : { + "t" : { + "description" : "Line text", "type" : "string" } }, "type" : "object" }, - "links" : [ - { - "href" : "{name}", - "rel" : "child" - } - ], "type" : "array" } - }, - "POST" : { - "description" : "Create Ceph Monitor and Manager", - "method" : "POST", - "name" : "createmon", + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/ceph/log", + "text" : "log" + }, + { + "info" : { + "GET" : { + "description" : "List ceph rules.", + "method" : "GET", + "name" : "rules", "parameters" : { "additionalProperties" : 0, "properties" : { - "exclude-manager" : { - "default" : 0, - "description" : "When set, only a monitor will be created.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "id" : { - "description" : "The ID for the monitor, when omitted the same as the nodename", - "optional" : 1, - "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?", - "type" : "string" - }, - "mon-address" : { - "description" : "Overwrites autodetected monitor IP address. Must be in the public network of ceph.", - "format" : "ip", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", @@ -20633,355 +25245,502 @@ var pveapi = [ "perm", "/", [ - "Sys.Modify" - ] + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 ] }, "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "string" + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" } } }, - "leaf" : 0, - "path" : "/nodes/{node}/ceph/mon", - "text" : "mon" - }, + "leaf" : 1, + "path" : "/nodes/{node}/ceph/rules", + "text" : "rules" + } + ], + "info" : { + "GET" : { + "description" : "Directory index.", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 + ] + }, + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/ceph", + "text" : "ceph" + }, + { + "children" : [ { "info" : { - "POST" : { - "description" : "Create initial ceph default configuration and setup symlinks.", - "method" : "POST", - "name" : "init", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "disable_cephx" : { - "default" : 0, - "description" : "Disable cephx authentification.\n\nWARNING: cephx is a security feature protecting against man-in-the-middle attacks. Only consider disabling cephx if your network is private!", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "min_size" : { - "default" : 2, - "description" : "Minimum number of available replicas per object to allow I/O", - "maximum" : 7, - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - 7)" - }, - "network" : { - "description" : "Use specific network for all ceph related traffic", - "format" : "CIDR", - "maxLength" : 128, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, + "GET" : { + "description" : "Extract configuration from vzdump backup archive.", + "method" : "GET", + "name" : "extractconfig", + "parameters" : { + "additionalProperties" : 0, + "properties" : { "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, - "pg_bits" : { - "default" : 6, - "description" : "Placement group bits, used to specify the default number of placement groups.\n\nNOTE: 'osd pool default pg num' does not work for default pools.", - "maximum" : 14, - "minimum" : 6, - "optional" : 1, - "type" : "integer", - "typetext" : " (6 - 14)" - }, - "size" : { - "default" : 3, - "description" : "Targeted number of replicas per object", - "maximum" : 7, - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - 7)" + "volume" : { + "description" : "Volume identifier", + "type" : "string", + "typetext" : "" } } }, "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Modify" - ] - ] + "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.", + "user" : "all" }, "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "null" + "type" : "string" } } }, "leaf" : 1, - "path" : "/nodes/{node}/ceph/init", - "text" : "init" - }, + "path" : "/nodes/{node}/vzdump/extractconfig", + "text" : "extractconfig" + } + ], + "info" : { + "POST" : { + "description" : "Create backup.", + "method" : "POST", + "name" : "vzdump", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "all" : { + "default" : 0, + "description" : "Backup all known guest systems on this host.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "bwlimit" : { + "default" : 0, + "description" : "Limit I/O bandwidth (KBytes per second).", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "compress" : { + "default" : "0", + "description" : "Compress dump file.", + "enum" : [ + "0", + "1", + "gzip", + "lzo" + ], + "optional" : 1, + "type" : "string" + }, + "dumpdir" : { + "description" : "Store resulting files to specified directory.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "exclude" : { + "description" : "Exclude specified guest systems (assumes --all)", + "format" : "pve-vmid-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "exclude-path" : { + "description" : "Exclude certain files/directories (shell globs).", + "format" : "string-alist", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ionice" : { + "default" : 7, + "description" : "Set CFQ ionice priority.", + "maximum" : 8, + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - 8)" + }, + "lockwait" : { + "default" : 180, + "description" : "Maximal time to wait for the global lock (minutes).", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "mailnotification" : { + "default" : "always", + "description" : "Specify when to send an email", + "enum" : [ + "always", + "failure" + ], + "optional" : 1, + "type" : "string" + }, + "mailto" : { + "description" : "Comma-separated list of email addresses that should receive email notifications.", + "format" : "string-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "maxfiles" : { + "default" : 1, + "description" : "Maximal number of backup files per guest system.", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "mode" : { + "default" : "snapshot", + "description" : "Backup mode.", + "enum" : [ + "snapshot", + "suspend", + "stop" + ], + "optional" : 1, + "type" : "string" + }, + "node" : { + "description" : "Only run if executed on this node.", + "format" : "pve-node", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "pigz" : { + "default" : 0, + "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.", + "optional" : 1, + "type" : "integer", + "typetext" : "" + }, + "quiet" : { + "default" : 0, + "description" : "Be quiet.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "remove" : { + "default" : 1, + "description" : "Remove old backup files if there are more than 'maxfiles' backup files.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "script" : { + "description" : "Use specified hook script.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "size" : { + "default" : 1024, + "description" : "Unused, will be removed in a future release.", + "minimum" : 500, + "optional" : 1, + "type" : "integer", + "typetext" : " (500 - N)" + }, + "stdexcludes" : { + "default" : 1, + "description" : "Exclude temporary files and logs.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "stdout" : { + "description" : "Write tar to stdout, not to a file.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "stop" : { + "default" : 0, + "description" : "Stop runnig backup jobs on this host.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "stopwait" : { + "default" : 10, + "description" : "Maximal time to wait until a guest system is stopped (minutes).", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "storage" : { + "description" : "Store resulting file to this storage.", + "format" : "pve-storage-id", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "tmpdir" : { + "description" : "Store temporary files to specified directory.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The ID of the guest system you want to backup.", + "format" : "pve-vmid-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'maxfiles', 'tmpdir', 'dumpdir', 'script', 'bwlimit' and 'ionice' parameters are restricted to the 'root@pam' user.", + "user" : "all" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/vzdump", + "text" : "vzdump" + }, + { + "children" : [ { "children" : [ { "info" : { - "DELETE" : { - "description" : "Destroy Ceph Manager.", - "method" : "DELETE", - "name" : "destroymgr", + "GET" : { + "description" : "Read service properties", + "method" : "GET", + "name" : "service_state", "parameters" : { "additionalProperties" : 0, "properties" : { - "id" : { - "description" : "The ID of the manager", - "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?", - "type" : "string" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" + }, + "service" : { + "description" : "Service ID", + "enum" : [ + "pveproxy", + "pvedaemon", + "spiceproxy", + "pvestatd", + "pve-cluster", + "corosync", + "pve-firewall", + "pvefw-logger", + "pve-ha-crm", + "pve-ha-lrm", + "sshd", + "syslog", + "cron", + "postfix", + "ksmtuned", + "systemd-timesyncd" + ], + "type" : "string" } } }, "permissions" : { "check" : [ "perm", - "/", + "/nodes/{node}", [ - "Sys.Modify" + "Sys.Audit" ] ] }, "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "string" + "type" : "object" } } }, "leaf" : 1, - "path" : "/nodes/{node}/ceph/mgr/{id}", - "text" : "{id}" - } - ], - "info" : { - "POST" : { - "description" : "Create Ceph Manager", - "method" : "POST", - "name" : "createmgr", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "id" : { - "description" : "The ID for the manager, when omitted the same as the nodename", - "optional" : 1, - "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?", - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Modify" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/ceph/mgr", - "text" : "mgr" - }, - { - "info" : { - "POST" : { - "description" : "Stop ceph services.", - "method" : "POST", - "name" : "stop", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "path" : "/nodes/{node}/services/{service}/state", + "text" : "state" + }, + { + "info" : { + "POST" : { + "description" : "Start service.", + "method" : "POST", + "name" : "service_start", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "service" : { + "description" : "Service ID", + "enum" : [ + "pveproxy", + "pvedaemon", + "spiceproxy", + "pvestatd", + "pve-cluster", + "corosync", + "pve-firewall", + "pvefw-logger", + "pve-ha-crm", + "pve-ha-lrm", + "sshd", + "syslog", + "cron", + "postfix", + "ksmtuned", + "systemd-timesyncd" + ], + "type" : "string" + } + } }, - "service" : { - "description" : "Ceph service name.", - "optional" : 1, - "pattern" : "(mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}", - "type" : "string" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Modify" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/ceph/stop", - "text" : "stop" - }, - { - "info" : { - "POST" : { - "description" : "Start ceph services.", - "method" : "POST", - "name" : "start", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/nodes/{node}", + [ + "Sys.Modify" + ] + ] }, - "service" : { - "description" : "Ceph service name.", - "optional" : 1, - "pattern" : "(mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}", - "type" : "string" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Modify" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/ceph/start", - "text" : "start" - }, - { - "info" : { - "GET" : { - "description" : "Get ceph status.", - "method" : "GET", - "name" : "status", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Audit", - "Datastore.Audit" - ], - "any", - 1 - ] + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "object" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/ceph/status", - "text" : "status" - }, - { - "children" : [ + "leaf" : 1, + "path" : "/nodes/{node}/services/{service}/start", + "text" : "start" + }, { "info" : { - "DELETE" : { - "description" : "Destroy pool", - "method" : "DELETE", - "name" : "destroypool", + "POST" : { + "description" : "Stop service.", + "method" : "POST", + "name" : "service_stop", "parameters" : { "additionalProperties" : 0, "properties" : { - "force" : { - "default" : 0, - "description" : "If true, destroys pool even if in use", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "name" : { - "description" : "The name of the pool. It must be unique.", - "type" : "string", - "typetext" : "" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, - "remove_storages" : { - "default" : 0, - "description" : "Remove all pveceph-managed storages configured for this pool", - "optional" : 1, - "type" : "boolean", - "typetext" : "" + "service" : { + "description" : "Service ID", + "enum" : [ + "pveproxy", + "pvedaemon", + "spiceproxy", + "pvestatd", + "pve-cluster", + "corosync", + "pve-firewall", + "pvefw-logger", + "pve-ha-crm", + "pve-ha-lrm", + "sshd", + "syslog", + "cron", + "postfix", + "ksmtuned", + "systemd-timesyncd" + ], + "type" : "string" } } }, "permissions" : { "check" : [ "perm", - "/", + "/nodes/{node}", [ "Sys.Modify" ] @@ -20995,194 +25754,52 @@ var pveapi = [ } }, "leaf" : 1, - "path" : "/nodes/{node}/ceph/pools/{name}", - "text" : "{name}" - } - ], - "info" : { - "GET" : { - "description" : "List all pools.", - "method" : "GET", - "name" : "lspools", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Audit", - "Datastore.Audit" - ], - "any", - 1 - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "pool" : { - "type" : "integer" - }, - "pool_name" : { - "type" : "string" - }, - "size" : { - "type" : "integer" - } - }, - "type" : "object" - }, - "links" : [ - { - "href" : "{pool_name}", - "rel" : "child" - } - ], - "type" : "array" - } + "path" : "/nodes/{node}/services/{service}/stop", + "text" : "stop" }, - "POST" : { - "description" : "Create POOL", - "method" : "POST", - "name" : "createpool", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "add_storages" : { - "description" : "Configure VM and CT storages using the new pool.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "application" : { - "description" : "The application of the pool, 'rbd' by default.", - "enum" : [ - "rbd", - "cephfs", - "rgw" - ], - "optional" : 1, - "type" : "string" - }, - "crush_rule" : { - "description" : "The rule to use for mapping object placement in the cluster.", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "min_size" : { - "default" : 2, - "description" : "Minimum number of replicas per object", - "maximum" : 7, - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - 7)" - }, - "name" : { - "description" : "The name of the pool. It must be unique.", - "type" : "string", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "pg_num" : { - "default" : 64, - "description" : "Number of placement groups.", - "maximum" : 32768, - "minimum" : 8, - "optional" : 1, - "type" : "integer", - "typetext" : " (8 - 32768)" - }, - "size" : { - "default" : 3, - "description" : "Number of replicas per object", - "maximum" : 7, - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - 7)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Modify" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/ceph/pools", - "text" : "pools" - }, - { - "children" : [ { "info" : { - "DELETE" : { - "description" : "Unset a ceph flag", - "method" : "DELETE", - "name" : "unset_flag", + "POST" : { + "description" : "Restart service.", + "method" : "POST", + "name" : "service_restart", "parameters" : { "additionalProperties" : 0, "properties" : { - "flag" : { - "description" : "The ceph flag to set/unset", + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "service" : { + "description" : "Service ID", "enum" : [ - "full", - "pause", - "noup", - "nodown", - "noout", - "noin", - "nobackfill", - "norebalance", - "norecover", - "noscrub", - "nodeep-scrub", - "notieragent" + "pveproxy", + "pvedaemon", + "spiceproxy", + "pvestatd", + "pve-cluster", + "corosync", + "pve-firewall", + "pvefw-logger", + "pve-ha-crm", + "pve-ha-lrm", + "sshd", + "syslog", + "cron", + "postfix", + "ksmtuned", + "systemd-timesyncd" ], "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" } } }, "permissions" : { "check" : [ "perm", - "/", + "/nodes/{node}", [ "Sys.Modify" ] @@ -21191,46 +25808,57 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "null" + "type" : "string" } - }, + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/services/{service}/restart", + "text" : "restart" + }, + { + "info" : { "POST" : { - "description" : "Set a ceph flag", + "description" : "Reload service.", "method" : "POST", - "name" : "set_flag", + "name" : "service_reload", "parameters" : { "additionalProperties" : 0, "properties" : { - "flag" : { - "description" : "The ceph flag to set/unset", - "enum" : [ - "full", - "pause", - "noup", - "nodown", - "noout", - "noin", - "nobackfill", - "norebalance", - "norecover", - "noscrub", - "nodeep-scrub", - "notieragent" - ], - "type" : "string" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" + }, + "service" : { + "description" : "Service ID", + "enum" : [ + "pveproxy", + "pvedaemon", + "spiceproxy", + "pvestatd", + "pve-cluster", + "corosync", + "pve-firewall", + "pvefw-logger", + "pve-ha-crm", + "pve-ha-lrm", + "sshd", + "syslog", + "cron", + "postfix", + "ksmtuned", + "systemd-timesyncd" + ], + "type" : "string" } } }, "permissions" : { "check" : [ "perm", - "/", + "/nodes/{node}", [ "Sys.Modify" ] @@ -21239,117 +25867,50 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "null" + "type" : "string" } } }, "leaf" : 1, - "path" : "/nodes/{node}/ceph/flags/{flag}", - "text" : "{flag}" + "path" : "/nodes/{node}/services/{service}/reload", + "text" : "reload" } ], "info" : { "GET" : { - "description" : "get all set ceph flags", - "method" : "GET", - "name" : "get_flags", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Audit" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/ceph/flags", - "text" : "flags" - }, - { - "info" : { - "GET" : { - "description" : "Get OSD crush map", - "method" : "GET", - "name" : "crush", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Audit", - "Datastore.Audit" - ], - "any", - 1 - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/ceph/crush", - "text" : "crush" - }, - { - "info" : { - "GET" : { - "description" : "Read ceph log", + "description" : "Directory index", "method" : "GET", - "name" : "log", + "name" : "srvcmdidx", "parameters" : { "additionalProperties" : 0, "properties" : { - "limit" : { - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, - "start" : { - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" + "service" : { + "description" : "Service ID", + "enum" : [ + "pveproxy", + "pvedaemon", + "spiceproxy", + "pvestatd", + "pve-cluster", + "corosync", + "pve-firewall", + "pvefw-logger", + "pve-ha-crm", + "pve-ha-lrm", + "sshd", + "syslog", + "cron", + "postfix", + "ksmtuned", + "systemd-timesyncd" + ], + "type" : "string" } } }, @@ -21358,88 +25919,37 @@ var pveapi = [ "perm", "/nodes/{node}", [ - "Sys.Syslog" + "Sys.Audit" ] ] }, - "protected" : 1, - "proxyto" : "node", "returns" : { "items" : { "properties" : { - "n" : { - "description" : "Line number", - "type" : "integer" - }, - "t" : { - "description" : "Line text", + "subdir" : { "type" : "string" } }, "type" : "object" }, - "type" : "array" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/ceph/log", - "text" : "log" - }, - { - "info" : { - "GET" : { - "description" : "List ceph rules.", - "method" : "GET", - "name" : "rules", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Audit", - "Datastore.Audit" - ], - "any", - 1 - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : {}, - "type" : "object" - }, "links" : [ { - "href" : "{name}", + "href" : "{subdir}", "rel" : "child" } ], "type" : "array" } } - }, - "leaf" : 1, - "path" : "/nodes/{node}/ceph/rules", - "text" : "rules" + }, + "leaf" : 0, + "path" : "/nodes/{node}/services/{service}", + "text" : "{service}" } ], "info" : { "GET" : { - "description" : "Directory index.", + "description" : "Service list.", "method" : "GET", "name" : "index", "parameters" : { @@ -21456,15 +25966,14 @@ var pveapi = [ "permissions" : { "check" : [ "perm", - "/", + "/nodes/{node}", [ - "Sys.Audit", - "Datastore.Audit" - ], - "any", - 1 + "Sys.Audit" + ] ] }, + "protected" : 1, + "proxyto" : "node", "returns" : { "items" : { "properties" : {}, @@ -21472,7 +25981,7 @@ var pveapi = [ }, "links" : [ { - "href" : "{name}", + "href" : "{service}", "rel" : "child" } ], @@ -21481,598 +25990,388 @@ var pveapi = [ } }, "leaf" : 0, - "path" : "/nodes/{node}/ceph", - "text" : "ceph" + "path" : "/nodes/{node}/services", + "text" : "services" }, { - "children" : [ - { - "info" : { - "GET" : { - "description" : "Extract configuration from vzdump backup archive.", - "method" : "GET", - "name" : "extractconfig", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "volume" : { - "description" : "Volume identifier", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.", - "user" : "all" - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/vzdump/extractconfig", - "text" : "extractconfig" - } - ], "info" : { - "POST" : { - "description" : "Create backup.", - "method" : "POST", - "name" : "vzdump", + "GET" : { + "description" : "Read subscription info.", + "method" : "GET", + "name" : "get", "parameters" : { "additionalProperties" : 0, "properties" : { - "all" : { - "default" : 0, - "description" : "Backup all known guest systems on this host.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "bwlimit" : { - "default" : 0, - "description" : "Limit I/O bandwidth (KBytes per second).", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "compress" : { - "default" : "0", - "description" : "Compress dump file.", - "enum" : [ - "0", - "1", - "gzip", - "lzo" - ], - "optional" : 1, - "type" : "string" - }, - "dumpdir" : { - "description" : "Store resulting files to specified directory.", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "exclude" : { - "description" : "Exclude specified guest systems (assumes --all)", - "format" : "pve-vmid-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "exclude-path" : { - "description" : "Exclude certain files/directories (shell globs).", - "format" : "string-alist", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "ionice" : { - "default" : 7, - "description" : "Set CFQ ionice priority.", - "maximum" : 8, - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - 8)" - }, - "lockwait" : { - "default" : 180, - "description" : "Maximal time to wait for the global lock (minutes).", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "mailnotification" : { - "default" : "always", - "description" : "Specify when to send an email", - "enum" : [ - "always", - "failure" - ], - "optional" : 1, - "type" : "string" - }, - "mailto" : { - "description" : "Comma-separated list of email addresses that should receive email notifications.", - "format" : "string-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "maxfiles" : { - "default" : 1, - "description" : "Maximal number of backup files per guest system.", - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - }, - "mode" : { - "default" : "snapshot", - "description" : "Backup mode.", - "enum" : [ - "snapshot", - "suspend", - "stop" - ], - "optional" : 1, - "type" : "string" - }, "node" : { - "description" : "Only run if executed on this node.", + "description" : "The cluster node name.", "format" : "pve-node", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "pigz" : { - "default" : 0, - "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.", - "optional" : 1, - "type" : "integer", - "typetext" : "" - }, - "quiet" : { - "default" : 0, - "description" : "Be quiet.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "remove" : { - "default" : 1, - "description" : "Remove old backup files if there are more than 'maxfiles' backup files.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "script" : { - "description" : "Use specified hook script.", - "optional" : 1, "type" : "string", "typetext" : "" - }, - "size" : { - "default" : 1024, - "description" : "Unused, will be removed in a future release.", - "minimum" : 500, - "optional" : 1, - "type" : "integer", - "typetext" : " (500 - N)" - }, - "stdexcludes" : { - "default" : 1, - "description" : "Exclude temporary files and logs.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "stdout" : { - "description" : "Write tar to stdout, not to a file.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "stop" : { - "default" : 0, - "description" : "Stop runnig backup jobs on this host.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "stopwait" : { - "default" : 10, - "description" : "Maximal time to wait until a guest system is stopped (minutes).", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "storage" : { - "description" : "Store resulting file to this storage.", - "format" : "pve-storage-id", + } + } + }, + "permissions" : { + "user" : "all" + }, + "proxyto" : "node", + "returns" : { + "type" : "object" + } + }, + "POST" : { + "description" : "Update subscription info.", + "method" : "POST", + "name" : "update", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "force" : { + "default" : 0, + "description" : "Always connect to server, even if we have up to date info inside local cache.", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "boolean", + "typetext" : "" }, - "tmpdir" : { - "description" : "Store temporary files to specified directory.", - "optional" : 1, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", "type" : "string", "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/nodes/{node}", + [ + "Sys.Modify" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + }, + "PUT" : { + "description" : "Set subscription key.", + "method" : "PUT", + "name" : "set", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "key" : { + "description" : "Proxmox VE subscription key", + "maxLength" : 32, + "pattern" : "pve([124])([cbsp])-[0-9a-f]{10}", + "type" : "string" }, - "vmid" : { - "description" : "The ID of the guest system you want to backup.", - "format" : "pve-vmid-list", - "optional" : 1, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", "type" : "string", "typetext" : "" } } }, "permissions" : { - "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'maxfiles', 'tmpdir', 'dumpdir', 'script', 'bwlimit' and 'ionice' parameters are restricted to the 'root@pam' user.", - "user" : "all" + "check" : [ + "perm", + "/nodes/{node}", + [ + "Sys.Modify" + ] + ] }, "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "string" + "type" : "null" } } }, - "leaf" : 0, - "path" : "/nodes/{node}/vzdump", - "text" : "vzdump" + "leaf" : 1, + "path" : "/nodes/{node}/subscription", + "text" : "subscription" }, { "children" : [ { - "children" : [ - { - "info" : { - "GET" : { - "description" : "Read service properties", - "method" : "GET", - "name" : "service_state", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "service" : { - "description" : "Service ID", - "enum" : [ - "pveproxy", - "pvedaemon", - "spiceproxy", - "pvestatd", - "pve-cluster", - "corosync", - "pve-firewall", - "pvefw-logger", - "pve-ha-crm", - "pve-ha-lrm", - "sshd", - "syslog", - "cron", - "postfix", - "ksmtuned", - "systemd-timesyncd" - ], - "type" : "string" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/nodes/{node}", - [ - "Sys.Audit" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "properties" : {}, - "type" : "object" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/services/{service}/state", - "text" : "state" - }, - { - "info" : { - "POST" : { - "description" : "Start service.", - "method" : "POST", - "name" : "service_start", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "service" : { - "description" : "Service ID", - "enum" : [ - "pveproxy", - "pvedaemon", - "spiceproxy", - "pvestatd", - "pve-cluster", - "corosync", - "pve-firewall", - "pvefw-logger", - "pve-ha-crm", - "pve-ha-lrm", - "sshd", - "syslog", - "cron", - "postfix", - "ksmtuned", - "systemd-timesyncd" - ], - "type" : "string" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/nodes/{node}", - [ - "Sys.Modify" - ] - ] + "info" : { + "DELETE" : { + "description" : "Delete network device configuration", + "method" : "DELETE", + "name" : "delete_network", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "iface" : { + "description" : "Network interface name.", + "format" : "pve-iface", + "maxLength" : 20, + "minLength" : 2, + "type" : "string", + "typetext" : "" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/services/{service}/start", - "text" : "start" - }, - { - "info" : { - "POST" : { - "description" : "Stop service.", - "method" : "POST", - "name" : "service_stop", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "service" : { - "description" : "Service ID", - "enum" : [ - "pveproxy", - "pvedaemon", - "spiceproxy", - "pvestatd", - "pve-cluster", - "corosync", - "pve-firewall", - "pvefw-logger", - "pve-ha-crm", - "pve-ha-lrm", - "sshd", - "syslog", - "cron", - "postfix", - "ksmtuned", - "systemd-timesyncd" - ], - "type" : "string" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/nodes/{node}", - [ - "Sys.Modify" - ] - ] + "permissions" : { + "check" : [ + "perm", + "/nodes/{node}", + [ + "Sys.Modify" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + }, + "GET" : { + "description" : "Read network device configuration", + "method" : "GET", + "name" : "network_config", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "iface" : { + "description" : "Network interface name.", + "format" : "pve-iface", + "maxLength" : 20, + "minLength" : 2, + "type" : "string", + "typetext" : "" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/services/{service}/stop", - "text" : "stop" - }, - { - "info" : { - "POST" : { - "description" : "Restart service.", - "method" : "POST", - "name" : "service_restart", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "service" : { - "description" : "Service ID", - "enum" : [ - "pveproxy", - "pvedaemon", - "spiceproxy", - "pvestatd", - "pve-cluster", - "corosync", - "pve-firewall", - "pvefw-logger", - "pve-ha-crm", - "pve-ha-lrm", - "sshd", - "syslog", - "cron", - "postfix", - "ksmtuned", - "systemd-timesyncd" - ], - "type" : "string" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/nodes/{node}", - [ - "Sys.Modify" - ] - ] + "permissions" : { + "check" : [ + "perm", + "/nodes/{node}", + [ + "Sys.Audit" + ] + ] + }, + "proxyto" : "node", + "returns" : { + "properties" : { + "method" : { + "type" : "string" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { + "type" : { "type" : "string" } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/services/{service}/restart", - "text" : "restart" + }, + "type" : "object" + } }, - { - "info" : { - "POST" : { - "description" : "Reload service.", - "method" : "POST", - "name" : "service_reload", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "service" : { - "description" : "Service ID", - "enum" : [ - "pveproxy", - "pvedaemon", - "spiceproxy", - "pvestatd", - "pve-cluster", - "corosync", - "pve-firewall", - "pvefw-logger", - "pve-ha-crm", - "pve-ha-lrm", - "sshd", - "syslog", - "cron", - "postfix", - "ksmtuned", - "systemd-timesyncd" - ], - "type" : "string" - } - } + "PUT" : { + "description" : "Update network device configuration", + "method" : "PUT", + "name" : "update_network", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "address" : { + "description" : "IP address.", + "format" : "ipv4", + "optional" : 1, + "requires" : "netmask", + "type" : "string", + "typetext" : "" + }, + "address6" : { + "description" : "IP address.", + "format" : "ipv6", + "optional" : 1, + "requires" : "netmask6", + "type" : "string", + "typetext" : "" + }, + "autostart" : { + "description" : "Automatically start interface on boot.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "bond_mode" : { + "description" : "Bonding mode.", + "enum" : [ + "balance-rr", + "active-backup", + "balance-xor", + "broadcast", + "802.3ad", + "balance-tlb", + "balance-alb", + "balance-slb", + "lacp-balance-slb", + "lacp-balance-tcp" + ], + "optional" : 1, + "type" : "string" + }, + "bond_xmit_hash_policy" : { + "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.", + "enum" : [ + "layer2", + "layer2+3", + "layer3+4" + ], + "optional" : 1, + "type" : "string" + }, + "bridge_ports" : { + "description" : "Specify the iterfaces you want to add to your bridge.", + "format" : "pve-iface-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "bridge_vlan_aware" : { + "description" : "Enable bridge vlan support.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "comments" : { + "description" : "Comments", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "comments6" : { + "description" : "Comments", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "delete" : { + "description" : "A list of settings you want to delete.", + "format" : "pve-configid-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "gateway" : { + "description" : "Default gateway address.", + "format" : "ipv4", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "gateway6" : { + "description" : "Default ipv6 gateway address.", + "format" : "ipv6", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "iface" : { + "description" : "Network interface name.", + "format" : "pve-iface", + "maxLength" : 20, + "minLength" : 2, + "type" : "string", + "typetext" : "" }, - "permissions" : { - "check" : [ - "perm", - "/nodes/{node}", - [ - "Sys.Modify" - ] - ] + "netmask" : { + "description" : "Network mask.", + "format" : "ipv4mask", + "optional" : 1, + "requires" : "address", + "type" : "string", + "typetext" : "" + }, + "netmask6" : { + "description" : "Network mask.", + "maximum" : 128, + "minimum" : 0, + "optional" : 1, + "requires" : "address6", + "type" : "integer", + "typetext" : " (0 - 128)" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/services/{service}/reload", - "text" : "reload" - } - ], - "info" : { - "GET" : { - "description" : "Directory index", - "method" : "GET", - "name" : "srvcmdidx", - "parameters" : { - "additionalProperties" : 0, - "properties" : { "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, - "service" : { - "description" : "Service ID", + "ovs_bonds" : { + "description" : "Specify the interfaces used by the bonding device.", + "format" : "pve-iface-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ovs_bridge" : { + "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.", + "format" : "pve-iface", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ovs_options" : { + "description" : "OVS interface options.", + "maxLength" : 1024, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ovs_ports" : { + "description" : "Specify the iterfaces you want to add to your bridge.", + "format" : "pve-iface-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ovs_tag" : { + "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)", + "maximum" : 4094, + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - 4094)" + }, + "slaves" : { + "description" : "Specify the interfaces used by the bonding device.", + "format" : "pve-iface-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "type" : { + "description" : "Network interface type", "enum" : [ - "pveproxy", - "pvedaemon", - "spiceproxy", - "pvestatd", - "pve-cluster", - "corosync", - "pve-firewall", - "pvefw-logger", - "pve-ha-crm", - "pve-ha-lrm", - "sshd", - "syslog", - "cron", - "postfix", - "ksmtuned", - "systemd-timesyncd" + "bridge", + "bond", + "eth", + "alias", + "vlan", + "OVSBridge", + "OVSBond", + "OVSPort", + "OVSIntPort", + "unknown" ], "type" : "string" } @@ -22083,39 +26382,27 @@ var pveapi = [ "perm", "/nodes/{node}", [ - "Sys.Audit" + "Sys.Modify" ] ] }, + "protected" : 1, + "proxyto" : "node", "returns" : { - "items" : { - "properties" : { - "subdir" : { - "type" : "string" - } - }, - "type" : "object" - }, - "links" : [ - { - "href" : "{subdir}", - "rel" : "child" - } - ], - "type" : "array" + "type" : "null" } } }, - "leaf" : 0, - "path" : "/nodes/{node}/services/{service}", - "text" : "{service}" + "leaf" : 1, + "path" : "/nodes/{node}/network/{iface}", + "text" : "{iface}" } ], "info" : { - "GET" : { - "description" : "Service list.", - "method" : "GET", - "name" : "index", + "DELETE" : { + "description" : "Revert network configuration changes.", + "method" : "DELETE", + "name" : "revert_network_changes", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -22132,12 +26419,52 @@ var pveapi = [ "perm", "/nodes/{node}", [ - "Sys.Audit" + "Sys.Modify" ] ] }, "protected" : 1, "proxyto" : "node", + "returns" : { + "type" : "null" + } + }, + "GET" : { + "description" : "List available networks", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "type" : { + "description" : "Only list specific interface types.", + "enum" : [ + "bridge", + "bond", + "eth", + "alias", + "vlan", + "OVSBridge", + "OVSBond", + "OVSPort", + "OVSIntPort", + "any_bridge" + ], + "optional" : 1, + "type" : "string" + } + } + }, + "permissions" : { + "user" : "all" + }, + "proxyto" : "node", "returns" : { "items" : { "properties" : {}, @@ -22145,62 +26472,197 @@ var pveapi = [ }, "links" : [ { - "href" : "{service}", + "href" : "{iface}", "rel" : "child" } ], "type" : "array" } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/services", - "text" : "services" - }, - { - "info" : { - "GET" : { - "description" : "Read subscription info.", - "method" : "GET", - "name" : "get", + }, + "POST" : { + "description" : "Create network device configuration", + "method" : "POST", + "name" : "create_network", "parameters" : { "additionalProperties" : 0, "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "address" : { + "description" : "IP address.", + "format" : "ipv4", + "optional" : 1, + "requires" : "netmask", + "type" : "string", + "typetext" : "" + }, + "address6" : { + "description" : "IP address.", + "format" : "ipv6", + "optional" : 1, + "requires" : "netmask6", + "type" : "string", + "typetext" : "" + }, + "autostart" : { + "description" : "Automatically start interface on boot.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "bond_mode" : { + "description" : "Bonding mode.", + "enum" : [ + "balance-rr", + "active-backup", + "balance-xor", + "broadcast", + "802.3ad", + "balance-tlb", + "balance-alb", + "balance-slb", + "lacp-balance-slb", + "lacp-balance-tcp" + ], + "optional" : 1, + "type" : "string" + }, + "bond_xmit_hash_policy" : { + "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.", + "enum" : [ + "layer2", + "layer2+3", + "layer3+4" + ], + "optional" : 1, + "type" : "string" + }, + "bridge_ports" : { + "description" : "Specify the iterfaces you want to add to your bridge.", + "format" : "pve-iface-list", + "optional" : 1, "type" : "string", "typetext" : "" - } - } - }, - "permissions" : { - "user" : "all" - }, - "proxyto" : "node", - "returns" : { - "type" : "object" - } - }, - "POST" : { - "description" : "Update subscription info.", - "method" : "POST", - "name" : "update", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "force" : { - "default" : 0, - "description" : "Always connect to server, even if we have up to date info inside local cache.", + }, + "bridge_vlan_aware" : { + "description" : "Enable bridge vlan support.", "optional" : 1, "type" : "boolean", "typetext" : "" }, + "comments" : { + "description" : "Comments", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "comments6" : { + "description" : "Comments", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "gateway" : { + "description" : "Default gateway address.", + "format" : "ipv4", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "gateway6" : { + "description" : "Default ipv6 gateway address.", + "format" : "ipv6", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "iface" : { + "description" : "Network interface name.", + "format" : "pve-iface", + "maxLength" : 20, + "minLength" : 2, + "type" : "string", + "typetext" : "" + }, + "netmask" : { + "description" : "Network mask.", + "format" : "ipv4mask", + "optional" : 1, + "requires" : "address", + "type" : "string", + "typetext" : "" + }, + "netmask6" : { + "description" : "Network mask.", + "maximum" : 128, + "minimum" : 0, + "optional" : 1, + "requires" : "address6", + "type" : "integer", + "typetext" : " (0 - 128)" + }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" + }, + "ovs_bonds" : { + "description" : "Specify the interfaces used by the bonding device.", + "format" : "pve-iface-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ovs_bridge" : { + "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.", + "format" : "pve-iface", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ovs_options" : { + "description" : "OVS interface options.", + "maxLength" : 1024, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ovs_ports" : { + "description" : "Specify the iterfaces you want to add to your bridge.", + "format" : "pve-iface-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ovs_tag" : { + "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)", + "maximum" : 4094, + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - 4094)" + }, + "slaves" : { + "description" : "Specify the interfaces used by the bonding device.", + "format" : "pve-iface-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "type" : { + "description" : "Network interface type", + "enum" : [ + "bridge", + "bond", + "eth", + "alias", + "vlan", + "OVSBridge", + "OVSBond", + "OVSPort", + "OVSIntPort", + "unknown" + ], + "type" : "string" } } }, @@ -22220,18 +26682,12 @@ var pveapi = [ } }, "PUT" : { - "description" : "Set subscription key.", + "description" : "Reload network configuration", "method" : "PUT", - "name" : "set", + "name" : "reload_network_config", "parameters" : { "additionalProperties" : 0, "properties" : { - "key" : { - "description" : "Proxmox VE subscription key", - "maxLength" : 32, - "pattern" : "pve([124])([cbsp])-[0-9a-f]{10}", - "type" : "string" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", @@ -22252,49 +26708,153 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "null" + "type" : "string" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/subscription", - "text" : "subscription" + "leaf" : 0, + "path" : "/nodes/{node}/network", + "text" : "network" }, { "children" : [ { + "children" : [ + { + "info" : { + "GET" : { + "description" : "Read task log.", + "method" : "GET", + "name" : "read_task_log", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "limit" : { + "default" : 50, + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "start" : { + "default" : 0, + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "upid" : { + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "description" : "The user needs 'Sys.Audit' permissions on '/nodes/' if the task does not belong to him.", + "user" : "all" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "n" : { + "description" : "Line number", + "type" : "integer" + }, + "t" : { + "description" : "Line text", + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/tasks/{upid}/log", + "text" : "log" + }, + { + "info" : { + "GET" : { + "description" : "Read task status.", + "method" : "GET", + "name" : "read_task_status", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "upid" : { + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "description" : "The user needs 'Sys.Audit' permissions on '/nodes/' if the task does not belong to him.", + "user" : "all" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "pid" : { + "type" : "integer" + }, + "status" : { + "enum" : [ + "running", + "stopped" + ], + "type" : "string" + } + }, + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/tasks/{upid}/status", + "text" : "status" + } + ], "info" : { "DELETE" : { - "description" : "Delete network device configuration", + "description" : "Stop a task.", "method" : "DELETE", - "name" : "delete_network", + "name" : "stop_task", "parameters" : { "additionalProperties" : 0, "properties" : { - "iface" : { - "description" : "Network interface name.", - "format" : "pve-iface", - "maxLength" : 20, - "minLength" : 2, - "type" : "string", - "typetext" : "" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" + }, + "upid" : { + "type" : "string", + "typetext" : "" } } }, "permissions" : { - "check" : [ - "perm", - "/nodes/{node}", - [ - "Sys.Modify" - ] - ] + "description" : "The user needs 'Sys.Modify' permissions on '/nodes/' if the task does not belong to him.", + "user" : "all" }, "protected" : 1, "proxyto" : "node", @@ -22303,672 +26863,510 @@ var pveapi = [ } }, "GET" : { - "description" : "Read network device configuration", + "description" : "", "method" : "GET", - "name" : "network_config", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "iface" : { - "description" : "Network interface name.", - "format" : "pve-iface", - "maxLength" : 20, - "minLength" : 2, - "type" : "string", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/nodes/{node}", - [ - "Sys.Audit" - ] - ] - }, - "proxyto" : "node", - "returns" : { - "properties" : { - "method" : { - "type" : "string" - }, - "type" : { - "type" : "string" - } - }, - "type" : "object" - } - }, - "PUT" : { - "description" : "Update network device configuration", - "method" : "PUT", - "name" : "update_network", + "name" : "upid_index", "parameters" : { "additionalProperties" : 0, "properties" : { - "address" : { - "description" : "IP address.", - "format" : "ipv4", - "optional" : 1, - "requires" : "netmask", - "type" : "string", - "typetext" : "" - }, - "address6" : { - "description" : "IP address.", - "format" : "ipv6", - "optional" : 1, - "requires" : "netmask6", - "type" : "string", - "typetext" : "" - }, - "autostart" : { - "description" : "Automatically start interface on boot.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "bond_mode" : { - "description" : "Bonding mode.", - "enum" : [ - "balance-rr", - "active-backup", - "balance-xor", - "broadcast", - "802.3ad", - "balance-tlb", - "balance-alb", - "balance-slb", - "lacp-balance-slb", - "lacp-balance-tcp" - ], - "optional" : 1, - "type" : "string" - }, - "bond_xmit_hash_policy" : { - "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.", - "enum" : [ - "layer2", - "layer2+3", - "layer3+4" - ], - "optional" : 1, - "type" : "string" - }, - "bridge_ports" : { - "description" : "Specify the iterfaces you want to add to your bridge.", - "format" : "pve-iface-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "bridge_vlan_aware" : { - "description" : "Enable bridge vlan support.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "comments" : { - "description" : "Comments", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "comments6" : { - "description" : "Comments", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "delete" : { - "description" : "A list of settings you want to delete.", - "format" : "pve-configid-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "gateway" : { - "description" : "Default gateway address.", - "format" : "ipv4", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "gateway6" : { - "description" : "Default ipv6 gateway address.", - "format" : "ipv6", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "iface" : { - "description" : "Network interface name.", - "format" : "pve-iface", - "maxLength" : 20, - "minLength" : 2, - "type" : "string", - "typetext" : "" - }, - "netmask" : { - "description" : "Network mask.", - "format" : "ipv4mask", - "optional" : 1, - "requires" : "address", - "type" : "string", - "typetext" : "" - }, - "netmask6" : { - "description" : "Network mask.", - "maximum" : 128, - "minimum" : 0, - "optional" : 1, - "requires" : "address6", - "type" : "integer", - "typetext" : " (0 - 128)" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" }, - "ovs_bonds" : { - "description" : "Specify the interfaces used by the bonding device.", - "format" : "pve-iface-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "ovs_bridge" : { - "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.", - "format" : "pve-iface", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "ovs_options" : { - "description" : "OVS interface options.", - "maxLength" : 1024, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "ovs_ports" : { - "description" : "Specify the iterfaces you want to add to your bridge.", - "format" : "pve-iface-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "ovs_tag" : { - "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)", - "maximum" : 4094, - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - 4094)" - }, - "slaves" : { - "description" : "Specify the interfaces used by the bonding device.", - "format" : "pve-iface-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "type" : { - "description" : "Network interface type", - "enum" : [ - "bridge", - "bond", - "eth", - "alias", - "vlan", - "OVSBridge", - "OVSBond", - "OVSPort", - "OVSIntPort", - "unknown" - ], - "type" : "string" + "upid" : { + "type" : "string", + "typetext" : "" } } }, "permissions" : { - "check" : [ - "perm", - "/nodes/{node}", - [ - "Sys.Modify" - ] - ] + "user" : "all" }, - "protected" : 1, - "proxyto" : "node", "returns" : { - "type" : "null" + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/network/{iface}", - "text" : "{iface}" + "leaf" : 0, + "path" : "/nodes/{node}/tasks/{upid}", + "text" : "{upid}" } ], "info" : { - "DELETE" : { - "description" : "Revert network configuration changes.", - "method" : "DELETE", - "name" : "revert_network_changes", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/nodes/{node}", - [ - "Sys.Modify" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" - } - }, "GET" : { - "description" : "List available networks", + "description" : "Read task list for one node (finished tasks).", "method" : "GET", - "name" : "index", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "type" : { - "description" : "Only list specific interface types.", - "enum" : [ - "bridge", - "bond", - "eth", - "alias", - "vlan", - "OVSBridge", - "OVSBond", - "OVSPort", - "OVSIntPort", - "any_bridge" - ], - "optional" : 1, - "type" : "string" - } - } - }, - "permissions" : { - "user" : "all" - }, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : {}, - "type" : "object" - }, - "links" : [ - { - "href" : "{iface}", - "rel" : "child" - } - ], - "type" : "array" - } - }, - "POST" : { - "description" : "Create network device configuration", - "method" : "POST", - "name" : "create_network", + "name" : "node_tasks", "parameters" : { "additionalProperties" : 0, "properties" : { - "address" : { - "description" : "IP address.", - "format" : "ipv4", - "optional" : 1, - "requires" : "netmask", - "type" : "string", - "typetext" : "" - }, - "address6" : { - "description" : "IP address.", - "format" : "ipv6", - "optional" : 1, - "requires" : "netmask6", - "type" : "string", - "typetext" : "" - }, - "autostart" : { - "description" : "Automatically start interface on boot.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "bond_mode" : { - "description" : "Bonding mode.", - "enum" : [ - "balance-rr", - "active-backup", - "balance-xor", - "broadcast", - "802.3ad", - "balance-tlb", - "balance-alb", - "balance-slb", - "lacp-balance-slb", - "lacp-balance-tcp" - ], - "optional" : 1, - "type" : "string" - }, - "bond_xmit_hash_policy" : { - "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.", - "enum" : [ - "layer2", - "layer2+3", - "layer3+4" - ], - "optional" : 1, - "type" : "string" - }, - "bridge_ports" : { - "description" : "Specify the iterfaces you want to add to your bridge.", - "format" : "pve-iface-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "bridge_vlan_aware" : { - "description" : "Enable bridge vlan support.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "comments" : { - "description" : "Comments", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "comments6" : { - "description" : "Comments", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "gateway" : { - "description" : "Default gateway address.", - "format" : "ipv4", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "gateway6" : { - "description" : "Default ipv6 gateway address.", - "format" : "ipv6", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "iface" : { - "description" : "Network interface name.", - "format" : "pve-iface", - "maxLength" : 20, - "minLength" : 2, - "type" : "string", - "typetext" : "" - }, - "netmask" : { - "description" : "Network mask.", - "format" : "ipv4mask", - "optional" : 1, - "requires" : "address", - "type" : "string", - "typetext" : "" - }, - "netmask6" : { - "description" : "Network mask.", - "maximum" : 128, - "minimum" : 0, - "optional" : 1, - "requires" : "address6", - "type" : "integer", - "typetext" : " (0 - 128)" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "ovs_bonds" : { - "description" : "Specify the interfaces used by the bonding device.", - "format" : "pve-iface-list", + "errors" : { + "default" : 0, "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "boolean", + "typetext" : "" }, - "ovs_bridge" : { - "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.", - "format" : "pve-iface", + "limit" : { + "default" : 50, + "description" : "Only list this amount of tasks.", + "minimum" : 0, "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", "type" : "string", "typetext" : "" }, - "ovs_options" : { - "description" : "OVS interface options.", - "maxLength" : 1024, + "start" : { + "default" : 0, + "description" : "List tasks beginning from this offset.", + "minimum" : 0, "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "integer", + "typetext" : " (0 - N)" }, - "ovs_ports" : { - "description" : "Specify the iterfaces you want to add to your bridge.", - "format" : "pve-iface-list", + "userfilter" : { + "description" : "Only list tasks from this user.", "optional" : 1, "type" : "string", "typetext" : "" }, - "ovs_tag" : { - "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)", - "maximum" : 4094, + "vmid" : { + "description" : "Only list tasks for this VM.", + "format" : "pve-vmid", "minimum" : 1, "optional" : 1, "type" : "integer", - "typetext" : " (1 - 4094)" + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "description" : "List task associated with the current user, or all task the user has 'Sys.Audit' permissions on /nodes/ (the the task runs on).", + "user" : "all" + }, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "endtime" : { + "optional" : 1, + "title" : "Endtime", + "type" : "integer" + }, + "id" : { + "optional" : 1, + "title" : "ID", + "type" : "string" + }, + "node" : { + "optional" : 1, + "title" : "Node", + "type" : "string" + }, + "pid" : { + "optional" : 1, + "title" : "PID", + "type" : "integer" + }, + "pstart" : { + "optional" : 1, + "type" : "integer" + }, + "starttime" : { + "optional" : 1, + "title" : "Starttime", + "type" : "integer" + }, + "status" : { + "optional" : 1, + "title" : "Status", + "type" : "string" + }, + "type" : { + "optional" : 1, + "title" : "Type", + "type" : "string" + }, + "upid" : { + "title" : "UPID", + "type" : "string" + }, + "user" : { + "optional" : 1, + "title" : "User", + "type" : "string" + } }, - "slaves" : { - "description" : "Specify the interfaces used by the bonding device.", - "format" : "pve-iface-list", - "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "object" + }, + "links" : [ + { + "href" : "{upid}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/tasks", + "text" : "tasks" + }, + { + "children" : [ + { + "info" : { + "GET" : { + "description" : "Scan zfs pool list on local node.", + "method" : "GET", + "name" : "zfsscan", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } }, - "type" : { - "description" : "Network interface type", - "enum" : [ - "bridge", - "bond", - "eth", - "alias", - "vlan", - "OVSBridge", - "OVSBond", - "OVSPort", - "OVSIntPort", - "unknown" - ], - "type" : "string" + "permissions" : { + "check" : [ + "perm", + "/storage", + [ + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "pool" : { + "description" : "ZFS pool name.", + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/scan/zfs", + "text" : "zfs" + }, + { + "info" : { + "GET" : { + "description" : "Scan remote NFS server.", + "method" : "GET", + "name" : "nfsscan", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "server" : { + "description" : "The server address (name or IP).", + "format" : "pve-storage-server", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/storage", + [ + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "options" : { + "description" : "NFS export options.", + "type" : "string" + }, + "path" : { + "description" : "The exported path.", + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/scan/nfs", + "text" : "nfs" + }, + { + "info" : { + "GET" : { + "description" : "Scan remote CIFS server.", + "method" : "GET", + "name" : "cifsscan", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "domain" : { + "description" : "SMB domain (Workgroup).", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "password" : { + "description" : "User password.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "server" : { + "description" : "The server address (name or IP).", + "format" : "pve-storage-server", + "type" : "string", + "typetext" : "" + }, + "username" : { + "description" : "User name.", + "optional" : 1, + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/storage", + [ + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "description" : { + "description" : "Descriptive text from server.", + "type" : "string" + }, + "share" : { + "description" : "The cifs share name.", + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" } } }, - "permissions" : { - "check" : [ - "perm", - "/nodes/{node}", - [ - "Sys.Modify" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/network", - "text" : "network" - }, - { - "children" : [ + "leaf" : 1, + "path" : "/nodes/{node}/scan/cifs", + "text" : "cifs" + }, { - "children" : [ - { - "info" : { - "GET" : { - "description" : "Read task log.", - "method" : "GET", - "name" : "read_task_log", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "limit" : { - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "start" : { - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "upid" : { - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "description" : "The user needs 'Sys.Audit' permissions on '/nodes/' if the task does not belong to him.", - "user" : "all" + "info" : { + "GET" : { + "description" : "Scan remote GlusterFS server.", + "method" : "GET", + "name" : "glusterfsscan", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "n" : { - "description" : "Line number", - "type" : "integer" - }, - "t" : { - "description" : "Line text", - "type" : "string" - } - }, - "type" : "object" - }, - "type" : "array" + "server" : { + "description" : "The server address (name or IP).", + "format" : "pve-storage-server", + "type" : "string", + "typetext" : "" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/tasks/{upid}/log", - "text" : "log" - }, - { - "info" : { - "GET" : { - "description" : "Read task status.", - "method" : "GET", - "name" : "read_task_status", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "upid" : { - "type" : "string", - "typetext" : "" - } + "permissions" : { + "check" : [ + "perm", + "/storage", + [ + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "volname" : { + "description" : "The volume name.", + "type" : "string" } }, - "permissions" : { - "description" : "The user needs 'Sys.Audit' permissions on '/nodes/' if the task does not belong to him.", - "user" : "all" + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/scan/glusterfs", + "text" : "glusterfs" + }, + { + "info" : { + "GET" : { + "description" : "Scan remote iSCSI server.", + "method" : "GET", + "name" : "iscsiscan", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "properties" : { - "pid" : { - "type" : "integer" - }, - "status" : { - "enum" : [ - "running", - "stopped" - ], - "type" : "string" - } + "portal" : { + "description" : "The iSCSI portal (IP or DNS name with optional port).", + "format" : "pve-storage-portal-dns", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/storage", + [ + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "portal" : { + "description" : "The iSCSI portal name.", + "type" : "string" }, - "type" : "object" + "target" : { + "description" : "The iSCSI target name.", + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/scan/iscsi", + "text" : "iscsi" + }, + { + "info" : { + "GET" : { + "description" : "List local LVM volume groups.", + "method" : "GET", + "name" : "lvmscan", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/tasks/{upid}/status", - "text" : "status" + "permissions" : { + "check" : [ + "perm", + "/storage", + [ + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "vg" : { + "description" : "The LVM logical volume group name.", + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + } } - ], + }, + "leaf" : 1, + "path" : "/nodes/{node}/scan/lvm", + "text" : "lvm" + }, + { "info" : { - "DELETE" : { - "description" : "Stop a task.", - "method" : "DELETE", - "name" : "stop_task", + "GET" : { + "description" : "List local LVM Thin Pools.", + "method" : "GET", + "name" : "lvmthinscan", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -22978,26 +27376,48 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "upid" : { - "type" : "string", - "typetext" : "" + "vg" : { + "maxLength" : 100, + "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+", + "type" : "string" } } }, "permissions" : { - "description" : "The user needs 'Sys.Modify' permissions on '/nodes/' if the task does not belong to him.", - "user" : "all" + "check" : [ + "perm", + "/storage", + [ + "Datastore.Allocate" + ] + ] }, "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "null" + "items" : { + "properties" : { + "lv" : { + "description" : "The LVM Thin Pool name (LVM logical volume).", + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" } - }, + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/scan/lvmthin", + "text" : "lvmthin" + }, + { + "info" : { "GET" : { - "description" : "", + "description" : "List local USB devices.", "method" : "GET", - "name" : "upid_index", + "name" : "usbscan", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -23006,91 +27426,98 @@ var pveapi = [ "format" : "pve-node", "type" : "string", "typetext" : "" - }, - "upid" : { - "type" : "string", - "typetext" : "" } } }, "permissions" : { - "user" : "all" + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] }, + "protected" : 1, + "proxyto" : "node", "returns" : { "items" : { - "properties" : {}, + "properties" : { + "busnum" : { + "type" : "integer" + }, + "class" : { + "type" : "integer" + }, + "devnum" : { + "type" : "integer" + }, + "level" : { + "type" : "integer" + }, + "manufacturer" : { + "optional" : 1, + "type" : "string" + }, + "port" : { + "type" : "integer" + }, + "prodid" : { + "type" : "string" + }, + "product" : { + "optional" : 1, + "type" : "string" + }, + "serial" : { + "optional" : 1, + "type" : "string" + }, + "speed" : { + "type" : "string" + }, + "usbpath" : { + "optional" : 1, + "type" : "string" + }, + "vendid" : { + "type" : "string" + } + }, "type" : "object" }, - "links" : [ - { - "href" : "{name}", - "rel" : "child" - } - ], "type" : "array" } } }, - "leaf" : 0, - "path" : "/nodes/{node}/tasks/{upid}", - "text" : "{upid}" + "leaf" : 1, + "path" : "/nodes/{node}/scan/usb", + "text" : "usb" } ], "info" : { "GET" : { - "description" : "Read task list for one node (finished tasks).", + "description" : "Index of available scan methods", "method" : "GET", - "name" : "node_tasks", + "name" : "index", "parameters" : { "additionalProperties" : 0, "properties" : { - "errors" : { - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "limit" : { - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" - }, - "start" : { - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "userfilter" : { - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "Only list tasks for this VM.", - "format" : "pve-vmid", - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" } } }, "permissions" : { - "description" : "List task associated with the current user, or all task the user has 'Sys.Audit' permissions on /nodes/ (the the task runs on).", "user" : "all" }, - "proxyto" : "node", "returns" : { "items" : { "properties" : { - "upid" : { + "method" : { "type" : "string" } }, @@ -23098,7 +27525,7 @@ var pveapi = [ }, "links" : [ { - "href" : "{upid}", + "href" : "{method}", "rel" : "child" } ], @@ -23107,381 +27534,564 @@ var pveapi = [ } }, "leaf" : 0, - "path" : "/nodes/{node}/tasks", - "text" : "tasks" + "path" : "/nodes/{node}/scan", + "text" : "scan" }, { "children" : [ { - "info" : { - "GET" : { - "description" : "Scan zfs pool list on local node.", - "method" : "GET", - "name" : "zfsscan", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } + "children" : [ + { + "children" : [ + { + "info" : { + "DELETE" : { + "description" : "Delete volume", + "method" : "DELETE", + "name" : "delete", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "volume" : { + "description" : "Volume identifier", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).", + "user" : "all" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + }, + "GET" : { + "description" : "Get volume attributes", + "method" : "GET", + "name" : "info", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "volume" : { + "description" : "Volume identifier", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "description" : "You need read access for the volume.", + "user" : "all" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "object" + } + }, + "POST" : { + "description" : "Copy a volume. This is experimental code - do not use.", + "method" : "POST", + "name" : "copy", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "target" : { + "description" : "Target volume identifier", + "type" : "string", + "typetext" : "" + }, + "target_node" : { + "description" : "Target node. Default is local node.", + "format" : "pve-node", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "volume" : { + "description" : "Source volume identifier", + "type" : "string", + "typetext" : "" + } + } + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/storage/{storage}/content/{volume}", + "text" : "{volume}" } - }, - "permissions" : { - "check" : [ - "perm", - "/storage", - [ - "Datastore.Allocate" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "pool" : { - "type" : "string" + ], + "info" : { + "GET" : { + "description" : "List storage content.", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "content" : { + "description" : "Only list content of this type.", + "format" : "pve-storage-content", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "Only list images for this VM", + "format" : "pve-vmid", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } } }, - "type" : "object" - }, - "type" : "array" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/scan/zfs", - "text" : "zfs" - }, - { - "info" : { - "GET" : { - "description" : "Scan remote NFS server.", - "method" : "GET", - "name" : "nfsscan", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/storage/{storage}", + [ + "Datastore.Audit", + "Datastore.AllocateSpace" + ], + "any", + 1 + ] }, - "server" : { - "format" : "pve-storage-server", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/storage", - [ - "Datastore.Allocate" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "options" : { - "type" : "string" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "format" : { + "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)", + "type" : "string" + }, + "parent" : { + "description" : "Volume identifier of parent (for linked cloned).", + "optional" : 1, + "type" : "string" + }, + "size" : { + "description" : "Volume size in bytes.", + "renderer" : "bytes", + "type" : "integer" + }, + "used" : { + "description" : "Used space. Please note that most storage plugins does not report anything useful here.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "vmid" : { + "description" : "Associated Owner VMID.", + "optional" : 1, + "type" : "integer" + }, + "volid" : { + "description" : "Volume identifier.", + "type" : "string" + } + }, + "type" : "object" }, - "path" : { - "type" : "string" + "links" : [ + { + "href" : "{volid}", + "rel" : "child" + } + ], + "type" : "array" + } + }, + "POST" : { + "description" : "Allocate disk images.", + "method" : "POST", + "name" : "create", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "filename" : { + "description" : "The name of the file to create.", + "type" : "string", + "typetext" : "" + }, + "format" : { + "enum" : [ + "raw", + "qcow2", + "subvol" + ], + "optional" : 1, + "requires" : "size", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "size" : { + "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)", + "pattern" : "\\d+[MG]?", + "type" : "string" + }, + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "Specify owner VM", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } } }, - "type" : "object" - }, - "type" : "array" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/scan/nfs", - "text" : "nfs" - }, - { - "info" : { - "GET" : { - "description" : "Scan remote CIFS server.", - "method" : "GET", - "name" : "cifsscan", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "domain" : { - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "password" : { - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "server" : { - "format" : "pve-storage-server", - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/storage/{storage}", + [ + "Datastore.AllocateSpace" + ] + ] }, - "username" : { - "optional" : 1, - "type" : "string", - "typetext" : "" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Volume identifier", + "type" : "string" } } }, - "permissions" : { - "check" : [ - "perm", - "/storage", - [ - "Datastore.Allocate" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "description" : { - "type" : "string" - }, - "share" : { - "type" : "string" + "leaf" : 0, + "path" : "/nodes/{node}/storage/{storage}/content", + "text" : "content" + }, + { + "info" : { + "GET" : { + "description" : "Read storage status.", + "method" : "GET", + "name" : "read_status", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" + } } }, - "type" : "object" - }, - "type" : "array" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/scan/cifs", - "text" : "cifs" - }, - { - "info" : { - "GET" : { - "description" : "Scan remote GlusterFS server.", - "method" : "GET", - "name" : "glusterfsscan", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/storage/{storage}", + [ + "Datastore.Audit", + "Datastore.AllocateSpace" + ], + "any", + 1 + ] }, - "server" : { - "format" : "pve-storage-server", - "type" : "string", - "typetext" : "" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "object" } } }, - "permissions" : { - "check" : [ - "perm", - "/storage", - [ - "Datastore.Allocate" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "volname" : { - "type" : "string" + "leaf" : 1, + "path" : "/nodes/{node}/storage/{storage}/status", + "text" : "status" + }, + { + "info" : { + "GET" : { + "description" : "Read storage RRD statistics (returns PNG).", + "method" : "GET", + "name" : "rrd", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "cf" : { + "description" : "The RRD consolidation function", + "enum" : [ + "AVERAGE", + "MAX" + ], + "optional" : 1, + "type" : "string" + }, + "ds" : { + "description" : "The list of datasources you want to display.", + "format" : "pve-configid-list", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" + }, + "timeframe" : { + "description" : "Specify the time frame you are interested in.", + "enum" : [ + "hour", + "day", + "week", + "month", + "year" + ], + "type" : "string" + } } }, - "type" : "object" - }, - "type" : "array" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/scan/glusterfs", - "text" : "glusterfs" - }, - { - "info" : { - "GET" : { - "description" : "Scan remote iSCSI server.", - "method" : "GET", - "name" : "iscsiscan", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "portal" : { - "format" : "pve-storage-portal-dns", - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/storage/{storage}", + [ + "Datastore.Audit", + "Datastore.AllocateSpace" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "filename" : { + "type" : "string" + } + }, + "type" : "object" } } }, - "permissions" : { - "check" : [ - "perm", - "/storage", - [ - "Datastore.Allocate" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "portal" : { - "type" : "string" - }, - "target" : { - "type" : "string" + "leaf" : 1, + "path" : "/nodes/{node}/storage/{storage}/rrd", + "text" : "rrd" + }, + { + "info" : { + "GET" : { + "description" : "Read storage RRD statistics.", + "method" : "GET", + "name" : "rrddata", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "cf" : { + "description" : "The RRD consolidation function", + "enum" : [ + "AVERAGE", + "MAX" + ], + "optional" : 1, + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" + }, + "timeframe" : { + "description" : "Specify the time frame you are interested in.", + "enum" : [ + "hour", + "day", + "week", + "month", + "year" + ], + "type" : "string" + } } }, - "type" : "object" - }, - "type" : "array" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/scan/iscsi", - "text" : "iscsi" - }, - { - "info" : { - "GET" : { - "description" : "List local LVM volume groups.", - "method" : "GET", - "name" : "lvmscan", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/storage/{storage}", + [ + "Datastore.Audit", + "Datastore.AllocateSpace" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "type" : "array" } } }, - "permissions" : { - "check" : [ - "perm", - "/storage", - [ - "Datastore.Allocate" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "vg" : { - "type" : "string" + "leaf" : 1, + "path" : "/nodes/{node}/storage/{storage}/rrddata", + "text" : "rrddata" + }, + { + "info" : { + "POST" : { + "description" : "Upload templates and ISO images.", + "method" : "POST", + "name" : "upload", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "content" : { + "description" : "Content type.", + "format" : "pve-storage-content", + "type" : "string", + "typetext" : "" + }, + "filename" : { + "description" : "The name of the file to create.", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" + }, + "tmpfilename" : { + "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trustet port on localhost.", + "optional" : 1, + "type" : "string", + "typetext" : "" + } } }, - "type" : "object" - }, - "type" : "array" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/scan/lvm", - "text" : "lvm" - }, - { - "info" : { - "GET" : { - "description" : "List local LVM Thin Pools.", - "method" : "GET", - "name" : "lvmthinscan", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/storage/{storage}", + [ + "Datastore.AllocateTemplate" + ] + ] }, - "vg" : { - "maxLength" : 100, - "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+", + "protected" : 1, + "returns" : { "type" : "string" } } }, - "permissions" : { - "check" : [ - "perm", - "/storage", - [ - "Datastore.Allocate" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "lv" : { - "type" : "string" - } - }, - "type" : "object" - }, - "type" : "array" - } + "leaf" : 1, + "path" : "/nodes/{node}/storage/{storage}/upload", + "text" : "upload" } - }, - "leaf" : 1, - "path" : "/nodes/{node}/scan/lvmthin", - "text" : "lvmthin" - }, - { + ], "info" : { "GET" : { - "description" : "List local USB devices.", + "description" : "", "method" : "GET", - "name" : "usbscan", + "name" : "diridx", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -23490,562 +28100,595 @@ var pveapi = [ "format" : "pve-node", "type" : "string", "typetext" : "" + }, + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" } } }, "permissions" : { "check" : [ "perm", - "/", + "/storage/{storage}", [ - "Sys.Modify" - ] + "Datastore.Audit", + "Datastore.AllocateSpace" + ], + "any", + 1 ] }, - "protected" : 1, - "proxyto" : "node", "returns" : { "items" : { "properties" : { - "busnum" : { - "type" : "integer" - }, - "class" : { - "type" : "integer" - }, - "devnum" : { - "type" : "integer" - }, - "level" : { - "type" : "integer" - }, - "manufacturer" : { - "optional" : 1, - "type" : "string" - }, - "port" : { - "type" : "integer" - }, - "prodid" : { - "type" : "string" - }, - "product" : { - "optional" : 1, - "type" : "string" - }, - "serial" : { - "optional" : 1, - "type" : "string" - }, - "speed" : { - "type" : "string" - }, - "usbpath" : { - "optional" : 1, - "type" : "string" - }, - "vendid" : { + "subdir" : { "type" : "string" } }, "type" : "object" }, + "links" : [ + { + "href" : "{subdir}", + "rel" : "child" + } + ], "type" : "array" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/scan/usb", - "text" : "usb" + "leaf" : 0, + "path" : "/nodes/{node}/storage/{storage}", + "text" : "{storage}" } ], "info" : { "GET" : { - "description" : "Index of available scan methods", + "description" : "Get status for all datastores.", "method" : "GET", "name" : "index", "parameters" : { "additionalProperties" : 0, "properties" : { + "content" : { + "description" : "Only list stores which support this content type.", + "format" : "pve-storage-content-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "enabled" : { + "default" : 0, + "description" : "Only list stores which are enabled (not disabled in config).", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "format" : { + "default" : 0, + "description" : "Include information about formats", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" + }, + "storage" : { + "description" : "Only list status for specified storage", + "format" : "pve-storage-id", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "target" : { + "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.", + "format" : "pve-node", + "optional" : 1, + "type" : "string", + "typetext" : "" } } }, - "permissions" : { - "user" : "all" - }, - "returns" : { - "items" : { - "properties" : { - "method" : { - "type" : "string" - } - }, - "type" : "object" - }, - "links" : [ - { - "href" : "{method}", - "rel" : "child" - } - ], - "type" : "array" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/scan", - "text" : "scan" - }, - { - "children" : [ - { - "children" : [ - { - "children" : [ - { - "info" : { - "DELETE" : { - "description" : "Delete volume", - "method" : "DELETE", - "name" : "delete", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "storage" : { - "description" : "The storage identifier.", - "format" : "pve-storage-id", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "volume" : { - "description" : "Volume identifier", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).", - "user" : "all" - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" - } - }, - "GET" : { - "description" : "Get volume attributes", - "method" : "GET", - "name" : "info", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "storage" : { - "description" : "The storage identifier.", - "format" : "pve-storage-id", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "volume" : { - "description" : "Volume identifier", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "description" : "You need read access for the volume.", - "user" : "all" - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "object" - } - }, - "POST" : { - "description" : "Copy a volume. This is experimental code - do not use.", - "method" : "POST", - "name" : "copy", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "storage" : { - "description" : "The storage identifier.", - "format" : "pve-storage-id", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "target" : { - "description" : "Target volume identifier", - "type" : "string", - "typetext" : "" - }, - "target_node" : { - "description" : "Target node. Default is local node.", - "format" : "pve-node", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "volume" : { - "description" : "Source volume identifier", - "type" : "string", - "typetext" : "" - } - } - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/storage/{storage}/content/{volume}", - "text" : "{volume}" + "permissions" : { + "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/'", + "user" : "all" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "active" : { + "description" : "Set when storage is accessible.", + "optional" : 1, + "type" : "boolean" + }, + "avail" : { + "description" : "Available storage space in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "content" : { + "description" : "Allowed storage content types.", + "format" : "pve-storage-content-list", + "type" : "string" + }, + "enabled" : { + "description" : "Set when storage is enabled (not disabled).", + "optional" : 1, + "type" : "boolean" + }, + "shared" : { + "description" : "Shared flag from storage configuration.", + "optional" : 1, + "type" : "boolean" + }, + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string" + }, + "total" : { + "description" : "Total storage space in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "type" : { + "description" : "Storage type.", + "type" : "string" + }, + "used" : { + "description" : "Used storage space in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "used_fraction" : { + "description" : "Used fraction (used/total).", + "optional" : 1, + "renderer" : "fraction_as_percentage", + "type" : "number" } - ], - "info" : { - "GET" : { - "description" : "List storage content.", - "method" : "GET", - "name" : "index", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "content" : { - "description" : "Only list content of this type.", - "format" : "pve-storage-content", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "storage" : { - "description" : "The storage identifier.", - "format" : "pve-storage-id", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "Only list images for this VM", - "format" : "pve-vmid", - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/storage/{storage}", - [ - "Datastore.Audit", - "Datastore.AllocateSpace" - ], - "any", - 1 - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{storage}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/storage", + "text" : "storage" + }, + { + "children" : [ + { + "info" : { + "GET" : { + "description" : "List LVM Volume Groups", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "children" : { "items" : { "properties" : { - "volid" : { + "children" : { + "description" : "The underlying physical volumes", + "items" : { + "properties" : { + "free" : { + "description" : "The free bytes in the physical volume", + "type" : "integer" + }, + "leaf" : { + "type" : "boolean" + }, + "name" : { + "description" : "The name of the physical volume", + "type" : "string" + }, + "size" : { + "description" : "The size of the physical volume in bytes", + "type" : "integer" + } + }, + "type" : "object" + }, + "optional" : 1, + "type" : "array" + }, + "free" : { + "description" : "The free bytes in the volume group", + "type" : "integer" + }, + "leaf" : { + "type" : "boolean" + }, + "name" : { + "description" : "The name of the volume group", "type" : "string" + }, + "size" : { + "description" : "The size of the volume group in bytes", + "type" : "integer" } }, "type" : "object" }, - "links" : [ - { - "href" : "{volid}", - "rel" : "child" - } - ], "type" : "array" + }, + "leaf" : { + "type" : "boolean" } }, - "POST" : { - "description" : "Allocate disk images.", - "method" : "POST", - "name" : "create", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "filename" : { - "description" : "The name of the file to create.", - "type" : "string", - "typetext" : "" - }, - "format" : { - "enum" : [ - "raw", - "qcow2", - "subvol" - ], - "optional" : 1, - "requires" : "size", - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "size" : { - "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)", - "pattern" : "\\d+[MG]?", - "type" : "string" - }, - "storage" : { - "description" : "The storage identifier.", - "format" : "pve-storage-id", - "type" : "string", - "typetext" : "" - }, - "vmid" : { - "description" : "Specify owner VM", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } + "type" : "object" + } + }, + "POST" : { + "description" : "Create an LVM Volume Group", + "method" : "POST", + "name" : "create", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "add_storage" : { + "default" : 0, + "description" : "Configure storage using the Volume Group", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "permissions" : { - "check" : [ - "perm", - "/storage/{storage}", - [ - "Datastore.AllocateSpace" - ] - ] + "device" : { + "description" : "The block device you want to create the volume group on", + "type" : "string", + "typetext" : "" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "description" : "Volume identifier", - "type" : "string" + "name" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify", + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/disks/lvm", + "text" : "lvm" + }, + { + "info" : { + "GET" : { + "description" : "List LVM thinpools", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" } } }, - "leaf" : 0, - "path" : "/nodes/{node}/storage/{storage}/content", - "text" : "content" - }, - { - "info" : { - "GET" : { - "description" : "Read storage status.", - "method" : "GET", - "name" : "read_status", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "storage" : { - "description" : "The storage identifier.", - "format" : "pve-storage-id", - "type" : "string", - "typetext" : "" - } + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "lv" : { + "description" : "The name of the thinpool.", + "type" : "string" + }, + "lv_size" : { + "description" : "The size of the thinpool in bytes.", + "type" : "integer" + }, + "metadata_size" : { + "description" : "The size of the metadata lv in bytes.", + "type" : "integer" + }, + "metadata_used" : { + "description" : "The used bytes of the metadata lv.", + "type" : "integer" + }, + "used" : { + "description" : "The used bytes of the thinpool.", + "type" : "integer" } }, - "permissions" : { - "check" : [ - "perm", - "/storage/{storage}", - [ - "Datastore.Audit", - "Datastore.AllocateSpace" - ], - "any", - 1 - ] + "type" : "object" + }, + "type" : "array" + } + }, + "POST" : { + "description" : "Create an LVM thinpool", + "method" : "POST", + "name" : "create", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "add_storage" : { + "default" : 0, + "description" : "Configure storage using the thinpool.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "properties" : {}, - "type" : "object" + "device" : { + "description" : "The block device you want to create the thinpool on.", + "type" : "string", + "typetext" : "" + }, + "name" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/storage/{storage}/status", - "text" : "status" - }, - { - "info" : { - "GET" : { - "description" : "Read storage RRD statistics (returns PNG).", - "method" : "GET", - "name" : "rrd", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "cf" : { - "description" : "The RRD consolidation function", - "enum" : [ - "AVERAGE", - "MAX" - ], - "optional" : 1, - "type" : "string" - }, - "ds" : { - "description" : "The list of datasources you want to display.", - "format" : "pve-configid-list", - "type" : "string", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "storage" : { - "description" : "The storage identifier.", - "format" : "pve-storage-id", - "type" : "string", - "typetext" : "" - }, - "timeframe" : { - "description" : "Specify the time frame you are interested in.", - "enum" : [ - "hour", - "day", - "week", - "month", - "year" - ], - "type" : "string" - } + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify", + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/disks/lvmthin", + "text" : "lvmthin" + }, + { + "info" : { + "GET" : { + "description" : "PVE Managed Directory storages.", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "device" : { + "description" : "The mounted device.", + "type" : "string" + }, + "options" : { + "description" : "The mount options.", + "type" : "string" + }, + "path" : { + "description" : "The mount path.", + "type" : "string" + }, + "type" : { + "description" : "The filesystem type.", + "type" : "string" + }, + "unitfile" : { + "description" : "The path of the mount unit.", + "type" : "string" } }, - "permissions" : { - "check" : [ - "perm", - "/storage/{storage}", - [ - "Datastore.Audit", - "Datastore.AllocateSpace" - ], - "any", - 1 - ] + "type" : "object" + }, + "type" : "array" + } + }, + "POST" : { + "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.", + "method" : "POST", + "name" : "create", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "add_storage" : { + "default" : 0, + "description" : "Configure storage using the directory.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "device" : { + "description" : "The block device you want to create the filesystem on.", + "type" : "string", + "typetext" : "" + }, + "filesystem" : { + "default" : "ext4", + "description" : "The desired filesystem.", + "enum" : [ + "ext4", + "xfs" + ], + "optional" : 1, + "type" : "string" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "properties" : { - "filename" : { - "type" : "string" - } - }, - "type" : "object" + "name" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/storage/{storage}/rrd", - "text" : "rrd" - }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify", + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/disks/directory", + "text" : "directory" + }, + { + "children" : [ { "info" : { "GET" : { - "description" : "Read storage RRD statistics.", + "description" : "Get details about a zpool.", "method" : "GET", - "name" : "rrddata", + "name" : "detail", "parameters" : { "additionalProperties" : 0, "properties" : { - "cf" : { - "description" : "The RRD consolidation function", - "enum" : [ - "AVERAGE", - "MAX" - ], - "optional" : 1, - "type" : "string" + "name" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", "type" : "string", "typetext" : "" - }, - "storage" : { - "description" : "The storage identifier.", - "format" : "pve-storage-id", - "type" : "string", - "typetext" : "" - }, - "timeframe" : { - "description" : "Specify the time frame you are interested in.", - "enum" : [ - "hour", - "day", - "week", - "month", - "year" - ], - "type" : "string" } } }, "permissions" : { "check" : [ "perm", - "/storage/{storage}", + "/", [ - "Datastore.Audit", - "Datastore.AllocateSpace" + "Sys.Audit", + "Datastore.Audit" ], "any", 1 @@ -24054,83 +28697,74 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "items" : { - "properties" : {}, - "type" : "object" - }, - "type" : "array" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/storage/{storage}/rrddata", - "text" : "rrddata" - }, - { - "info" : { - "POST" : { - "description" : "Upload templates and ISO images.", - "method" : "POST", - "name" : "upload", - "parameters" : { - "additionalProperties" : 0, "properties" : { - "content" : { - "description" : "Content type.", - "format" : "pve-storage-content", - "type" : "string", - "typetext" : "" + "action" : { + "description" : "Information about the recommended action to fix the state.", + "optional" : 1, + "type" : "string" }, - "filename" : { - "description" : "The name of the file to create.", - "type" : "string", - "typetext" : "" + "children" : { + "description" : "The tree of the vdevs. Depending on the configuration of the zpool, they can be nested.", + "items" : { + "properties" : { + "cksum" : { + "type" : "number" + }, + "msg" : { + "description" : "An optional message about the vdev.", + "type" : "string" + }, + "name" : { + "description" : "The name of the vdev.", + "type" : "string" + }, + "read" : { + "type" : "number" + }, + "state" : { + "description" : "The state of the vdev.", + "type" : "string" + }, + "write" : { + "type" : "number" + } + }, + "type" : "object" + }, + "type" : "array" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "name" : { + "description" : "The name of the zpool.", + "type" : "string" }, - "storage" : { - "description" : "The storage identifier.", - "format" : "pve-storage-id", - "type" : "string", - "typetext" : "" + "scan" : { + "description" : "Information about the errors on the zpool.", + "type" : "string" }, - "tmpfilename" : { - "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trustet port on localhost.", + "state" : { + "description" : "The state of the zpool.", + "type" : "string" + }, + "status" : { + "description" : "Information about the state of the zpool.", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" } - } - }, - "permissions" : { - "check" : [ - "perm", - "/storage/{storage}", - [ - "Datastore.AllocateTemplate" - ] - ] - }, - "protected" : 1, - "returns" : { - "type" : "string" + }, + "type" : "object" } } }, "leaf" : 1, - "path" : "/nodes/{node}/storage/{storage}/upload", - "text" : "upload" + "path" : "/nodes/{node}/disks/zfs/{name}", + "text" : "{name}" } ], "info" : { "GET" : { - "description" : "", + "description" : "List Zpools.", "method" : "GET", - "name" : "diridx", + "name" : "index", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -24139,133 +28773,156 @@ var pveapi = [ "format" : "pve-node", "type" : "string", "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "alloc" : { + "description" : "", + "type" : "integer" + }, + "dedup" : { + "description" : "", + "type" : "number" + }, + "frag" : { + "description" : "", + "type" : "integer" + }, + "free" : { + "description" : "", + "type" : "integer" + }, + "health" : { + "description" : "", + "type" : "string" + }, + "name" : { + "description" : "", + "type" : "string" + }, + "size" : { + "description" : "", + "type" : "integer" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + }, + "POST" : { + "description" : "Create a ZFS pool.", + "method" : "POST", + "name" : "create", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "add_storage" : { + "default" : 0, + "description" : "Configure storage using the zpool.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "ashift" : { + "default" : 12, + "description" : "Pool sector size exponent.", + "maximum" : 16, + "minimum" : 9, + "optional" : 1, + "type" : "integer", + "typetext" : " (9 - 16)" + }, + "compression" : { + "default" : "on", + "description" : "The compression algorithm to use.", + "enum" : [ + "on", + "off", + "gzip", + "lz4", + "lzjb", + "zle" + ], + "optional" : 1, + "type" : "string" + }, + "devices" : { + "description" : "The block devices you want to create the zpool on.", + "format" : "string-list", + "type" : "string", + "typetext" : "" }, - "storage" : { + "name" : { "description" : "The storage identifier.", "format" : "pve-storage-id", "type" : "string", "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "raidlevel" : { + "description" : "The RAID level to use.", + "enum" : [ + "single", + "mirror", + "raid10", + "raidz", + "raidz2", + "raidz3" + ], + "type" : "string" } } }, "permissions" : { "check" : [ "perm", - "/storage/{storage}", + "/", [ - "Datastore.Audit", - "Datastore.AllocateSpace" - ], - "any", - 1 + "Sys.Modify", + "Datastore.Allocate" + ] ] }, + "protected" : 1, + "proxyto" : "node", "returns" : { - "items" : { - "properties" : { - "subdir" : { - "type" : "string" - } - }, - "type" : "object" - }, - "links" : [ - { - "href" : "{subdir}", - "rel" : "child" - } - ], - "type" : "array" + "type" : "string" } } }, "leaf" : 0, - "path" : "/nodes/{node}/storage/{storage}", - "text" : "{storage}" - } - ], - "info" : { - "GET" : { - "description" : "Get status for all datastores.", - "method" : "GET", - "name" : "index", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "content" : { - "description" : "Only list stores which support this content type.", - "format" : "pve-storage-content-list", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "enabled" : { - "default" : 0, - "description" : "Only list stores which are enabled (not disabled in config).", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "format" : { - "default" : 0, - "description" : "Include information about formats", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "storage" : { - "description" : "Only list status for specified storage", - "format" : "pve-storage-id", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "target" : { - "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.", - "format" : "pve-node", - "optional" : 1, - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/'", - "user" : "all" - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "storage" : { - "type" : "string" - } - }, - "type" : "object" - }, - "links" : [ - { - "href" : "{storage}", - "rel" : "child" - } - ], - "type" : "array" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/storage", - "text" : "storage" - }, - { - "children" : [ + "path" : "/nodes/{node}/disks/zfs", + "text" : "zfs" + }, { "info" : { "GET" : { @@ -24280,6 +28937,22 @@ var pveapi = [ "format" : "pve-node", "type" : "string", "typetext" : "" + }, + "skipsmart" : { + "default" : 0, + "description" : "Skip smart checks.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "type" : { + "description" : "Only list specific types of disks.", + "enum" : [ + "unused", + "journal_disks" + ], + "optional" : 1, + "type" : "string" } } }, @@ -25549,7 +30222,6 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "properties" : {}, "type" : "object" } } @@ -25932,11 +30604,13 @@ var pveapi = [ "notafter" : { "description" : "Certificate's notAfter timestamp (UNIX epoch).", "optional" : 1, + "renderer" : "timestamp", "type" : "integer" }, "notbefore" : { "description" : "Certificate's notBefore timestamp (UNIX epoch).", "optional" : 1, + "renderer" : "timestamp", "type" : "integer" }, "pem" : { @@ -25951,6 +30625,7 @@ var pveapi = [ "type" : "string" }, "optional" : 1, + "renderer" : "yaml", "type" : "array" }, "subject" : { @@ -26063,11 +30738,13 @@ var pveapi = [ "notafter" : { "description" : "Certificate's notAfter timestamp (UNIX epoch).", "optional" : 1, + "renderer" : "timestamp", "type" : "integer" }, "notbefore" : { "description" : "Certificate's notBefore timestamp (UNIX epoch).", "optional" : 1, + "renderer" : "timestamp", "type" : "integer" }, "pem" : { @@ -26082,6 +30759,7 @@ var pveapi = [ "type" : "string" }, "optional" : 1, + "renderer" : "yaml", "type" : "array" }, "subject" : { @@ -26165,7 +30843,6 @@ var pveapi = [ }, "proxyto" : "node", "returns" : { - "properties" : {}, "type" : "object" } }, @@ -26315,7 +30992,6 @@ var pveapi = [ }, "proxyto" : "node", "returns" : { - "properties" : {}, "type" : "object" } }, @@ -26436,7 +31112,6 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "properties" : {}, "type" : "array" } } @@ -26864,7 +31539,7 @@ var pveapi = [ "typetext" : "" }, "proxy" : { - "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).", + "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As reasonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).", "format" : "address", "optional" : 1, "type" : "string", @@ -27066,11 +31741,13 @@ var pveapi = [ "localtime" : { "description" : "Seconds since 1970-01-01 00:00:00 (local time)", "minimum" : 1297163644, + "renderer" : "timestamp_gmt", "type" : "integer" }, "time" : { "description" : "Seconds since 1970-01-01 00:00:00 UTC.", "minimum" : 1297163644, + "renderer" : "timestamp", "type" : "integer" }, "timezone" : { @@ -27384,6 +32061,97 @@ var pveapi = [ "leaf" : 1, "path" : "/nodes/{node}/migrateall", "text" : "migrateall" + }, + { + "info" : { + "GET" : { + "description" : "Get the content of /etc/hosts.", + "method" : "GET", + "name" : "get_etc_hosts", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "data" : { + "description" : "The content of /etc/hosts.", + "type" : "string" + }, + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, + "type" : "string" + } + }, + "type" : "object" + } + }, + "POST" : { + "description" : "Write /etc/hosts.", + "method" : "POST", + "name" : "write_etc_hosts", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "data" : { + "description" : "The target content of /etc/hosts.", + "type" : "string", + "typetext" : "" + }, + "digest" : { + "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.", + "maxLength" : 40, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/nodes/{node}", + [ + "Sys.Modify" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/hosts", + "text" : "hosts" } ], "info" : { @@ -27438,7 +32206,61 @@ var pveapi = [ }, "returns" : { "items" : { - "properties" : {}, + "properties" : { + "cpu" : { + "description" : "CPU utilization.", + "optional" : 1, + "renderer" : "fraction_as_percentage", + "type" : "number" + }, + "level" : { + "description" : "Support level.", + "optional" : 1, + "type" : "string" + }, + "maxcpu" : { + "description" : "Number of available CPUs.", + "optional" : 1, + "type" : "integer" + }, + "maxmem" : { + "description" : "Number of available memory in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "integer" + }, + "mem" : { + "description" : "Used memory in bytes.", + "optional" : 1, + "renderer" : "bytes", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string" + }, + "ssl_fingerprint" : { + "description" : "The SSL fingerprint for the node certificate.", + "optional" : 1, + "type" : "string" + }, + "status" : { + "description" : "Node status.", + "enum" : [ + "unknown", + "online", + "offline" + ], + "type" : "string" + }, + "uptime" : { + "description" : "Node uptime in seconds.", + "optional" : 1, + "renderer" : "duration", + "type" : "integer" + } + }, "type" : "object" }, "links" : [ @@ -27645,6 +32467,12 @@ var pveapi = [ "type" : "boolean", "typetext" : "" }, + "lio_tpg" : { + "description" : "target portal group for Linux LIO targets", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "maxfiles" : { "description" : "Maximal number of backup files per VM. Use '0' for unlimted.", "minimum" : 0, @@ -28008,6 +32836,12 @@ var pveapi = [ "type" : "boolean", "typetext" : "" }, + "lio_tpg" : { + "description" : "target portal group for Linux LIO targets", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "maxfiles" : { "description" : "Maximal number of backup files per VM. Use '0' for unlimted.", "minimum" : 0, diff --git a/datacenter.cfg.5-opts.adoc b/datacenter.cfg.5-opts.adoc index a99fa56..dd89533 100644 --- a/datacenter.cfg.5-opts.adoc +++ b/datacenter.cfg.5-opts.adoc @@ -44,7 +44,7 @@ Specify external http proxy which is used for downloads (example: 'http://userna Default keybord layout for vnc server. -`language`: `` :: +`language`: `` :: Default GUI language. diff --git a/pct.1-synopsis.adoc b/pct.1-synopsis.adoc index 24d1f3d..bf60d95 100644 --- a/pct.1-synopsis.adoc +++ b/pct.1-synopsis.adoc @@ -48,7 +48,7 @@ Get container configuration. The (unique) ID of the VM. -*pct console* `` +*pct console* `` `[OPTIONS]` Launch a console for the specified container. @@ -56,6 +56,10 @@ Launch a console for the specified container. The (unique) ID of the VM. +`--escape` `\^?[a-z]` ('default =' `^a`):: + +Escape sequence prefix. For example to use as the escape sequence pass '^b'. + *pct cpusets* Print the list of assigned CPU sets. @@ -72,7 +76,7 @@ The (unique) ID of the VM. The OS template or backup file. -`--arch` `` ('default =' `amd64`):: +`--arch` `` ('default =' `amd64`):: OS architecture type. @@ -108,6 +112,10 @@ NOTE: You can disable fair-scheduler configuration by setting this to 0. Container description. Only used on the configuration web interface. +`--features` `[keyctl=<1|0>] [,mount=] [,nesting=<1|0>]` :: + +Allow containers access to advanced features. + `--force` `` :: Allow to overwrite existing container. @@ -120,7 +128,7 @@ Set a host name for the container. Ignore errors when extracting the template. -`--lock` `` :: +`--lock` `` :: Lock/unlock the VM. @@ -268,7 +276,7 @@ Run a filesystem check (fsck) on a container volume. The (unique) ID of the VM. -`--device` `` :: +`--device` `` :: A volume on which to run the filesystem check @@ -346,7 +354,7 @@ Move a rootfs-/mp-volume to a different storage The (unique) ID of the VM. -``: `` :: +``: `` :: Volume which will be moved. @@ -426,7 +434,7 @@ Resize a container mount point. The (unique) ID of the VM. -``: `` :: +``: `` :: The disk you want to resize. @@ -450,7 +458,7 @@ The (unique) ID of the VM. The OS template or backup file. -`--arch` `` ('default =' `amd64`):: +`--arch` `` ('default =' `amd64`):: OS architecture type. @@ -486,6 +494,10 @@ NOTE: You can disable fair-scheduler configuration by setting this to 0. Container description. Only used on the configuration web interface. +`--features` `[keyctl=<1|0>] [,mount=] [,nesting=<1|0>]` :: + +Allow containers access to advanced features. + `--force` `` :: Allow to overwrite existing container. @@ -498,7 +510,7 @@ Set a host name for the container. Ignore errors when extracting the template. -`--lock` `` :: +`--lock` `` :: Lock/unlock the VM. @@ -610,7 +622,7 @@ Set container options. The (unique) ID of the VM. -`--arch` `` ('default =' `amd64`):: +`--arch` `` ('default =' `amd64`):: OS architecture type. @@ -650,11 +662,15 @@ Container description. Only used on the configuration web interface. Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. +`--features` `[keyctl=<1|0>] [,mount=] [,nesting=<1|0>]` :: + +Allow containers access to advanced features. + `--hostname` `` :: Set a host name for the container. -`--lock` `` :: +`--lock` `` :: Lock/unlock the VM. diff --git a/pct.conf.5-opts.adoc b/pct.conf.5-opts.adoc index fbced2d..7256f5a 100644 --- a/pct.conf.5-opts.adoc +++ b/pct.conf.5-opts.adoc @@ -1,4 +1,4 @@ -`arch`: `` ('default =' `amd64`):: +`arch`: `` ('default =' `amd64`):: OS architecture type. @@ -30,11 +30,27 @@ NOTE: You can disable fair-scheduler configuration by setting this to 0. Container description. Only used on the configuration web interface. +`features`: `[keyctl=<1|0>] [,mount=] [,nesting=<1|0>]` :: + +Allow containers access to advanced features. + +`keyctl`=`` ('default =' `0`);; + +For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker. + +`mount`=`` ;; + +Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc. + +`nesting`=`` ('default =' `0`);; + +Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest. + `hostname`: `` :: Set a host name for the container. -`lock`: `` :: +`lock`: `` :: Lock/unlock the VM. diff --git a/pveceph.1-synopsis.adoc b/pveceph.1-synopsis.adoc index ddb8eec..4720117 100644 --- a/pveceph.1-synopsis.adoc +++ b/pveceph.1-synopsis.adoc @@ -36,7 +36,7 @@ Block device name. Use bluestore instead of filestore. This is the default. -`--fstype` `` ('default =' `xfs`):: +`--fstype` `` ('default =' `xfs`):: File system type (filestore only). diff --git a/pvesm.1-synopsis.adoc b/pvesm.1-synopsis.adoc index 5b1df70..9c5e614 100644 --- a/pvesm.1-synopsis.adoc +++ b/pvesm.1-synopsis.adoc @@ -74,6 +74,10 @@ iscsi provider Access rbd through krbd kernel module. +`--lio_tpg` `` :: + +target portal group for Linux LIO targets + `--maxfiles` ` (0 - N)` :: Maximal number of backup files per VM. Use '0' for unlimted. @@ -216,19 +220,19 @@ Scan remote CIFS server. ``: `` :: -no description available +The server address (name or IP). `--domain` `` :: -no description available +SMB domain (Workgroup). `--password` `` :: -no description available +User password. `--username` `` :: -no description available +User name. *pvesm export* ` ` `[OPTIONS]` @@ -284,7 +288,7 @@ Scan remote GlusterFS server. ``: `` :: -no description available +The server address (name or IP). *pvesm help* `[OPTIONS]` @@ -326,13 +330,13 @@ A snapshot to delete on success Whether the stream includes intermediate snapshots -*pvesm iscsiscan* `--portal ` `[OPTIONS]` +*pvesm iscsiscan* `` Scan remote iSCSI server. -`--portal` `` :: +``: `` :: -no description available +The iSCSI portal (IP or DNS name with optional port). *pvesm list* `` `[OPTIONS]` @@ -368,7 +372,7 @@ Scan remote NFS server. ``: `` :: -no description available +The server address (name or IP). *pvesm path* `` @@ -448,6 +452,10 @@ Assume the given path is an externally managed mountpoint and consider the stora Access rbd through krbd kernel module. +`--lio_tpg` `` :: + +target portal group for Linux LIO targets + `--maxfiles` ` (0 - N)` :: Maximal number of backup files per VM. Use '0' for unlimted. diff --git a/qm.1-synopsis.adoc b/qm.1-synopsis.adoc index d77a5d3..5c84a1f 100644 --- a/qm.1-synopsis.adoc +++ b/qm.1-synopsis.adoc @@ -1,16 +1,8 @@ *qm* ` [ARGS] [OPTIONS]` -*qm agent* ` ` +*qm agent* -Execute Qemu Guest Agent commands. - -``: ` (1 - N)` :: - -The (unique) ID of the VM. - -``: `` :: - -The QGA command. +An alias for 'qm guest cmd'. *qm clone* ` ` `[OPTIONS]` @@ -81,9 +73,9 @@ The (unique) ID of the VM. Enable/disable ACPI. -`--agent` `` ('default =' `0`):: +`--agent` `[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]` :: -Enable/disable Qemu GuestAgent. +Enable/disable Qemu GuestAgent and its properties. `--archive` `` :: @@ -212,7 +204,7 @@ Lock/unlock the VM. `--machine` `(pc|pc(-i440fx)?-\d+\.\d+(\.pxe)?|q35|pc-q35-\d+\.\d+(\.pxe)?)` :: -Specific the Qemu machine type. +Specifies the Qemu machine type. `--memory` ` (16 - N)` ('default =' `512`):: @@ -356,7 +348,7 @@ Configure an USB device (n is 0 to 4). Number of hotplugged vcpus. -`--vga` `` :: +`--vga` `` :: Select the VGA type. @@ -364,6 +356,10 @@ Select the VGA type. Use volume as VIRTIO hard disk (n is 0 to 15). +`--vmgenid` `` ('default =' `1 (autogenerated)`):: + +Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly. + `--vmstatestorage` `` :: Default storage for VM state volumes/files. @@ -400,6 +396,66 @@ The (unique) ID of the VM. Ignore locks - only root is allowed to use this option. +*qm guest cmd* ` ` + +Execute Qemu Guest Agent commands. + +``: ` (1 - N)` :: + +The (unique) ID of the VM. + +``: `` :: + +The QGA command. + +*qm guest exec* ` []` `[OPTIONS]` + +Executes the given command via the guest agent + +``: ` (1 - N)` :: + +The (unique) ID of the VM. + +``: `` :: + +Extra arguments as array + +`--synchronous` `` ('default =' `1`):: + +If set to off, returns the pid immediately instead of waiting for the commmand to finish or the timeout. + +`--timeout` ` (0 - N)` ('default =' `30`):: + +The maximum time to wait synchronously for the command to finish. If reached, the pid gets returned. Set to 0 to deactivate + +*qm guest exec-status* ` ` + +Gets the status of the given pid started by the guest-agent + +``: ` (1 - N)` :: + +The (unique) ID of the VM. + +``: `` :: + +The PID to query + +*qm guest passwd* ` ` `[OPTIONS]` + +Sets the password for the given user to the given password + +``: ` (1 - N)` :: + +The (unique) ID of the VM. + +``: `` :: + +The user to set the password for. + +`--crypted` `` ('default =' `0`):: + +set to 1 if the password has already been passed through crypt() + *qm help* `[OPTIONS]` Get help about specified command. @@ -569,6 +625,10 @@ The (unique) ID of the VM. Rescan all storages and update disk sizes and unused disk images. +`--dryrun` `` ('default =' `0`):: + +Do not actually write changes out to VM config(s). + `--vmid` ` (1 - N)` :: The (unique) ID of the VM. @@ -667,9 +727,9 @@ The (unique) ID of the VM. Enable/disable ACPI. -`--agent` `` ('default =' `0`):: +`--agent` `[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]` :: -Enable/disable Qemu GuestAgent. +Enable/disable Qemu GuestAgent and its properties. `--args` `` :: @@ -798,7 +858,7 @@ Lock/unlock the VM. `--machine` `(pc|pc(-i440fx)?-\d+\.\d+(\.pxe)?|q35|pc-q35-\d+\.\d+(\.pxe)?)` :: -Specific the Qemu machine type. +Specifies the Qemu machine type. `--memory` ` (16 - N)` ('default =' `512`):: @@ -932,7 +992,7 @@ Configure an USB device (n is 0 to 4). Number of hotplugged vcpus. -`--vga` `` :: +`--vga` `` :: Select the VGA type. @@ -940,6 +1000,10 @@ Select the VGA type. Use volume as VIRTIO hard disk (n is 0 to 15). +`--vmgenid` `` ('default =' `1 (autogenerated)`):: + +Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly. + `--vmstatestorage` `` :: Default storage for VM state volumes/files. @@ -1016,7 +1080,7 @@ The (unique) ID of the VM. `--machine` `(pc|pc(-i440fx)?-\d+\.\d+(\.pxe)?|q35|pc-q35-\d+\.\d+(\.pxe)?)` :: -Specific the Qemu machine type. +Specifies the Qemu machine type. `--migratedfrom` `` :: diff --git a/qm.conf.5-opts.adoc b/qm.conf.5-opts.adoc index df598af..1e28f21 100644 --- a/qm.conf.5-opts.adoc +++ b/qm.conf.5-opts.adoc @@ -2,10 +2,18 @@ Enable/disable ACPI. -`agent`: `` ('default =' `0`):: +`agent`: `[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]` :: + +Enable/disable Qemu GuestAgent and its properties. + +`enabled`=`` ('default =' `0`);; Enable/disable Qemu GuestAgent. +`fstrim_cloned_disks`=`` ('default =' `0`);; + +Run fstrim after cloning/moving a disk. + `args`: `` :: Arbitrary arguments passed to kvm, for example: @@ -64,7 +72,7 @@ Emulated CPU type. `flags`=`<+FLAG[;-FLAG...]>` ;; -List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl'. +List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'. `hidden`=`` ('default =' `0`);; @@ -365,7 +373,7 @@ Lock/unlock the VM. `machine`: `(pc|pc(-i440fx)?-\d+\.\d+(\.pxe)?|q35|pc-q35-\d+\.\d+(\.pxe)?)` :: -Specific the Qemu machine type. +Specifies the Qemu machine type. `memory`: ` (16 - N)` ('default =' `512`):: @@ -963,7 +971,7 @@ Specifies whether if given host option is a USB3 device or port (this does curre Number of hotplugged vcpus. -`vga`: `` :: +`vga`: `` :: Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal. @@ -1137,6 +1145,11 @@ Force disk geometry bios translation mode. Write error action. +`vmgenid`: `` ('default =' `1 (autogenerated)`):: + +The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc. +Note that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file. + `vmstatestorage`: `` :: Default storage for VM state volumes/files. -- 2.39.2