X-Git-Url: https://git.proxmox.com/?p=pve-docs.git;a=blobdiff_plain;f=api-viewer%2Fapidata.js;h=60e0a238d8076d5371992170673939d2de9ab18b;hp=a8916dd57e78d8fd92244d3027108505b4e58956;hb=94958b8b9230d5b9b5e2e70c481f115b18a5fa0b;hpb=5d9c884c7b3f4980abbd4cbe91ea588a03266485 diff --git a/api-viewer/apidata.js b/api-viewer/apidata.js index a8916dd..60e0a23 100644 --- a/api-viewer/apidata.js +++ b/api-viewer/apidata.js @@ -136,6 +136,13 @@ var pveapi = [ "optional" : 1, "type" : "string", "typetext" : "" + }, + "source" : { + "description" : "Source of the replication.", + "format" : "pve-node", + "optional" : 1, + "type" : "string", + "typetext" : "" } }, "type" : "object" @@ -237,6 +244,13 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "source" : { + "description" : "Source of the replication.", + "format" : "pve-node", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "target" : { "description" : "Target node.", "format" : "pve-node", @@ -276,6 +290,98 @@ var pveapi = [ { "children" : [ { + "children" : [ + { + "info" : { + "DELETE" : { + "description" : "Removes a node from the cluster configuration.", + "method" : "DELETE", + "name" : "delnode", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + }, + "POST" : { + "description" : "Adds a node to the cluster configuration. This call is for internal use.", + "method" : "POST", + "name" : "addnode", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "force" : { + "description" : "Do not throw error if node already exists.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "nodeid" : { + "description" : "Node id for this node.", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "ring0_addr" : { + "default" : "Hostname of the node", + "description" : "Hostname (or IP) of the corosync ring0 address of this node.", + "format" : "address", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ring1_addr" : { + "description" : "Hostname (or IP) of the corosync ring1 address of this node. Requires a valid configured ring 1 (bindnet1_addr) in the cluster.", + "format" : "address", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "votes" : { + "description" : "Number of votes for this node", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + } + } + }, + "protected" : 1, + "returns" : { + "properties" : { + "corosync_authkey" : { + "type" : "string" + }, + "corosync_conf" : { + "type" : "string" + } + }, + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/cluster/config/nodes/{node}", + "text" : "{node}" + } + ], "info" : { "GET" : { "description" : "Corosync node list.", @@ -312,10 +418,166 @@ var pveapi = [ } } }, - "leaf" : 1, + "leaf" : 0, "path" : "/cluster/config/nodes", "text" : "nodes" }, + { + "info" : { + "GET" : { + "description" : "Get information needed to join this cluster over the connected node.", + "method" : "GET", + "name" : "join_info", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "default" : "current connected node", + "description" : "The node for which the joinee gets the nodeinfo. ", + "format" : "pve-node", + "optional" : 1, + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit" + ] + ] + }, + "returns" : { + "additionalProperties" : 0, + "properties" : { + "config_digest" : { + "type" : "string" + }, + "nodelist" : { + "items" : { + "additionalProperties" : 1, + "properties" : { + "name" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string" + }, + "nodeid" : { + "description" : "Node id for this node.", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "pve_addr" : { + "format" : "ip", + "type" : "string" + }, + "pve_fp" : { + "description" : "Certificate SHA 256 fingerprint.", + "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}", + "type" : "string" + }, + "quorum_votes" : { + "minimum" : 0, + "type" : "integer" + }, + "ring0_addr" : { + "default" : "Hostname of the node", + "description" : "Hostname (or IP) of the corosync ring0 address of this node.", + "format" : "address", + "optional" : 1, + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + }, + "preferred_node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string" + }, + "totem" : { + "type" : "object" + } + }, + "type" : "object" + } + }, + "POST" : { + "description" : "Joins this node into an existing cluster.", + "method" : "POST", + "name" : "join", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "fingerprint" : { + "description" : "Certificate SHA 256 fingerprint.", + "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}", + "type" : "string" + }, + "force" : { + "description" : "Do not throw error if node already exists.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "hostname" : { + "description" : "Hostname (or IP) of an existing cluster member.", + "type" : "string", + "typetext" : "" + }, + "nodeid" : { + "description" : "Node id for this node.", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "password" : { + "description" : "Superuser (root) password of peer node.", + "maxLength" : 128, + "type" : "string", + "typetext" : "" + }, + "ring0_addr" : { + "default" : "IP resolved by node's hostname", + "description" : "Hostname (or IP) of the corosync ring0 address of this node.", + "format" : "address", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ring1_addr" : { + "description" : "Hostname (or IP) of the corosync ring1 address of this node. Requires a valid configured ring 1 (bindnet1_addr) in the cluster.", + "format" : "address", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "votes" : { + "description" : "Number of votes for this node", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + } + } + }, + "protected" : 1, + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/cluster/config/join", + "text" : "join" + }, { "info" : { "GET" : { @@ -335,7 +597,6 @@ var pveapi = [ ] }, "returns" : { - "properties" : {}, "type" : "object" } } @@ -375,6 +636,70 @@ var pveapi = [ ], "type" : "array" } + }, + "POST" : { + "description" : "Generate new cluster configuration.", + "method" : "POST", + "name" : "create", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "bindnet0_addr" : { + "description" : "This specifies the network address the corosync ring 0 executive should bind to and defaults to the local IP address of the node.", + "format" : "ip", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "bindnet1_addr" : { + "description" : "This specifies the network address the corosync ring 1 executive should bind to and is optional.", + "format" : "ip", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "clustername" : { + "description" : "The name of the cluster.", + "format" : "pve-node", + "maxLength" : 15, + "type" : "string", + "typetext" : "" + }, + "nodeid" : { + "description" : "Node id for this node.", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "ring0_addr" : { + "default" : "Hostname of the node", + "description" : "Hostname (or IP) of the corosync ring0 address of this node.", + "format" : "address", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "ring1_addr" : { + "description" : "Hostname (or IP) of the corosync ring1 address of this node. Requires a valid configured ring 1 (bindnet1_addr) in the cluster.", + "format" : "address", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "votes" : { + "description" : "Number of votes for this node.", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "protected" : 1, + "returns" : { + "type" : "string" + } } }, "leaf" : 0, @@ -468,23 +793,69 @@ var pveapi = [ }, "proxyto" : null, "returns" : { - "properties" : { - "pos" : { - "type" : "integer" - } - }, - "type" : "object" - } - }, - "PUT" : { - "description" : "Modify rule data.", - "method" : "PUT", - "name" : "update_rule", - "parameters" : { - "additionalProperties" : 0, "properties" : { "action" : { - "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.", + "type" : "string" + }, + "comment" : { + "optional" : 1, + "type" : "string" + }, + "dest" : { + "optional" : 1, + "type" : "string" + }, + "dport" : { + "optional" : 1, + "type" : "string" + }, + "enable" : { + "optional" : 1, + "type" : "integer" + }, + "iface" : { + "optional" : 1, + "type" : "string" + }, + "ipversion" : { + "optional" : 1, + "type" : "integer" + }, + "macro" : { + "optional" : 1, + "type" : "integer" + }, + "pos" : { + "type" : "integer" + }, + "proto" : { + "optional" : 1, + "type" : "string" + }, + "source" : { + "optional" : 1, + "type" : "string" + }, + "sport" : { + "optional" : 1, + "type" : "string" + }, + "type" : { + "type" : "string" + } + }, + "type" : "object" + } + }, + "PUT" : { + "description" : "Modify rule data.", + "method" : "PUT", + "name" : "update_rule", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "action" : { + "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.", "maxLength" : 20, "minLength" : 2, "optional" : 1, @@ -999,8 +1370,54 @@ var pveapi = [ "proxyto" : null, "returns" : { "properties" : { + "action" : { + "type" : "string" + }, + "comment" : { + "optional" : 1, + "type" : "string" + }, + "dest" : { + "optional" : 1, + "type" : "string" + }, + "dport" : { + "optional" : 1, + "type" : "string" + }, + "enable" : { + "optional" : 1, + "type" : "integer" + }, + "iface" : { + "optional" : 1, + "type" : "string" + }, + "ipversion" : { + "optional" : 1, + "type" : "integer" + }, + "macro" : { + "optional" : 1, + "type" : "integer" + }, "pos" : { "type" : "integer" + }, + "proto" : { + "optional" : 1, + "type" : "string" + }, + "source" : { + "optional" : 1, + "type" : "string" + }, + "sport" : { + "optional" : 1, + "type" : "string" + }, + "type" : { + "type" : "string" } }, "type" : "object" @@ -1941,6 +2358,12 @@ var pveapi = [ }, "returns" : { "properties" : { + "ebtables" : { + "default" : 1, + "description" : "Enable ebtables rules cluster wide.", + "optional" : 1, + "type" : "boolean" + }, "enable" : { "description" : "Enable or disable the firewall cluster wide.", "minimum" : 0, @@ -1992,6 +2415,13 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "ebtables" : { + "default" : 1, + "description" : "Enable ebtables rules cluster wide.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, "enable" : { "description" : "Enable or disable the firewall cluster wide.", "minimum" : 0, @@ -2953,11 +3383,12 @@ var pveapi = [ "started", "stopped", "enabled", - "disabled" + "disabled", + "ignored" ], "optional" : 1, "type" : "string", - "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n" + "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n" } }, "type" : "object" @@ -3078,11 +3509,12 @@ var pveapi = [ "started", "stopped", "enabled", - "disabled" + "disabled", + "ignored" ], "optional" : 1, "type" : "string", - "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n" + "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n" }, "type" : { "description" : "Resource type.", @@ -3492,48 +3924,328 @@ var pveapi = [ "text" : "ha" }, { - "info" : { - "GET" : { - "description" : "Read cluster log", - "method" : "GET", - "name" : "log", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "max" : { - "description" : "Maximum number of entries.", - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } + "children" : [ + { + "children" : [ + { + "info" : { + "DELETE" : { + "description" : "Deactivate existing ACME account at CA.", + "method" : "DELETE", + "name" : "deactivate_account", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "name" : { + "default" : "default", + "description" : "ACME account config file name.", + "format" : "pve-configid", + "format_description" : "name", + "optional" : 1, + "type" : "string", + "typetext" : "" + } + } + }, + "protected" : 1, + "returns" : { + "type" : "string" + } + }, + "GET" : { + "description" : "Return existing ACME account information.", + "method" : "GET", + "name" : "get_account", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "name" : { + "default" : "default", + "description" : "ACME account config file name.", + "format" : "pve-configid", + "format_description" : "name", + "optional" : 1, + "type" : "string", + "typetext" : "" + } + } + }, + "protected" : 1, + "returns" : { + "additionalProperties" : 0, + "properties" : { + "account" : { + "optional" : 1, + "renderer" : "yaml", + "type" : "object" + }, + "directory" : { + "description" : "URL of ACME CA directory endpoint.", + "optional" : 1, + "pattern" : "^https?://.*", + "type" : "string" + }, + "location" : { + "optional" : 1, + "type" : "string" + }, + "tos" : { + "optional" : 1, + "type" : "string" + } + }, + "type" : "object" + } + }, + "PUT" : { + "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.", + "method" : "PUT", + "name" : "update_account", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "contact" : { + "description" : "Contact email addresses.", + "format" : "email-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "name" : { + "default" : "default", + "description" : "ACME account config file name.", + "format" : "pve-configid", + "format_description" : "name", + "optional" : 1, + "type" : "string", + "typetext" : "" + } + } + }, + "protected" : 1, + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/cluster/acme/account/{name}", + "text" : "{name}" } - }, - "permissions" : { - "user" : "all" - }, - "returns" : { - "items" : { - "properties" : {}, - "type" : "object" + ], + "info" : { + "GET" : { + "description" : "ACMEAccount index.", + "method" : "GET", + "name" : "account_index", + "parameters" : { + "additionalProperties" : 0 + }, + "permissions" : { + "user" : "all" + }, + "protected" : 1, + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } }, - "type" : "array" - } - } - }, - "leaf" : 1, - "path" : "/cluster/log", - "text" : "log" - }, - { - "info" : { - "GET" : { - "description" : "Resources index (cluster wide).", - "method" : "GET", - "name" : "resources", - "parameters" : { - "additionalProperties" : 0, - "properties" : { + "POST" : { + "description" : "Register a new ACME account with CA.", + "method" : "POST", + "name" : "register_account", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "contact" : { + "description" : "Contact email addresses.", + "format" : "email-list", + "type" : "string", + "typetext" : "" + }, + "directory" : { + "default" : "https://acme-v02.api.letsencrypt.org/directory", + "description" : "URL of ACME CA directory endpoint.", + "optional" : 1, + "pattern" : "^https?://.*", + "type" : "string" + }, + "name" : { + "default" : "default", + "description" : "ACME account config file name.", + "format" : "pve-configid", + "format_description" : "name", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "tos_url" : { + "description" : "URL of CA TermsOfService - setting this indicates agreement.", + "optional" : 1, + "type" : "string", + "typetext" : "" + } + } + }, + "protected" : 1, + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 0, + "path" : "/cluster/acme/account", + "text" : "account" + }, + { + "info" : { + "GET" : { + "description" : "Retrieve ACME TermsOfService URL from CA.", + "method" : "GET", + "name" : "get_tos", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "directory" : { + "default" : "https://acme-v02.api.letsencrypt.org/directory", + "description" : "URL of ACME CA directory endpoint.", + "optional" : 1, + "pattern" : "^https?://.*", + "type" : "string" + } + } + }, + "permissions" : { + "user" : "all" + }, + "returns" : { + "description" : "ACME TermsOfService URL.", + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/cluster/acme/tos", + "text" : "tos" + }, + { + "info" : { + "GET" : { + "description" : "Get named known ACME directory endpoints.", + "method" : "GET", + "name" : "get_directories", + "parameters" : { + "additionalProperties" : 0 + }, + "permissions" : { + "user" : "all" + }, + "returns" : { + "items" : { + "additionalProperties" : 0, + "properties" : { + "name" : { + "type" : "string" + }, + "url" : { + "description" : "URL of ACME CA directory endpoint.", + "pattern" : "^https?://.*", + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/cluster/acme/directories", + "text" : "directories" + } + ], + "info" : { + "GET" : { + "description" : "ACMEAccount index.", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0 + }, + "permissions" : { + "user" : "all" + }, + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/cluster/acme", + "text" : "acme" + }, + { + "info" : { + "GET" : { + "description" : "Read cluster log", + "method" : "GET", + "name" : "log", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "max" : { + "description" : "Maximum number of entries.", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "user" : "all" + }, + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/cluster/log", + "text" : "log" + }, + { + "info" : { + "GET" : { + "description" : "Resources index (cluster wide).", + "method" : "GET", + "name" : "resources", + "parameters" : { + "additionalProperties" : 0, + "properties" : { "type" : { "enum" : [ "vm", @@ -3550,7 +4262,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" @@ -3609,7 +4410,6 @@ var pveapi = [ ] }, "returns" : { - "properties" : {}, "type" : "object" } }, @@ -3620,12 +4420,56 @@ var pveapi = [ "parameters" : { "additionalProperties" : 0, "properties" : { + "bwlimit" : { + "description" : "Set bandwidth/io limits various operations.", + "format" : { + "clone" : { + "description" : "bandwidth limit in MiB/s for cloning disks", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "default" : { + "description" : "default bandwidth limit in MiB/s", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "migration" : { + "description" : "bandwidth limit in MiB/s for migrating guests", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "move" : { + "description" : "bandwidth limit in MiB/s for moving disks", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "restore" : { + "description" : "bandwidth limit in MiB/s for restoring guests from backups", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[clone=] [,default=] [,migration=] [,move=] [,restore=]" + }, "console" : { - "description" : "Select the default Console viewer. You can either use the builtin java applet (VNC), an external virt-viewer comtatible application (SPICE), or an HTML5 based viewer (noVNC).", + "description" : "Select the default Console viewer. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer comtatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.", "enum" : [ "applet", "vv", - "html5" + "html5", + "xtermjs" ], "optional" : 1, "type" : "string" @@ -3696,8 +4540,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" @@ -3971,45 +4832,91 @@ var pveapi = [ }, "proxyto" : null, "returns" : { - "properties" : { - "pos" : { - "type" : "integer" - } - }, - "type" : "object" - } - }, - "PUT" : { - "description" : "Modify rule data.", - "method" : "PUT", - "name" : "update_rule", - "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" : "" + "type" : "string" }, - "delete" : { - "description" : "A list of settings you want to delete.", - "format" : "pve-configid-list", + "dest" : { "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, - "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", + "dport" : { + "optional" : 1, + "type" : "string" + }, + "enable" : { + "optional" : 1, + "type" : "integer" + }, + "iface" : { + "optional" : 1, + "type" : "string" + }, + "ipversion" : { + "optional" : 1, + "type" : "integer" + }, + "macro" : { + "optional" : 1, + "type" : "integer" + }, + "pos" : { + "type" : "integer" + }, + "proto" : { + "optional" : 1, + "type" : "string" + }, + "source" : { + "optional" : 1, + "type" : "string" + }, + "sport" : { + "optional" : 1, + "type" : "string" + }, + "type" : { + "type" : "string" + } + }, + "type" : "object" + } + }, + "PUT" : { + "description" : "Modify rule data.", + "method" : "PUT", + "name" : "update_rule", + "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, + "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" : "" @@ -5560,946 +6467,1431 @@ var pveapi = [ "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" : "" + "children" : [ + { + "info" : { + "POST" : { + "description" : "Execute fsfreeze-freeze.", + "method" : "POST", + "name" : "fsfreeze-freeze", + "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)" + } + } }, - "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 single `result` property.", + "type" : "object" } } }, - "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" : "" + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze", + "text" : "fsfreeze-freeze" + }, + { + "info" : { + "POST" : { + "description" : "Execute fsfreeze-status.", + "method" : "POST", + "name" : "fsfreeze-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)" + } + } }, - "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 single `result` property.", + "type" : "object" } } }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Audit" - ] - ] - }, - "protected" : 1, - "returns" : { - "items" : { - "properties" : {}, - "type" : "object" - }, - "type" : "array" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/rrddata", - "text" : "rrddata" - }, - { - "info" : { - "GET" : { - "description" : "Get current virtual machine configuration. This does not include pending configuration changes (see 'pending' API).", - "method" : "GET", - "name" : "vm_config", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "current" : { - "default" : 0, - "description" : "Get current values (instead of pending values).", - "optional" : 1, - "type" : "boolean", - "typetext" : "" + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status", + "text" : "fsfreeze-status" + }, + { + "info" : { + "POST" : { + "description" : "Execute fsfreeze-thaw.", + "method" : "POST", + "name" : "fsfreeze-thaw", + "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" : "" + "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 single `result` property.", + "type" : "object" } } }, - "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.", - "type" : "string" - } - }, - "type" : "object" - } + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw", + "text" : "fsfreeze-thaw" }, - "POST" : { - "description" : "Set virtual machine options (asynchrounous API).", - "method" : "POST", - "name" : "update_vm_async", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "acpi" : { - "default" : 1, - "description" : "Enable/disable ACPI.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "agent" : { - "default" : 0, - "description" : "Enable/disable Qemu GuestAgent.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "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" + { + "info" : { + "POST" : { + "description" : "Execute fstrim.", + "method" : "POST", + "name" : "fstrim", + "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)" + } + } }, - "autostart" : { - "default" : 0, - "description" : "Automatic restart after crash (currently ignored).", - "optional" : 1, - "type" : "boolean", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "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)" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns an object with a single `result` property.", + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim", + "text" : "fstrim" + }, + { + "info" : { + "GET" : { + "description" : "Execute get-fsinfo.", + "method" : "GET", + "name" : "get-fsinfo", + "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)" + } + } }, - "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)" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "bios" : { - "default" : "seabios", - "description" : "Select BIOS implementation.", - "enum" : [ - "seabios", - "ovmf" - ], - "optional" : 1, - "type" : "string" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns an object with a single `result` property.", + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo", + "text" : "get-fsinfo" + }, + { + "info" : { + "GET" : { + "description" : "Execute get-host-name.", + "method" : "GET", + "name" : "get-host-name", + "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)" + } + } }, - "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" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "bootdisk" : { - "description" : "Enable booting from specified disk.", - "format" : "pve-qm-bootdisk", - "optional" : 1, - "pattern" : "(ide|sata|scsi|virtio)\\d+", - "type" : "string" - }, - "cdrom" : { - "description" : "This is an alias for option -ide2", - "format" : "pve-qm-ide", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "cores" : { - "default" : 1, - "description" : "The number of cores per socket.", - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - }, - "cpu" : { - "description" : "Emulated CPU type.", - "format" : { - "cputype" : { - "default" : "kvm64", - "default_key" : 1, - "description" : "Emulated CPU type.", - "enum" : [ - "486", - "athlon", - "Broadwell", - "Broadwell-noTSX", - "Conroe", - "core2duo", - "coreduo", - "Haswell", - "Haswell-noTSX", - "host", - "IvyBridge", - "kvm32", - "kvm64", - "Nehalem", - "Opteron_G1", - "Opteron_G2", - "Opteron_G3", - "Opteron_G4", - "Opteron_G5", - "Penryn", - "pentium", - "pentium2", - "pentium3", - "phenom", - "qemu32", - "qemu64", - "SandyBridge", - "Skylake-Client", - "Westmere" - ], - "type" : "string" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns an object with a single `result` property.", + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name", + "text" : "get-host-name" + }, + { + "info" : { + "GET" : { + "description" : "Execute get-memory-block-info.", + "method" : "GET", + "name" : "get-memory-block-info", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "hidden" : { - "default" : 0, - "description" : "Do not identify as a KVM virtual machine.", - "optional" : 1, - "type" : "boolean" + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" } - }, - "optional" : 1, - "type" : "string", - "typetext" : "[cputype=] [,hidden=<1|0>]" + } }, - "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." + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "cpuunits" : { - "default" : 1024, - "description" : "CPU weight for a VM.", - "maximum" : 500000, - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - 500000)", - "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.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0." + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns an object with a single `result` property.", + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info", + "text" : "get-memory-block-info" + }, + { + "info" : { + "GET" : { + "description" : "Execute get-memory-blocks.", + "method" : "GET", + "name" : "get-memory-blocks", + "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)" + } + } }, - "delete" : { - "description" : "A list of settings you want to delete.", - "format" : "pve-configid-list", - "optional" : 1, - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "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" : "" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns an object with a single `result` property.", + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks", + "text" : "get-memory-blocks" + }, + { + "info" : { + "GET" : { + "description" : "Execute get-osinfo.", + "method" : "GET", + "name" : "get-osinfo", + "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)" + } + } }, - "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" : "" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "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" : "" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns an object with a single `result` property.", + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo", + "text" : "get-osinfo" + }, + { + "info" : { + "GET" : { + "description" : "Execute get-time.", + "method" : "GET", + "name" : "get-time", + "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)" + } + } }, - "freeze" : { - "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).", - "optional" : 1, - "type" : "boolean", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "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" : { - "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" : "" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns an object with a single `result` property.", + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time", + "text" : "get-time" + }, + { + "info" : { + "GET" : { + "description" : "Execute get-timezone.", + "method" : "GET", + "name" : "get-timezone", + "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)" + } + } }, - "hugepages" : { - "description" : "Enable/disable hugepages memory.", - "enum" : [ - "any", - "2", - "1024" - ], - "optional" : 1, - "type" : "string" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "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, - "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" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Returns an object with a single `result` property.", + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone", + "text" : "get-timezone" + }, + { + "info" : { + "GET" : { + "description" : "Execute get-users.", + "method" : "GET", + "name" : "get-users", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "bps_max_length" : { - "description" : "Maximum length of I/O bursts in seconds.", - "format_description" : "seconds", + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", "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" + "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" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users", + "text" : "get-users" + }, + { + "info" : { + "GET" : { + "description" : "Execute get-vcpus.", + "method" : "GET", + "name" : "get-vcpus", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "bps_rd_max_length" : { - "description" : "Maximum length of read I/O bursts in seconds.", - "format_description" : "seconds", + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", "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" + "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" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus", + "text" : "get-vcpus" + }, + { + "info" : { + "GET" : { + "description" : "Execute info.", + "method" : "GET", + "name" : "info", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "bps_wr_max_length" : { - "description" : "Maximum length of write I/O bursts in seconds.", - "format_description" : "seconds", + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", "minimum" : 1, - "optional" : 1, - "type" : "integer" + "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" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/info", + "text" : "info" + }, + { + "info" : { + "GET" : { + "description" : "Execute network-get-interfaces.", + "method" : "GET", + "name" : "network-get-interfaces", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "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", + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", "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" + "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" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces", + "text" : "network-get-interfaces" + }, + { + "info" : { + "POST" : { + "description" : "Execute ping.", + "method" : "POST", + "name" : "ping", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "iops_rd_max_length" : { - "description" : "Maximum length of read I/O bursts in seconds.", - "format_description" : "seconds", + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", "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" + "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" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/ping", + "text" : "ping" + }, + { + "info" : { + "POST" : { + "description" : "Execute shutdown.", + "method" : "POST", + "name" : "shutdown", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "iops_wr_max" : { - "description" : "Maximum unthrottled write I/O pool in operations per second.", - "format_description" : "iops", - "optional" : 1, - "type" : "integer" + "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" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown", + "text" : "shutdown" + }, + { + "info" : { + "POST" : { + "description" : "Execute suspend-disk.", + "method" : "POST", + "name" : "suspend-disk", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "iops_wr_max_length" : { - "description" : "Maximum length of write I/O bursts in seconds.", - "format_description" : "seconds", + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", "minimum" : 1, - "optional" : 1, - "type" : "integer" + "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" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk", + "text" : "suspend-disk" + }, + { + "info" : { + "POST" : { + "description" : "Execute suspend-hybrid.", + "method" : "POST", + "name" : "suspend-hybrid", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "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" + "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" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid", + "text" : "suspend-hybrid" + }, + { + "info" : { + "POST" : { + "description" : "Execute suspend-ram.", + "method" : "POST", + "name" : "suspend-ram", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "mbps_max" : { - "description" : "Maximum unthrottled r/w pool in megabytes per second.", - "format_description" : "mbps", + "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" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram", + "text" : "suspend-ram" + }, + { + "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" : "number" + "type" : "boolean", + "typetext" : "" }, - "mbps_rd" : { - "description" : "Maximum read speed in megabytes per second.", - "format_description" : "mbps", - "optional" : 1, - "type" : "number" + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "mbps_rd_max" : { - "description" : "Maximum unthrottled read pool in megabytes per second.", - "format_description" : "mbps", - "optional" : 1, - "type" : "number" + "password" : { + "description" : "The new password.", + "maxLength" : 64, + "minLength" : 5, + "type" : "string", + "typetext" : "" }, - "mbps_wr" : { - "description" : "Maximum write speed in megabytes per second.", - "format_description" : "mbps", - "optional" : 1, - "type" : "number" + "username" : { + "description" : "The user to set the password for.", + "type" : "string", + "typetext" : "" }, - "mbps_wr_max" : { - "description" : "Maximum unthrottled write pool in megabytes per second.", - "format_description" : "mbps", - "optional" : 1, - "type" : "number" + "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" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password", + "text" : "set-user-password" + }, + { + "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" : "" }, - "media" : { - "default" : "disk", - "description" : "The drive's media type.", - "enum" : [ - "cdrom", - "disk" - ], + "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" : { + "properties" : { + "pid" : { + "description" : "The PID of the process started by the guest-agent.", + "type" : "integer" + } + }, + "type" : "object" + } + } + }, + "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)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "err-data" : { + "description" : "stderr of the process", "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, + "err-truncated" : { + "description" : "true if stderr was not fully captured", "optional" : 1, - "type" : "string" + "type" : "boolean" }, - "replicate" : { - "default" : 1, - "description" : "Whether the drive should considered for replication jobs.", + "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" }, - "rerror" : { - "description" : "Read error action.", - "enum" : [ - "ignore", - "report", - "stop" - ], + "out-data" : { + "description" : "stdout of the process", "optional" : 1, "type" : "string" }, - "secs" : { - "description" : "Force the drive's physical geometry to have a specific sector count.", + "out-truncated" : { + "description" : "true if stdout was not fully captured", "optional" : 1, - "type" : "integer" + "type" : "boolean" }, - "serial" : { - "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.", - "format" : "urlencoded", - "format_description" : "serial", - "maxLength" : 60, + "signal" : { + "description" : "signal number or exception code if the process was abnormally terminated.", "optional" : 1, - "type" : "string" + "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" : "" }, - "size" : { - "description" : "Disk size. This is purely informational and has no effect.", - "format" : "disk-size", - "format_description" : "DiskSize", - "optional" : 1, + "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 `content` property.", + "properties" : { + "content" : { + "description" : "The content of the file, maximum 16777216", "type" : "string" }, - "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "truncated" : { + "description" : "If set to 1, the output is truncated and not complete", "optional" : 1, "type" : "boolean" + } + }, + "type" : "object" + } + } + }, + "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" : "" }, - "trans" : { - "description" : "Force disk geometry bios translation mode.", - "enum" : [ - "none", - "lba", - "auto" - ], - "optional" : 1, - "type" : "string" + "file" : { + "description" : "The path to the file.", + "type" : "string", + "typetext" : "" }, - "volume" : { - "alias" : "file" + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "werror" : { - "description" : "Write error action.", - "enum" : [ - "enospc", - "ignore", - "report", - "stop" - ], - "optional" : 1, - "type" : "string" + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" } - }, - "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=] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" - }, - "keyboard" : { - "default" : "en-us", - "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.conf' configuration file.", - "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" + } }, - "kvm" : { - "default" : 1, - "description" : "Enable/disable KVM hardware virtualization.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Monitor" + ] + ] }, - "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" : "" + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write", + "text" : "file-write" + } + ], + "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" : "" }, - "lock" : { - "description" : "Lock/unlock the VM.", + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "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" + } + }, + "POST" : { + "description" : "Execute Qemu Guest Agent commands.", + "method" : "POST", + "name" : "agent", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "command" : { + "description" : "The QGA command.", "enum" : [ - "migrate", - "backup", - "snapshot", - "rollback" + "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" ], - "optional" : 1, "type" : "string" }, - "machine" : { - "description" : "Specific the Qemu machine type.", - "maxLength" : 40, - "optional" : 1, - "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)", - "type" : "string" + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "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, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, "type" : "integer", - "typetext" : " (16 - N)" - }, - "migrate_downtime" : { - "default" : 0.1, - "description" : "Set maximum tolerated downtime (in seconds) for migrations.", - "minimum" : 0, + "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" : "number", - "typetext" : " (0 - N)" + "type" : "string" }, - "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)" + "ds" : { + "description" : "The list of datasources you want to display.", + "format" : "pve-configid-list", + "type" : "string", + "typetext" : "" }, - "name" : { - "description" : "Set a name for the VM. Only used on the configuration web interface.", - "format" : "dns-name", - "optional" : 1, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", "type" : "string", "typetext" : "" }, - "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" - } - }, + "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", - "typetext" : "[model=] [,bridge=] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=] [,queues=] [,rate=] [,tag=] [,trunks=] [,=]" + "type" : "string" }, "node" : { "description" : "The cluster node name.", @@ -6507,139 +7899,402 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "numa" : { - "default" : 0, - "description" : "Enable/disable NUMA.", + "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" : {}, + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/rrddata", + "text" : "rrddata" + }, + { + "info" : { + "GET" : { + "description" : "Get current virtual machine configuration. This does not include pending configuration changes (see 'pending' API).", + "method" : "GET", + "name" : "vm_config", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "current" : { + "default" : 0, + "description" : "Get current values (instead of pending values).", "optional" : 1, "type" : "boolean", "typetext" : "" }, - "numa[n]" : { - "description" : "NUMA topology.", + "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" : { + "description" : "The current VM configuration.", + "properties" : { + "acpi" : { + "default" : 1, + "description" : "Enable/disable ACPI.", + "optional" : 1, + "type" : "boolean" + }, + "agent" : { + "description" : "Enable/disable Qemu GuestAgent and its properties.", "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" + "enabled" : { + "default" : 0, + "default_key" : 1, + "description" : "Enable/disable Qemu GuestAgent.", + "type" : "boolean" }, - "policy" : { - "description" : "NUMA allocation policy.", - "enum" : [ - "preferred", - "bind", - "interleave" - ], + "fstrim_cloned_disks" : { + "default" : 0, + "description" : "Run fstrim after cloning/moving a disk.", "optional" : 1, - "type" : "string" + "type" : "boolean" } }, "optional" : 1, + "type" : "string" + }, + "arch" : { + "description" : "Virtual processor architecture. Defaults to the host.", + "enum" : [ + "x86_64", + "aarch64" + ], + "optional" : 1, + "type" : "string" + }, + "args" : { + "description" : "Arbitrary arguments passed to kvm.", + "optional" : 1, "type" : "string", - "typetext" : "cpus= [,hostnodes=] [,memory=] [,policy=]" + "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n" }, - "onboot" : { + "autostart" : { "default" : 0, - "description" : "Specifies whether a VM will be started during system bootup.", + "description" : "Automatic restart after crash (currently ignored).", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, - "ostype" : { - "description" : "Specify guest operating system.", + "balloon" : { + "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.", + "minimum" : 0, + "optional" : 1, + "type" : "integer" + }, + "bios" : { + "default" : "seabios", + "description" : "Select BIOS implementation.", "enum" : [ - "other", - "wxp", - "w2k", - "w2k3", - "w2k8", - "wvista", - "win7", - "win8", - "win10", - "l24", - "l26", - "solaris" + "seabios", + "ovmf" ], "optional" : 1, - "type" : "string", - "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\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" + "type" : "string" }, - "parallel[n]" : { - "description" : "Map host parallel devices (n is 0 to 2).", + "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" + }, + "bootdisk" : { + "description" : "Enable booting from specified disk.", + "format" : "pve-qm-bootdisk", + "optional" : 1, + "pattern" : "(ide|sata|scsi|virtio)\\d+", + "type" : "string" + }, + "cdrom" : { + "description" : "This is an alias for option -ide2", + "format" : "pve-qm-ide", "optional" : 1, - "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+", "type" : "string", - "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" + "typetext" : "" }, - "protection" : { - "default" : 0, - "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.", + "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" : "boolean", - "typetext" : "" + "type" : "string" }, - "reboot" : { - "default" : 1, - "description" : "Allow reboot. If set to '0' the VM exit on reboot.", + "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" : [ + "configdrive2", + "nocloud" + ], "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "string" }, - "revert" : { - "description" : "Revert a pending change.", - "format" : "pve-configid-list", + "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" }, - "sata[n]" : { - "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).", + "cores" : { + "default" : 1, + "description" : "The number of cores per socket.", + "minimum" : 1, + "optional" : 1, + "type" : "integer" + }, + "cpu" : { + "description" : "Emulated CPU type.", "format" : { - "aio" : { - "description" : "AIO type to use.", + "cputype" : { + "default" : "kvm64", + "default_key" : 1, + "description" : "Emulated CPU type.", "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" + "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" + }, + "cpulimit" : { + "default" : 0, + "description" : "Limit of CPU usage.", + "maximum" : 128, + "minimum" : 0, + "optional" : 1, + "type" : "number", + "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" : { + "default" : 1024, + "description" : "CPU weight for a VM.", + "maximum" : 262144, + "minimum" : 2, + "optional" : 1, + "type" : "integer", + "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." + }, + "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" + }, + "digest" : { + "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.", + "type" : "string" + }, + "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" + }, + "freeze" : { + "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).", + "optional" : 1, + "type" : "boolean" + }, + "hostpci[n]" : { + "description" : "Map host PCI devices into guest.", + "format" : "pve-qm-hostpci", + "optional" : 1, + "type" : "string", + "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" : { + "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" + }, + "hugepages" : { + "description" : "Enable/disable hugepages memory.", + "enum" : [ + "any", + "2", + "1024" + ], + "optional" : 1, + "type" : "string" + }, + "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, + "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" @@ -6833,6 +8488,14 @@ var pveapi = [ "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.", @@ -6862,6 +8525,13 @@ var pveapi = [ "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", @@ -6870,7 +8540,12 @@ var pveapi = [ "type" : "string" }, "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", "optional" : 1, "type" : "boolean" }, @@ -6900,568 +8575,725 @@ 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=] [,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).", - "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" - ], + "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" + }, + "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" + }, + "kvm" : { + "default" : 1, + "description" : "Enable/disable KVM hardware virtualization.", + "optional" : 1, + "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" + }, + "lock" : { + "description" : "Lock/unlock the VM.", + "enum" : [ + "migrate", + "backup", + "snapshot", + "rollback" + ], + "optional" : 1, + "type" : "string" + }, + "machine" : { + "description" : "Specifies the Qemu machine type.", + "maxLength" : 40, + "optional" : 1, + "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)", + "type" : "string" + }, + "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" + }, + "migrate_downtime" : { + "default" : 0.1, + "description" : "Set maximum tolerated downtime (in seconds) for migrations.", + "minimum" : 0, + "optional" : 1, + "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" + }, + "name" : { + "description" : "Set a name for the VM. Only used on the configuration web interface.", + "format" : "dns-name", + "optional" : 1, + "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" + }, + "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" }, - "cyls" : { - "description" : "Force the drive's physical geometry to have a specific cylinder count.", + "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" : "integer" + "type" : "boolean" }, - "detect_zeroes" : { - "description" : "Controls whether to detect and try to optimize writes of zeroes.", + "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" }, - "discard" : { - "description" : "Controls whether to pass discard/trim requests to the underlying storage.", - "enum" : [ - "ignore", - "on" - ], + "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" }, - "file" : { + "model" : { "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.", + "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" : [ - "raw", - "cow", - "qcow", - "qed", - "qcow2", - "vmdk", - "cloop" + "rtl8139", + "ne2k_pci", + "e1000", + "pcnet", + "virtio", + "ne2k_isa", + "i82551", + "i82557b", + "i82559er", + "vmxnet3", + "e1000-82540em", + "e1000-82544gc", + "e1000-82545em" ], - "optional" : 1, "type" : "string" }, - "heads" : { - "description" : "Force the drive's physical geometry to have a specific head count.", - "optional" : 1, - "type" : "integer" + "ne2k_isa" : { + "alias" : "macaddr", + "keyAlias" : "model" }, - "iops" : { - "description" : "Maximum r/w I/O in operations per second.", - "format_description" : "iops", - "optional" : 1, - "type" : "integer" + "ne2k_pci" : { + "alias" : "macaddr", + "keyAlias" : "model" }, - "iops_max" : { - "description" : "Maximum unthrottled r/w I/O pool in operations per second.", - "format_description" : "iops", - "optional" : 1, - "type" : "integer" + "pcnet" : { + "alias" : "macaddr", + "keyAlias" : "model" }, - "iops_max_length" : { - "description" : "Maximum length of I/O bursts in seconds.", - "format_description" : "seconds", - "minimum" : 1, + "queues" : { + "description" : "Number of packet queues to be used on the device.", + "maximum" : 16, + "minimum" : 0, "optional" : 1, "type" : "integer" }, - "iops_rd" : { - "description" : "Maximum read I/O in operations per second.", - "format_description" : "iops", + "rate" : { + "description" : "Rate limit in mbps (megabytes per second) as floating point number.", + "minimum" : 0, "optional" : 1, - "type" : "integer" - }, - "iops_rd_length" : { - "alias" : "iops_rd_max_length" + "type" : "number" }, - "iops_rd_max" : { - "description" : "Maximum unthrottled read I/O pool in operations per second.", - "format_description" : "iops", - "optional" : 1, - "type" : "integer" + "rtl8139" : { + "alias" : "macaddr", + "keyAlias" : "model" }, - "iops_rd_max_length" : { - "description" : "Maximum length of read I/O bursts in seconds.", - "format_description" : "seconds", + "tag" : { + "description" : "VLAN tag to apply to packets on this interface.", + "maximum" : 4094, "minimum" : 1, "optional" : 1, "type" : "integer" }, - "iops_wr" : { - "description" : "Maximum write I/O in operations per second.", - "format_description" : "iops", + "trunks" : { + "description" : "VLAN trunks to pass through this interface.", + "format_description" : "vlanid[;vlanid...]", "optional" : 1, - "type" : "integer" - }, - "iops_wr_length" : { - "alias" : "iops_wr_max_length" + "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)", + "type" : "string" }, - "iops_wr_max" : { - "description" : "Maximum unthrottled write I/O pool in operations per second.", - "format_description" : "iops", - "optional" : 1, - "type" : "integer" + "virtio" : { + "alias" : "macaddr", + "keyAlias" : "model" }, - "iops_wr_max_length" : { - "description" : "Maximum length of write I/O bursts in seconds.", - "format_description" : "seconds", - "minimum" : 1, + "vmxnet3" : { + "alias" : "macaddr", + "keyAlias" : "model" + } + }, + "optional" : 1, + "type" : "string" + }, + "numa" : { + "default" : 0, + "description" : "Enable/disable NUMA.", + "optional" : 1, + "type" : "boolean" + }, + "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, - "type" : "integer" + "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)", + "type" : "string" }, - "iothread" : { - "description" : "Whether to use iothreads for this drive", + "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" + }, + "onboot" : { + "default" : 0, + "description" : "Specifies whether a VM will be started during system bootup.", + "optional" : 1, + "type" : "boolean" + }, + "ostype" : { + "description" : "Specify guest operating system.", + "enum" : [ + "other", + "wxp", + "w2k", + "w2k3", + "w2k8", + "wvista", + "win7", + "win8", + "win10", + "l24", + "l26", + "solaris" + ], + "optional" : 1, + "type" : "string", + "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" + }, + "parallel[n]" : { + "description" : "Map host parallel devices (n is 0 to 2).", + "optional" : 1, + "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+", + "type" : "string", + "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" + }, + "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" + }, + "reboot" : { + "default" : 1, + "description" : "Allow reboot. If set to '0' the VM exit on reboot.", + "optional" : 1, + "type" : "boolean" + }, + "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" }, - "mbps" : { - "description" : "Maximum r/w speed in megabytes per second.", - "format_description" : "mbps", + "bps" : { + "description" : "Maximum r/w speed in bytes per second.", + "format_description" : "bps", "optional" : 1, - "type" : "number" + "type" : "integer" }, - "mbps_max" : { - "description" : "Maximum unthrottled r/w pool in megabytes per second.", - "format_description" : "mbps", + "bps_max_length" : { + "description" : "Maximum length of I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, "optional" : 1, - "type" : "number" + "type" : "integer" }, - "mbps_rd" : { - "description" : "Maximum read speed in megabytes per second.", - "format_description" : "mbps", + "bps_rd" : { + "description" : "Maximum read speed in bytes per second.", + "format_description" : "bps", "optional" : 1, - "type" : "number" + "type" : "integer" }, - "mbps_rd_max" : { - "description" : "Maximum unthrottled read pool in megabytes per second.", - "format_description" : "mbps", + "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" : "number" + "type" : "integer" }, - "mbps_wr" : { - "description" : "Maximum write speed in megabytes per second.", - "format_description" : "mbps", + "bps_wr" : { + "description" : "Maximum write speed in bytes per second.", + "format_description" : "bps", "optional" : 1, - "type" : "number" + "type" : "integer" }, - "mbps_wr_max" : { - "description" : "Maximum unthrottled write pool in megabytes per second.", - "format_description" : "mbps", + "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" : "number" + "type" : "integer" }, - "media" : { - "default" : "disk", - "description" : "The drive's media type.", + "cache" : { + "description" : "The drive's cache mode", "enum" : [ - "cdrom", - "disk" + "none", + "writethrough", + "writeback", + "unsafe", + "directsync" ], "optional" : 1, "type" : "string" }, - "queues" : { - "description" : "Number of queues.", - "minimum" : 2, + "cyls" : { + "description" : "Force the drive's physical geometry to have a specific cylinder count.", "optional" : 1, "type" : "integer" }, - "replicate" : { - "default" : 1, - "description" : "Whether the drive should considered for replication jobs.", + "detect_zeroes" : { + "description" : "Controls whether to detect and try to optimize writes of zeroes.", "optional" : 1, "type" : "boolean" }, - "rerror" : { - "description" : "Read error action.", + "discard" : { + "description" : "Controls whether to pass discard/trim requests to the underlying storage.", "enum" : [ "ignore", - "report", - "stop" + "on" ], "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", + "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" : "boolean" + "type" : "string" }, - "secs" : { - "description" : "Force the drive's physical geometry to have a specific sector count.", + "heads" : { + "description" : "Force the drive's physical geometry to have a specific head 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, + "iops" : { + "description" : "Maximum r/w I/O in operations per second.", + "format_description" : "iops", "optional" : 1, - "type" : "string" + "type" : "integer" }, - "size" : { - "description" : "Disk size. This is purely informational and has no effect.", - "format" : "disk-size", - "format_description" : "DiskSize", + "iops_max" : { + "description" : "Maximum unthrottled r/w I/O pool in operations per second.", + "format_description" : "iops", "optional" : 1, - "type" : "string" + "type" : "integer" }, - "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "iops_max_length" : { + "description" : "Maximum length of I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, "optional" : 1, - "type" : "boolean" + "type" : "integer" }, - "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=] [,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" - }, - "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", - "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)" - }, - "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" : [ - "std", - "cirrus", - "vmware", - "qxl", - "serial0", - "serial1", - "serial2", - "serial3", - "qxl2", - "qxl3", - "qxl4" - ], - "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" - ], + "iops_rd" : { + "description" : "Maximum read I/O in operations per second.", + "format_description" : "iops", "optional" : 1, - "type" : "string" + "type" : "integer" }, - "backup" : { - "description" : "Whether the drive should be included when making backups.", - "optional" : 1, - "type" : "boolean" + "iops_rd_length" : { + "alias" : "iops_rd_max_length" }, - "bps" : { - "description" : "Maximum r/w speed in bytes per second.", - "format_description" : "bps", + "iops_rd_max" : { + "description" : "Maximum unthrottled read I/O pool in operations per second.", + "format_description" : "iops", "optional" : 1, "type" : "integer" }, - "bps_max_length" : { - "description" : "Maximum length of I/O bursts in seconds.", + "iops_rd_max_length" : { + "description" : "Maximum length of read 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", + "iops_wr" : { + "description" : "Maximum write I/O in operations per second.", + "format_description" : "iops", "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" + "iops_wr_length" : { + "alias" : "iops_wr_max_length" }, - "bps_wr" : { - "description" : "Maximum write speed in bytes per second.", - "format_description" : "bps", + "iops_wr_max" : { + "description" : "Maximum unthrottled write I/O pool in operations per second.", + "format_description" : "iops", "optional" : 1, "type" : "integer" }, - "bps_wr_length" : { - "alias" : "bps_wr_max_length" - }, - "bps_wr_max_length" : { + "iops_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" - ], + "mbps" : { + "description" : "Maximum r/w speed in megabytes per second.", + "format_description" : "mbps", "optional" : 1, - "type" : "string" + "type" : "number" }, - "cyls" : { - "description" : "Force the drive's physical geometry to have a specific cylinder count.", + "mbps_max" : { + "description" : "Maximum unthrottled r/w pool in megabytes per second.", + "format_description" : "mbps", "optional" : 1, - "type" : "integer" + "type" : "number" }, - "detect_zeroes" : { - "description" : "Controls whether to detect and try to optimize writes of zeroes.", + "mbps_rd" : { + "description" : "Maximum read speed in megabytes per second.", + "format_description" : "mbps", "optional" : 1, - "type" : "boolean" + "type" : "number" }, - "discard" : { - "description" : "Controls whether to pass discard/trim requests to the underlying storage.", - "enum" : [ - "ignore", - "on" - ], - "optional" : 1, - "type" : "string" + "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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", + "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" + }, + "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, @@ -7603,6 +9435,12 @@ var pveapi = [ "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.", @@ -7619,6 +9457,12 @@ var pveapi = [ "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, @@ -7632,6 +9476,13 @@ var pveapi = [ "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", @@ -7640,7 +9491,12 @@ var pveapi = [ "type" : "string" }, "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", "optional" : 1, "type" : "boolean" }, @@ -7670,263 +9526,174 @@ 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=] [,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)" + "scsihw" : { + "default" : "lsi", + "description" : "SCSI controller model", + "enum" : [ + "lsi", + "lsi53c810", + "virtio-scsi-pci", + "virtio-scsi-single", + "megasas", + "pvscsi" + ], + "optional" : 1, + "type" : "string" }, - "watchdog" : { - "description" : "Create a virtual hardware watchdog device.", - "format" : "pve-qm-watchdog", + "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" + }, + "serial[n]" : { + "description" : "Create a serial device inside the VM (n is 0 to 3)", "optional" : 1, + "pattern" : "(/dev/.+|socket)", "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" - } - }, - "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", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "acpi" : { - "default" : 1, - "description" : "Enable/disable ACPI.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "agent" : { - "default" : 0, - "description" : "Enable/disable Qemu GuestAgent.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" + "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" }, - "args" : { - "description" : "Arbitrary arguments passed to kvm.", + "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" : "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" + "type" : "integer" }, - "autostart" : { - "default" : 0, - "description" : "Automatic restart after crash (currently ignored).", + "smbios1" : { + "description" : "Specify SMBIOS type 1 fields.", + "format" : "pve-qm-smbios1", + "maxLength" : 256, "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "string" }, - "balloon" : { - "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.", - "minimum" : 0, + "smp" : { + "default" : 1, + "description" : "The number of CPUs. Please use option -sockets instead.", + "minimum" : 1, "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" + "type" : "integer" }, - "bios" : { - "default" : "seabios", - "description" : "Select BIOS implementation.", - "enum" : [ - "seabios", - "ovmf" - ], + "sockets" : { + "default" : 1, + "description" : "The number of CPU sockets.", + "minimum" : 1, "optional" : 1, - "type" : "string" + "type" : "integer" }, - "boot" : { - "default" : "cdn", - "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).", + "sshkeys" : { + "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).", + "format" : "urlencoded", "optional" : 1, - "pattern" : "[acdn]{1,4}", "type" : "string" }, - "bootdisk" : { - "description" : "Enable booting from specified disk.", - "format" : "pve-qm-bootdisk", + "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" : "(ide|sata|scsi|virtio)\\d+", - "type" : "string" + "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)" }, - "cdrom" : { - "description" : "This is an alias for option -ide2", - "format" : "pve-qm-ide", + "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" : "" + "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] " }, - "cores" : { + "tablet" : { "default" : 1, - "description" : "The number of cores per socket.", - "minimum" : 1, + "description" : "Enable/disable the USB tablet device.", "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "type" : "boolean", + "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)." }, - "cpu" : { - "description" : "Emulated CPU type.", + "tdf" : { + "default" : 0, + "description" : "Enable/disable time drift fix.", + "optional" : 1, + "type" : "boolean" + }, + "template" : { + "default" : 0, + "description" : "Enable/disable Template.", + "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" + }, + "usb[n]" : { + "description" : "Configure an USB device (n is 0 to 4).", "format" : { - "cputype" : { - "default" : "kvm64", + "host" : { "default_key" : 1, - "description" : "Emulated CPU type.", - "enum" : [ - "486", - "athlon", - "Broadwell", - "Broadwell-noTSX", - "Conroe", - "core2duo", - "coreduo", - "Haswell", - "Haswell-noTSX", - "host", - "IvyBridge", - "kvm32", - "kvm64", - "Nehalem", - "Opteron_G1", - "Opteron_G2", - "Opteron_G3", - "Opteron_G4", - "Opteron_G5", - "Penryn", - "pentium", - "pentium2", - "pentium3", - "phenom", - "qemu32", - "qemu64", - "SandyBridge", - "Skylake-Client", - "Westmere" - ], + "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" }, - "hidden" : { + "usb3" : { "default" : 0, - "description" : "Do not identify as a KVM virtual machine.", + "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" : "[cputype=] [,hidden=<1|0>]" + "type" : "string" }, - "cpulimit" : { + "vcpus" : { "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." - }, - "cpuunits" : { - "default" : 1024, - "description" : "CPU weight for a VM.", - "maximum" : 500000, - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - 500000)", - "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.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0." - }, - "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" : "" - }, - "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" : "" - }, - "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" : "" - }, - "freeze" : { - "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).", + "description" : "Number of hotplugged vcpus.", + "minimum" : 1, "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "integer" }, - "hostpci[n]" : { - "description" : "Map host PCI devices into guest.", - "format" : "pve-qm-hostpci", + "vga" : { + "description" : "Configure the VGA hardware.", + "format" : { + "memory" : { + "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.", + "maximum" : 512, + "minimum" : 4, + "optional" : 1, + "type" : "integer" + }, + "type" : { + "default" : "std", + "default_key" : 1, + "description" : "Select the VGA type.", + "enum" : [ + "cirrus", + "qxl", + "qxl2", + "qxl3", + "qxl4", + "serial0", + "serial1", + "serial2", + "serial3", + "std", + "virtio", + "vmware" + ], + "optional" : 1, + "type" : "string" + } + }, "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" + "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal." }, - "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" : "" - }, - "hugepages" : { - "description" : "Enable/disable hugepages memory.", - "enum" : [ - "any", - "2", - "1024" - ], - "optional" : 1, - "type" : "string" - }, - "ide[n]" : { - "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).", + "virtio[n]" : { + "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).", "format" : { "aio" : { "description" : "AIO type to use.", @@ -8107,6 +9874,11 @@ var pveapi = [ "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", @@ -8153,14 +9925,6 @@ var pveapi = [ "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.", @@ -8190,6 +9954,13 @@ var pveapi = [ "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", @@ -8198,7 +9969,7 @@ var pveapi = [ "type" : "string" }, "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "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" }, @@ -8228,340 +9999,358 @@ var pveapi = [ } }, "optional" : 1, + "type" : "string" + }, + "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", - "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=] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + "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." }, - "keyboard" : { - "default" : "en-us", - "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.conf' configuration file.", - "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" - ], + "vmstatestorage" : { + "description" : "Default storage for VM state volumes/files.", + "format" : "pve-storage-id", "optional" : 1, "type" : "string" }, - "kvm" : { + "watchdog" : { + "description" : "Create a virtual hardware watchdog device.", + "format" : "pve-qm-watchdog", + "optional" : 1, + "type" : "string", + "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)" + } + }, + "type" : "object" + } + }, + "POST" : { + "description" : "Set virtual machine options (asynchrounous API).", + "method" : "POST", + "name" : "update_vm_async", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "acpi" : { "default" : 1, - "description" : "Enable/disable KVM hardware virtualization.", + "description" : "Enable/disable ACPI.", "optional" : 1, "type" : "boolean", "typetext" : "" }, - "localtime" : { - "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.", + "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" : "boolean", - "typetext" : "" + "type" : "string", + "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]" }, - "lock" : { - "description" : "Lock/unlock the VM.", + "arch" : { + "description" : "Virtual processor architecture. Defaults to the host.", "enum" : [ - "migrate", - "backup", - "snapshot", - "rollback" + "x86_64", + "aarch64" ], "optional" : 1, "type" : "string" }, - "machine" : { - "description" : "Specific the Qemu machine type.", - "maxLength" : 40, + "args" : { + "description" : "Arbitrary arguments passed to kvm.", "optional" : 1, - "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)", - "type" : "string" + "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" }, - "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, + "autostart" : { + "default" : 0, + "description" : "Automatic restart after crash (currently ignored).", "optional" : 1, - "type" : "integer", - "typetext" : " (16 - N)" + "type" : "boolean", + "typetext" : "" }, - "migrate_downtime" : { - "default" : 0.1, - "description" : "Set maximum tolerated downtime (in seconds) for migrations.", - "minimum" : 0, + "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" : "number", - "typetext" : " (0 - N)" + "type" : "integer", + "typetext" : " (1 - 30)" }, - "migrate_speed" : { - "default" : 0, - "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.", + "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)" }, - "name" : { - "description" : "Set a name for the VM. Only used on the configuration web interface.", - "format" : "dns-name", + "bios" : { + "default" : "seabios", + "description" : "Select BIOS implementation.", + "enum" : [ + "seabios", + "ovmf" + ], + "optional" : 1, + "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" + }, + "bootdisk" : { + "description" : "Enable booting from specified disk.", + "format" : "pve-qm-bootdisk", + "optional" : 1, + "pattern" : "(ide|sata|scsi|virtio)\\d+", + "type" : "string" + }, + "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" : "" }, - "net[n]" : { - "description" : "Specify network devices.", + "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" : [ + "configdrive2", + "nocloud" + ], + "optional" : 1, + "type" : "string" + }, + "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)" + }, + "cpu" : { + "description" : "Emulated CPU type.", "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, + "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" }, - "e1000" : { - "alias" : "macaddr", - "keyAlias" : "model" - }, - "e1000-82540em" : { - "alias" : "macaddr", - "keyAlias" : "model" - }, - "e1000-82544gc" : { - "alias" : "macaddr", - "keyAlias" : "model" + "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" }, - "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).", + "hidden" : { + "default" : 0, + "description" : "Do not identify as a KVM virtual machine.", "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=] [,=]" + "typetext" : "[cputype=] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "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." + }, + "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" : "" }, - "numa" : { - "default" : 0, - "description" : "Enable/disable NUMA.", + "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" : "boolean", - "typetext" : "" + "type" : "string", + "typetext" : "" }, - "numa[n]" : { - "description" : "NUMA topology.", + "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" : "" + }, + "efidisk0" : { + "description" : "Configure a Disk for storing EFI vars", "format" : { - "cpus" : { - "description" : "CPUs accessing this NUMA node.", - "format_description" : "id[-id];...", - "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)", + "file" : { + "default_key" : 1, + "description" : "The drive's backing volume.", + "format" : "pve-volume-id-or-qm-path", + "format_description" : "volume", "type" : "string" }, - "hostnodes" : { - "description" : "Host NUMA nodes to use.", - "format_description" : "id[-id];...", + "format" : { + "description" : "The drive's backing file's data format.", + "enum" : [ + "raw", + "cow", + "qcow", + "qed", + "qcow2", + "vmdk", + "cloop" + ], "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" - ], + "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" : "cpus= [,hostnodes=] [,memory=] [,policy=]" + "typetext" : "[file=] [,format=] [,size=]" }, - "onboot" : { - "default" : 0, - "description" : "Specifies whether a VM will be started during system bootup.", + "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" : "" }, - "ostype" : { - "description" : "Specify guest operating system.", - "enum" : [ - "other", - "wxp", - "w2k", - "w2k3", - "w2k8", - "wvista", - "win7", - "win8", - "win10", - "l24", - "l26", - "solaris" - ], - "optional" : 1, - "type" : "string", - "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\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" - }, - "parallel[n]" : { - "description" : "Map host parallel devices (n is 0 to 2).", - "optional" : 1, - "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+", - "type" : "string", - "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" - }, - "protection" : { - "default" : 0, - "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.", + "freeze" : { + "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).", "optional" : 1, "type" : "boolean", "typetext" : "" }, - "reboot" : { - "default" : 1, - "description" : "Allow reboot. If set to '0' the VM exit on reboot.", + "hostpci[n]" : { + "description" : "Map host PCI devices into guest.", + "format" : "pve-qm-hostpci", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "string", + "typetext" : "[host=] [,mdev=] [,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" }, - "revert" : { - "description" : "Revert a pending change.", - "format" : "pve-configid-list", + "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" : "" }, - "sata[n]" : { - "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).", + "hugepages" : { + "description" : "Enable/disable hugepages memory.", + "enum" : [ + "any", + "2", + "1024" + ], + "optional" : 1, + "type" : "string" + }, + "ide[n]" : { + "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).", "format" : { "aio" : { "description" : "AIO type to use.", @@ -8788,6 +10577,14 @@ var pveapi = [ "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.", @@ -8817,6 +10614,13 @@ var pveapi = [ "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", @@ -8825,7 +10629,12 @@ var pveapi = [ "type" : "string" }, "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", "optional" : 1, "type" : "boolean" }, @@ -8856,83 +10665,426 @@ 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=] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + "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>] [,ssd=<1|0>] [,trans=] [,werror=]" }, - "scsi[n]" : { - "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).", + "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=]" + }, + "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" + }, + "kvm" : { + "default" : 1, + "description" : "Enable/disable KVM hardware virtualization.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "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" : "" + }, + "lock" : { + "description" : "Lock/unlock the VM.", + "enum" : [ + "migrate", + "backup", + "snapshot", + "rollback" + ], + "optional" : 1, + "type" : "string" + }, + "machine" : { + "description" : "Specifies the Qemu machine type.", + "maxLength" : 40, + "optional" : 1, + "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)", + "type" : "string" + }, + "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" : " (16 - N)" + }, + "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" : "" + }, + "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" : "" + }, + "net[n]" : { + "description" : "Specify network devices.", "format" : { - "aio" : { - "description" : "AIO type to use.", - "enum" : [ - "native", - "threads" - ], + "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" }, - "backup" : { - "description" : "Whether the drive should be included when making backups.", + "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" }, - "bps" : { - "description" : "Maximum r/w speed in bytes per second.", - "format_description" : "bps", - "optional" : 1, - "type" : "integer" + "i82551" : { + "alias" : "macaddr", + "keyAlias" : "model" }, - "bps_max_length" : { - "description" : "Maximum length of I/O bursts in seconds.", - "format_description" : "seconds", - "minimum" : 1, + "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" : "integer" + "type" : "boolean" }, - "bps_rd" : { - "description" : "Maximum read speed in bytes per second.", - "format_description" : "bps", + "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, - "type" : "integer" + "pattern" : "(?^i:[0-9a-f]{2}(?::[0-9a-f]{2}){5})", + "type" : "string" }, - "bps_rd_length" : { - "alias" : "bps_rd_max_length" + "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" }, - "bps_rd_max_length" : { - "description" : "Maximum length of read I/O bursts in seconds.", - "format_description" : "seconds", - "minimum" : 1, + "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" }, - "bps_wr" : { - "description" : "Maximum write speed in bytes per second.", - "format_description" : "bps", + "rate" : { + "description" : "Rate limit in mbps (megabytes per second) as floating point number.", + "minimum" : 0, "optional" : 1, - "type" : "integer" + "type" : "number" }, - "bps_wr_length" : { - "alias" : "bps_wr_max_length" + "rtl8139" : { + "alias" : "macaddr", + "keyAlias" : "model" }, - "bps_wr_max_length" : { - "description" : "Maximum length of write I/O bursts in seconds.", - "format_description" : "seconds", + "tag" : { + "description" : "VLAN tag to apply to packets on this interface.", + "maximum" : 4094, "minimum" : 1, "optional" : 1, "type" : "integer" }, - "cache" : { - "description" : "The drive's cache mode", - "enum" : [ - "none", - "writethrough", - "writeback", - "unsafe", - "directsync" - ], + "trunks" : { + "description" : "VLAN trunks to pass through this interface.", + "format_description" : "vlanid[;vlanid...]", "optional" : 1, + "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)", "type" : "string" }, - "cyls" : { + "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.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "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" : "cpus= [,hostnodes=] [,memory=] [,policy=]" + }, + "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", + "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" + }, + "parallel[n]" : { + "description" : "Map host parallel devices (n is 0 to 2).", + "optional" : 1, + "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+", + "type" : "string", + "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" + }, + "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" @@ -9040,11 +11192,6 @@ var pveapi = [ "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", @@ -9091,12 +11238,6 @@ var pveapi = [ "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.", @@ -9113,12 +11254,6 @@ var pveapi = [ "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, @@ -9132,6 +11267,13 @@ var pveapi = [ "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", @@ -9140,7 +11282,12 @@ var pveapi = [ "type" : "string" }, "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", "optional" : 1, "type" : "boolean" }, @@ -9171,162 +11318,10 @@ 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=] [,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" - }, - "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", - "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" : "" + "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>] [,ssd=<1|0>] [,trans=] [,werror=]" }, - "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)" - }, - "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" : [ - "std", - "cirrus", - "vmware", - "qxl", - "serial0", - "serial1", - "serial2", - "serial3", - "qxl2", - "qxl3", - "qxl4" - ], - "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).", + "scsi[n]" : { + "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).", "format" : { "aio" : { "description" : "AIO type to use.", @@ -9558,6 +11553,12 @@ var pveapi = [ "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.", @@ -9574,6 +11575,12 @@ var pveapi = [ "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, @@ -9587,6 +11594,13 @@ var pveapi = [ "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", @@ -9595,7 +11609,12 @@ var pveapi = [ "type" : "string" }, "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", "optional" : 1, "type" : "boolean" }, @@ -9626,824 +11645,509 @@ 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=] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + "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>] [,ssd=<1|0>] [,trans=] [,werror=]" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "scsihw" : { + "default" : "lsi", + "description" : "SCSI controller model", + "enum" : [ + "lsi", + "lsi53c810", + "virtio-scsi-pci", + "virtio-scsi-single", + "megasas", + "pvscsi" + ], + "optional" : 1, + "type" : "string" }, - "watchdog" : { - "description" : "Create a virtual hardware watchdog device.", - "format" : "pve-qm-watchdog", + "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" : "[[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", + "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)" - } - } - }, - "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.", + "sockets" : { + "default" : 1, + "description" : "The number of CPU sockets.", + "minimum" : 1, "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "integer", + "typetext" : " (1 - N)" }, - "idlist" : { - "description" : "A list of disk IDs you want to delete.", - "format" : "pve-configid-list", + "sshkeys" : { + "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).", + "format" : "urlencoded", + "optional" : 1, "type" : "string", "typetext" : "" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "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" : "" + "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)" }, - "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", + "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" : "" + "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)" + "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)." }, - "websocket" : { - "description" : "starts websockify instead of vncproxy", + "tdf" : { + "default" : 0, + "description" : "Enable/disable time drift fix.", "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" + "template" : { + "default" : 0, + "description" : "Enable/disable Template.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "user" : { - "type" : "string" - } - } - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/vncproxy", - "text" : "vncproxy" - }, - { - "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", + "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" : "" }, - "port" : { - "description" : "Port number returned by previous vncproxy call.", - "maximum" : 5999, - "minimum" : 5900, - "type" : "integer", - "typetext" : " (5900 - 5999)" + "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>]" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", + "vcpus" : { + "default" : 0, + "description" : "Number of hotplugged vcpus.", "minimum" : 1, + "optional" : 1, "type" : "integer", "typetext" : " (1 - N)" }, - "vncticket" : { - "description" : "Ticket from previous call to vncproxy.", - "maxLength" : 512, + "vga" : { + "description" : "Configure the VGA hardware.", + "format" : { + "memory" : { + "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.", + "maximum" : 512, + "minimum" : 4, + "optional" : 1, + "type" : "integer" + }, + "type" : { + "default" : "std", + "default_key" : 1, + "description" : "Select the VGA type.", + "enum" : [ + "cirrus", + "qxl", + "qxl2", + "qxl3", + "qxl4", + "serial0", + "serial1", + "serial2", + "serial3", + "std", + "virtio", + "vmware" + ], + "optional" : 1, + "type" : "string" + } + }, + "optional" : 1, "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 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)" - } - } - }, - "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" + "typetext" : "[[type=]] [,memory=]", + "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal." }, - "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" : "" + "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" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", + "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, - "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, "optional" : 1, - "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)", - "type" : "string" + "type" : "integer" }, - "migratedfrom" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "bps_rd" : { + "description" : "Maximum read speed in bytes per second.", + "format_description" : "bps", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "integer" }, - "migration_network" : { - "description" : "CIDR of the (sub) network that is used for migration.", - "format" : "CIDR", + "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" }, - "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.", + "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" : [ - "secure", - "insecure" + "none", + "writethrough", + "writeback", + "unsafe", + "directsync" ], "optional" : 1, "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" }, - "stateuri" : { - "description" : "Some command save/restore state from this location.", - "maxLength" : 128, + "discard" : { + "description" : "Controls whether to pass discard/trim requests to the underlying storage.", + "enum" : [ + "ignore", + "on" + ], "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, - "targetstorage" : { - "description" : "Target storage for the migration. (Can be '1' to use the same storage id as on the source node.)", + "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", - "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/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.", + "heads" : { + "description" : "Force the drive's physical geometry to have a specific head count.", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "integer" }, - "migratedfrom" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "iops" : { + "description" : "Maximum r/w I/O in operations per second.", + "format_description" : "iops", "optional" : 1, - "type" : "string", - "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/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" : "" + "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/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" : "" + "type" : "integer" }, - "keepActive" : { - "default" : 0, - "description" : "Do not deactivate storage volumes.", + "iothread" : { + "description" : "Whether to use iothreads for this drive", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "boolean" }, - "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" : "boolean", - "typetext" : "" + "type" : "number" }, - "timeout" : { - "description" : "Wait maximal timeout seconds.", - "minimum" : 0, + "mbps_rd" : { + "description" : "Maximum read speed in megabytes per second.", + "format_description" : "mbps", "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" + "type" : "number" }, - "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" : "" + "mbps_rd_max" : { + "description" : "Maximum unthrottled read pool in megabytes per second.", + "format_description" : "mbps", + "optional" : 1, + "type" : "number" }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", + "mbps_wr" : { + "description" : "Maximum write speed in megabytes per second.", + "format_description" : "mbps", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "number" }, - "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" : { + "mbps_wr_max" : { + "description" : "Maximum unthrottled write pool in megabytes per second.", + "format_description" : "mbps", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "type" : "number" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "media" : { + "default" : "disk", + "description" : "The drive's media type.", + "enum" : [ + "cdrom", + "disk" + ], + "optional" : 1, + "type" : "string" }, - "skiplock" : { - "description" : "Ignore locks - only root is allowed to use this option.", + "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" } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.PowerMgmt" - ] - ] + }, + "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=]" }, - "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", + "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", - "typetext" : "" + "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.", @@ -10451,1190 +12155,4273 @@ var pveapi = [ "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" : { - "user" : "all" + "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" : { - "items" : { - "properties" : { - "subdir" : { - "type" : "string" - } - }, - "type" : "object" - }, - "links" : [ - { - "href" : "{subdir}", - "rel" : "child" - } - ], - "type" : "array" + "optional" : 1, + "type" : "string" } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/qemu/{vmid}/status", - "text" : "status" - }, - { - "info" : { + }, "PUT" : { - "description" : "Send key event to virtual machine.", + "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" : "vm_sendkey", + "name" : "update_vm", "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.", + "acpi" : { + "default" : 1, + "description" : "Enable/disable ACPI.", "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.", + "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" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]" + }, + "arch" : { + "description" : "Virtual processor architecture. Defaults to the host.", "enum" : [ - "snapshot", - "clone", - "copy" + "x86_64", + "aarch64" ], + "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", - "maxLength" : 40, + "args" : { + "description" : "Arbitrary arguments passed to kvm.", "optional" : 1, "type" : "string", - "typetext" : "" + "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" }, - "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" + "autostart" : { + "default" : 0, + "description" : "Automatic restart after crash (currently ignored).", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "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.", + "balloon" : { + "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.", + "minimum" : 0, "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "integer", + "typetext" : " (0 - N)" }, - "format" : { - "description" : "Target format for file storage.", + "bios" : { + "default" : "seabios", + "description" : "Select BIOS implementation.", "enum" : [ - "raw", - "qcow2", - "vmdk" + "seabios", + "ovmf" ], "optional" : 1, - "requires" : "full", "type" : "string" }, - "full" : { - "default" : 0, - "description" : "Create a full copy of all disk. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.", + "boot" : { + "default" : "cdn", + "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).", "optional" : 1, - "type" : "boolean", - "typetext" : "" + "pattern" : "[acdn]{1,4}", + "type" : "string" }, - "name" : { - "description" : "Set a name for the new VM.", - "format" : "dns-name", + "bootdisk" : { + "description" : "Enable booting from specified disk.", + "format" : "pve-qm-bootdisk", "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" : "" + "pattern" : "(ide|sata|scsi|virtio)\\d+", + "type" : "string" }, - "pool" : { - "description" : "Add the new VM to the specified pool.", - "format" : "pve-poolid", + "cdrom" : { + "description" : "This is an alias for option -ide2", + "format" : "pve-qm-ide", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, + "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" : "" }, - "storage" : { - "description" : "Target storage for full clone.", - "format" : "pve-storage-id", + "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" : [ + "configdrive2", + "nocloud" + ], "optional" : 1, - "requires" : "full", - "type" : "string", - "typetext" : "" + "type" : "string" }, - "target" : { - "description" : "Target node. Only allowed if the original VM is on shared storage.", - "format" : "pve-node", + "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" : "" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", + "cores" : { + "default" : 1, + "description" : "The number of cores per socket.", "minimum" : 1, + "optional" : 1, "type" : "integer", "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "check" : [ - "and", - [ - "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" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/clone", - "text" : "clone" - }, - { - "info" : { - "POST" : { - "description" : "Move volume to different storage.", - "method" : "POST", - "name" : "move_vm_disk", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "delete" : { - "default" : 0, - "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.", - "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, + "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" : "" - }, - "disk" : { - "description" : "The disk you want to move.", - "enum" : [ - "ide0", - "ide1", - "ide2", - "ide3", - "scsi0", - "scsi1", - "scsi2", - "scsi3", - "scsi4", - "scsi5", - "scsi6", - "scsi7", - "scsi8", - "scsi9", - "scsi10", - "scsi11", - "scsi12", - "scsi13", - "virtio0", - "virtio1", - "virtio2", - "virtio3", - "virtio4", - "virtio5", - "virtio6", - "virtio7", - "virtio8", - "virtio9", - "virtio10", - "virtio11", - "virtio12", - "virtio13", - "virtio14", - "virtio15", - "sata0", - "sata1", - "sata2", - "sata3", - "sata4", - "sata5", - "efidisk0" - ], - "type" : "string" + "typetext" : "[cputype=] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]" }, - "format" : { - "description" : "Target Format.", - "enum" : [ - "raw", - "qcow2", - "vmdk" - ], + "cpulimit" : { + "default" : 0, + "description" : "Limit of CPU usage.", + "maximum" : 128, + "minimum" : 0, "optional" : 1, - "type" : "string" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - }, - "storage" : { - "description" : "Target storage.", - "format" : "pve-storage-id", - "type" : "string", - "typetext" : "" + "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." }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "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." - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "description" : "the task ID.", - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/move_disk", - "text" : "move_disk" - }, - { - "info" : { - "POST" : { - "description" : "Migrate virtual machine. Creates a new migration task.", - "method" : "POST", - "name" : "migrate_vm", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "force" : { - "description" : "Allow to migrate VMs which use local devices. Only root may use this option.", + "cpuunits" : { + "default" : 1024, + "description" : "CPU weight for a VM.", + "maximum" : 262144, + "minimum" : 2, "optional" : 1, - "type" : "boolean", - "typetext" : "" + "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." }, - "migration_network" : { - "description" : "CIDR of the (sub) network that is used for migration.", - "format" : "CIDR", + "delete" : { + "description" : "A list of settings you want to delete.", + "format" : "pve-configid-list", "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" - ], + "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" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", "type" : "string", "typetext" : "" }, - "online" : { - "description" : "Use online/live migration.", + "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" : "boolean", - "typetext" : "" - }, - "target" : { - "description" : "Target node.", - "format" : "pve-node", "type" : "string", "typetext" : "" }, - "targetstorage" : { - "description" : "Default target storage.", - "format" : "pve-storage-id", - "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" : "" - }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "typetext" : "[file=] [,format=] [,size=]" }, - "with-local-disks" : { - "description" : "Enable live storage migration for local disk", + "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" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Migrate" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "description" : "the task ID.", - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/migrate", - "text" : "migrate" - }, - { - "info" : { - "POST" : { - "description" : "Execute Qemu monitor commands.", - "method" : "POST", - "name" : "monitor", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "command" : { - "description" : "The monitor command.", - "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" - ] - ], - "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')" - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/monitor", - "text" : "monitor" - }, - { - "info" : { - "POST" : { - "description" : "Execute Qemu Guest Agent commands.", - "method" : "POST", - "name" : "agent", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "command" : { - "description" : "The QGA command.", - "enum" : [ - "ping", - "get-time", - "info", - "fsfreeze-status", - "fsfreeze-freeze", - "fsfreeze-thaw", - "fstrim", - "network-get-interfaces", - "get-vcpus", - "get-fsinfo", - "get-memory-blocks", - "get-memory-block-info", - "suspend-hybrid", - "suspend-ram", - "suspend-disk", - "shutdown" - ], - "type" : "string" + "freeze" : { + "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "hostpci[n]" : { + "description" : "Map host PCI devices into guest.", + "format" : "pve-qm-hostpci", + "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "[host=] [,mdev=] [,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" }, - "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. The type of that\nproperty depends on the executed command.", - "type" : "object" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/agent", - "text" : "agent" - }, - { - "info" : { - "PUT" : { - "description" : "Extend volume size.", - "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, + "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" : "" }, - "disk" : { - "description" : "The disk you want to resize.", + "hugepages" : { + "description" : "Enable/disable hugepages memory.", "enum" : [ - "ide0", - "ide1", - "ide2", - "ide3", - "scsi0", - "scsi1", - "scsi2", - "scsi3", - "scsi4", - "scsi5", - "scsi6", - "scsi7", - "scsi8", - "scsi9", - "scsi10", - "scsi11", - "scsi12", - "scsi13", - "virtio0", - "virtio1", - "virtio2", - "virtio3", - "virtio4", - "virtio5", - "virtio6", - "virtio7", - "virtio8", - "virtio9", - "virtio10", - "virtio11", - "virtio12", - "virtio13", - "virtio14", - "virtio15", - "sata0", - "sata1", - "sata2", - "sata3", - "sata4", - "sata5", - "efidisk0" + "any", + "2", + "1024" ], + "optional" : 1, "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" - }, - "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.Config.Disk" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/resize", - "text" : "resize" - }, - { - "children" : [ - { - "children" : [ - { - "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)" - } - } + "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, + "type" : "string" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Snapshot" - ] - ] + "backup" : { + "description" : "Whether the drive should be included when making backups.", + "optional" : 1, + "type" : "boolean" }, - "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)" - } - } + "bps" : { + "description" : "Maximum r/w speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "type" : "integer" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Snapshot" - ] - ] + "bps_max_length" : { + "description" : "Maximum length of I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, + "optional" : 1, + "type" : "integer" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "null" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config", - "text" : "config" - }, - { - "info" : { - "POST" : { - "description" : "Rollback VM 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)" - } - } + "bps_rd" : { + "description" : "Maximum read speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "type" : "integer" }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Snapshot" - ] - ] + "bps_rd_length" : { + "alias" : "bps_rd_max_length" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "description" : "the task ID.", - "type" : "string" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback", - "text" : "rollback" - } - ], - "info" : { - "DELETE" : { - "description" : "Delete a VM snapshot.", - "method" : "DELETE", - "name" : "delsnapshot", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "force" : { - "description" : "For removal from config file, even if removing disk snapshots fails.", + "bps_rd_max_length" : { + "description" : "Maximum length of read I/O bursts in seconds.", + "format_description" : "seconds", + "minimum" : 1, "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "type" : "integer" }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, - "type" : "string", - "typetext" : "" + "bps_wr" : { + "description" : "Maximum write speed in bytes per second.", + "format_description" : "bps", + "optional" : 1, + "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.Snapshot" - ] - ] - }, - "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" : "" + "optional" : 1, + "type" : "integer" }, - "snapname" : { - "description" : "The name of the snapshot.", - "format" : "pve-configid", - "maxLength" : 40, - "type" : "string", - "typetext" : "" + "cache" : { + "description" : "The drive's cache mode", + "enum" : [ + "none", + "writethrough", + "writeback", + "unsafe", + "directsync" + ], + "optional" : 1, + "type" : "string" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", + "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, - "type" : "integer", - "typetext" : " (1 - N)" - } - } - }, - "permissions" : { - "user" : "all" - }, - "returns" : { - "items" : { - "properties" : {}, - "type" : "object" - }, - "links" : [ - { - "href" : "{cmd}", - "rel" : "child" - } - ], - "type" : "array" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}", - "text" : "{snapname}" - } - ], - "info" : { - "GET" : { - "description" : "List all snapshots.", - "method" : "GET", - "name" : "snapshot_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" - } - }, - "POST" : { - "description" : "Snapshot a VM.", - "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)" - }, - "vmstate" : { - "description" : "Save the vmstate", - "optional" : 1, - "type" : "boolean", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/vms/{vmid}", - [ - "VM.Snapshot" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "description" : "the task ID.", - "type" : "string" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/qemu/{vmid}/snapshot", - "text" : "snapshot" - }, - { - "info" : { - "POST" : { - "description" : "Create a Template.", - "method" : "POST", - "name" : "template", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "disk" : { - "description" : "If you want to convert only 1 disk to base image.", - "enum" : [ - "ide0", - "ide1", - "ide2", - "ide3", - "scsi0", - "scsi1", - "scsi2", - "scsi3", - "scsi4", - "scsi5", - "scsi6", - "scsi7", - "scsi8", - "scsi9", - "scsi10", - "scsi11", - "scsi12", - "scsi13", - "virtio0", - "virtio1", - "virtio2", - "virtio3", - "virtio4", - "virtio5", - "virtio6", - "virtio7", - "virtio8", - "virtio9", - "virtio10", - "virtio11", - "virtio12", - "virtio13", - "virtio14", - "virtio15", - "sata0", - "sata1", - "sata2", - "sata3", - "sata4", - "sata5", - "efidisk0" - ], + "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" + }, + "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", + "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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", + "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" + "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>] [,ssd=<1|0>] [,trans=] [,werror=]" }, - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", + "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" : "" + "typetext" : "[gw=] [,gw6=] [,ip=] [,ip6=]" }, - "vmid" : { - "description" : "The (unique) ID of the VM.", - "format" : "pve-vmid", - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - } + "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" + }, + "kvm" : { + "default" : 1, + "description" : "Enable/disable KVM hardware virtualization.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "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" : "" + }, + "lock" : { + "description" : "Lock/unlock the VM.", + "enum" : [ + "migrate", + "backup", + "snapshot", + "rollback" + ], + "optional" : 1, + "type" : "string" + }, + "machine" : { + "description" : "Specifies the Qemu machine type.", + "maxLength" : 40, + "optional" : 1, + "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)", + "type" : "string" + }, + "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" : " (16 - N)" + }, + "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" : "" + }, + "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" : "" + }, + "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.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "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" : "cpus= [,hostnodes=] [,memory=] [,policy=]" + }, + "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", + "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" + }, + "parallel[n]" : { + "description" : "Map host parallel devices (n is 0 to 2).", + "optional" : 1, + "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+", + "type" : "string", + "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" + }, + "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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", + "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>] [,ssd=<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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", + "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>] [,ssd=<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" : "Configure the VGA hardware.", + "format" : { + "memory" : { + "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.", + "maximum" : 512, + "minimum" : 4, + "optional" : 1, + "type" : "integer" + }, + "type" : { + "default" : "std", + "default_key" : 1, + "description" : "Select the VGA type.", + "enum" : [ + "cirrus", + "qxl", + "qxl2", + "qxl3", + "qxl4", + "serial0", + "serial1", + "serial2", + "serial3", + "std", + "virtio", + "vmware" + ], + "optional" : 1, + "type" : "string" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[[type=]] [,memory=]", + "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou 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)?|virt(?:-\\d+\\.\\d+)?)", + "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" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + } + } + }, + "permissions" : { + "check" : [ + "and", + [ + "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" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/clone", + "text" : "clone" + }, + { + "info" : { + "POST" : { + "description" : "Move volume to different storage.", + "method" : "POST", + "name" : "move_vm_disk", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "delete" : { + "default" : 0, + "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.", + "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" : "" + }, + "disk" : { + "description" : "The disk you want to move.", + "enum" : [ + "ide0", + "ide1", + "ide2", + "ide3", + "scsi0", + "scsi1", + "scsi2", + "scsi3", + "scsi4", + "scsi5", + "scsi6", + "scsi7", + "scsi8", + "scsi9", + "scsi10", + "scsi11", + "scsi12", + "scsi13", + "virtio0", + "virtio1", + "virtio2", + "virtio3", + "virtio4", + "virtio5", + "virtio6", + "virtio7", + "virtio8", + "virtio9", + "virtio10", + "virtio11", + "virtio12", + "virtio13", + "virtio14", + "virtio15", + "sata0", + "sata1", + "sata2", + "sata3", + "sata4", + "sata5", + "efidisk0" + ], + "type" : "string" + }, + "format" : { + "description" : "Target Format.", + "enum" : [ + "raw", + "qcow2", + "vmdk" + ], + "optional" : 1, + "type" : "string" + }, + "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)" + } + } + }, + "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." + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "the task ID.", + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/move_disk", + "text" : "move_disk" + }, + { + "info" : { + "POST" : { + "description" : "Migrate virtual machine. Creates a new migration task.", + "method" : "POST", + "name" : "migrate_vm", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "force" : { + "description" : "Allow to migrate VMs which use local devices. Only root may use this option.", + "optional" : 1, + "type" : "boolean", + "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" : "" + }, + "online" : { + "description" : "Use online/live migration.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "target" : { + "description" : "Target node.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "targetstorage" : { + "description" : "Default target storage.", + "format" : "pve-storage-id", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "vmid" : { + "description" : "The (unique) ID of the VM.", + "format" : "pve-vmid", + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "with-local-disks" : { + "description" : "Enable live storage migration for local disk", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Migrate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "the task ID.", + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/migrate", + "text" : "migrate" + }, + { + "info" : { + "POST" : { + "description" : "Execute Qemu monitor commands.", + "method" : "POST", + "name" : "monitor", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "command" : { + "description" : "The monitor command.", + "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" + ] + ], + "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/monitor", + "text" : "monitor" + }, + { + "info" : { + "PUT" : { + "description" : "Extend volume size.", + "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" : [ + "ide0", + "ide1", + "ide2", + "ide3", + "scsi0", + "scsi1", + "scsi2", + "scsi3", + "scsi4", + "scsi5", + "scsi6", + "scsi7", + "scsi8", + "scsi9", + "scsi10", + "scsi11", + "scsi12", + "scsi13", + "virtio0", + "virtio1", + "virtio2", + "virtio3", + "virtio4", + "virtio5", + "virtio6", + "virtio7", + "virtio8", + "virtio9", + "virtio10", + "virtio11", + "virtio12", + "virtio13", + "virtio14", + "virtio15", + "sata0", + "sata1", + "sata2", + "sata3", + "sata4", + "sata5", + "efidisk0" + ], + "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" + }, + "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.Config.Disk" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/qemu/{vmid}/resize", + "text" : "resize" + }, + { + "children" : [ + { + "children" : [ + { + "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}/qemu/{vmid}/snapshot/{snapname}/config", + "text" : "config" + }, + { + "info" : { + "POST" : { + "description" : "Rollback VM 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}/qemu/{vmid}/snapshot/{snapname}/rollback", + "text" : "rollback" + } + ], + "info" : { + "DELETE" : { + "description" : "Delete a VM snapshot.", + "method" : "DELETE", + "name" : "delsnapshot", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "force" : { + "description" : "For removal from config file, even if removing disk snapshots fails.", + "optional" : 1, + "type" : "boolean", + "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" + } + }, + "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" + }, + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{cmd}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}", + "text" : "{snapname}" + } + ], + "info" : { + "GET" : { + "description" : "List all snapshots.", + "method" : "GET", + "name" : "snapshot_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" : { + "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" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + }, + "POST" : { + "description" : "Snapshot a VM.", + "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)" + }, + "vmstate" : { + "description" : "Save the vmstate", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/vms/{vmid}", + [ + "VM.Snapshot" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "the task ID.", + "type" : "string" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/qemu/{vmid}/snapshot", + "text" : "snapshot" + }, + { + "info" : { + "POST" : { + "description" : "Create a Template.", + "method" : "POST", + "name" : "template", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "disk" : { + "description" : "If you want to convert only 1 disk to base image.", + "enum" : [ + "ide0", + "ide1", + "ide2", + "ide3", + "scsi0", + "scsi1", + "scsi2", + "scsi3", + "scsi4", + "scsi5", + "scsi6", + "scsi7", + "scsi8", + "scsi9", + "scsi10", + "scsi11", + "scsi12", + "scsi13", + "virtio0", + "virtio1", + "virtio2", + "virtio3", + "virtio4", + "virtio5", + "virtio6", + "virtio7", + "virtio8", + "virtio9", + "virtio10", + "virtio11", + "virtio12", + "virtio13", + "virtio14", + "virtio15", + "sata0", + "sata1", + "sata2", + "sata3", + "sata4", + "sata5", + "efidisk0" + ], + "optional" : 1, + "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" : { @@ -11783,7 +16570,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" : [ @@ -11810,11 +16650,33 @@ 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>]" + }, + "arch" : { + "description" : "Virtual processor architecture. Defaults to the host.", + "enum" : [ + "x86_64", + "aarch64" + ], + "optional" : 1, + "type" : "string" }, "archive" : { "description" : "The backup file.", @@ -11868,6 +16730,13 @@ var pveapi = [ "pattern" : "(ide|sata|scsi|virtio)\\d+", "type" : "string" }, + "bwlimit" : { + "description" : "Override i/o bandwidth limit (in KiB/s).", + "minimum" : "0", + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, "cdrom" : { "description" : "This is an alias for option -ide2", "format" : "pve-qm-ide", @@ -11875,6 +16744,27 @@ var pveapi = [ "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" : "" + }, + "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" : [ + "configdrive2", + "nocloud" + ], + "optional" : 1, + "type" : "string" + }, + "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.", @@ -11894,17 +16784,26 @@ var pveapi = [ "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", @@ -11918,11 +16817,23 @@ var pveapi = [ "qemu32", "qemu64", "SandyBridge", + "SandyBridge-IBRS", "Skylake-Client", - "Westmere" + "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.", @@ -11932,7 +16843,7 @@ var pveapi = [ }, "optional" : 1, "type" : "string", - "typetext" : "[cputype=] [,hidden=<1|0>]" + "typetext" : "[cputype=] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]" }, "cpulimit" : { "default" : 0, @@ -11947,12 +16858,12 @@ var pveapi = [ "cpuunits" : { "default" : 1024, "description" : "CPU weight for a VM.", - "maximum" : 500000, - "minimum" : 0, + "maximum" : 262144, + "minimum" : 2, "optional" : 1, "type" : "integer", - "typetext" : " (0 - 500000)", - "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.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0." + "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." }, "description" : { "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.", @@ -11960,6 +16871,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, @@ -11978,7 +16928,7 @@ var pveapi = [ "format" : "pve-qm-hostpci", "optional" : 1, "type" : "string", - "typetext" : "[host=] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=] [,x-vga=<1|0>]", + "typetext" : "[host=] [,mdev=] [,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" : { @@ -12264,6 +17214,13 @@ var pveapi = [ "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", @@ -12272,7 +17229,12 @@ var pveapi = [ "type" : "string" }, "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", "optional" : 1, "type" : "boolean" }, @@ -12303,11 +17265,18 @@ 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=] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + "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>] [,ssd=<1|0>] [,trans=] [,werror=]" + }, + "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=]" }, "keyboard" : { - "default" : "en-us", - "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.conf' configuration file.", + "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", @@ -12363,10 +17332,10 @@ 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)?)", + "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)", "type" : "string" }, "memory" : { @@ -12400,6 +17369,13 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "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" : "" + }, "net[n]" : { "description" : "Specify network devices.", "format" : { @@ -12604,7 +17580,7 @@ var pveapi = [ ], "optional" : 1, "type" : "string", - "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\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" + "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" }, "parallel[n]" : { "description" : "Map host parallel devices (n is 0 to 2).", @@ -12891,6 +17867,13 @@ var pveapi = [ "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", @@ -12899,7 +17882,12 @@ var pveapi = [ "type" : "string" }, "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", "optional" : 1, "type" : "boolean" }, @@ -12930,7 +17918,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=] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + "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>] [,ssd=<1|0>] [,trans=] [,werror=]" }, "scsi[n]" : { "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).", @@ -13206,6 +18194,13 @@ var pveapi = [ "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", @@ -13214,7 +18209,12 @@ var pveapi = [ "type" : "string" }, "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "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" + }, + "ssd" : { + "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.", "optional" : 1, "type" : "boolean" }, @@ -13245,7 +18245,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=] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + "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>] [,ssd=<1|0>] [,trans=] [,werror=]" }, "scsihw" : { "default" : "lsi", @@ -13261,6 +18261,12 @@ var pveapi = [ "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, @@ -13270,7 +18276,7 @@ var pveapi = [ }, "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", + "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, @@ -13301,6 +18307,20 @@ var pveapi = [ "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" : "" + }, + "start" : { + "default" : 0, + "description" : "Start VM after it was created successfully.", + "optional" : 1, + "type" : "boolean", + "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'.", @@ -13389,23 +18409,41 @@ var pveapi = [ "typetext" : " (1 - N)" }, "vga" : { - "description" : "Select the VGA type.", - "enum" : [ - "std", - "cirrus", - "vmware", - "qxl", - "serial0", - "serial1", - "serial2", - "serial3", - "qxl2", - "qxl3", - "qxl4" - ], + "description" : "Configure the VGA hardware.", + "format" : { + "memory" : { + "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.", + "maximum" : 512, + "minimum" : 4, + "optional" : 1, + "type" : "integer" + }, + "type" : { + "default" : "std", + "default_key" : 1, + "description" : "Select the VGA type.", + "enum" : [ + "cirrus", + "qxl", + "qxl2", + "qxl3", + "qxl4", + "serial0", + "serial1", + "serial2", + "serial3", + "std", + "virtio", + "vmware" + ], + "optional" : 1, + "type" : "string" + } + }, "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." + "typetext" : "[[type=]] [,memory=]", + "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou 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).", @@ -13669,6 +18707,13 @@ var pveapi = [ "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", @@ -13677,7 +18722,7 @@ var pveapi = [ "type" : "string" }, "snapshot" : { - "description" : "Whether the drive should be included when making snapshots.", + "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" }, @@ -13708,7 +18753,16 @@ 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=] [,size=] [,snapshot=<1|0>] [,trans=] [,werror=]" + "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.", @@ -13717,6 +18771,13 @@ var pveapi = [ "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", @@ -13759,31 +18820,444 @@ 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" : { + "fuse" : { + "default" : 0, + "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.", + "optional" : 1, + "type" : "boolean" + }, + "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" } }, @@ -13802,7 +19276,9 @@ var pveapi = [ "description" : "OS architecture type.", "enum" : [ "amd64", - "i386" + "i386", + "arm64", + "armhf" ], "optional" : 1, "type" : "string" @@ -13871,6 +19347,39 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "features" : { + "description" : "Allow containers access to advanced features.", + "format" : { + "fuse" : { + "default" : 0, + "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.", + "optional" : 1, + "type" : "boolean" + }, + "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" : "[fuse=<1|0>] [,keyctl=<1|0>] [,mount=] [,nesting=<1|0>]" + }, "hostname" : { "description" : "Set a host name for the container.", "format" : "dns-name", @@ -13882,10 +19391,13 @@ var pveapi = [ "lock" : { "description" : "Lock/unlock the VM.", "enum" : [ - "migrate", "backup", + "disk", + "migrate", + "mounted", + "rollback", "snapshot", - "rollback" + "snapshot-delete" ], "optional" : 1, "type" : "string" @@ -14007,14 +19519,14 @@ var pveapi = [ "ip" : { "description" : "IPv4 address in CIDR format.", "format" : "pve-ipv4-config", - "format_description" : "IPv4Format/CIDR", + "format_description" : "(IPv4/CIDR|dhcp|manual)", "optional" : 1, "type" : "string" }, "ip6" : { "description" : "IPv6 address in CIDR format.", "format" : "pve-ipv6-config", - "format_description" : "IPv6Format/CIDR", + "format_description" : "(IPv6/CIDR|auto|dhcp|manual)", "optional" : 1, "type" : "string" }, @@ -14061,7 +19573,7 @@ var pveapi = [ }, "optional" : 1, "type" : "string", - "typetext" : "name= [,bridge=] [,firewall=<1|0>] [,gw=] [,gw6=] [,hwaddr=] [,ip=] [,ip6=] [,mtu=] [,rate=] [,tag=] [,trunks=] [,type=]" + "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.", @@ -14275,6 +19787,60 @@ var pveapi = [ "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" } } @@ -14621,8 +20187,11 @@ var pveapi = [ "perm", "/vms/{vmid}", [ - "VM.Snapshot" - ] + "VM.Snapshot", + "VM.Snapshot.Rollback" + ], + "any", + 1 ] }, "protected" : 1, @@ -14673,8 +20242,11 @@ var pveapi = [ "perm", "/vms/{vmid}", [ - "VM.Snapshot" - ] + "VM.Snapshot", + "VM.Snapshot.Rollback" + ], + "any", + 1 ] }, "proxyto" : "node", @@ -14878,7 +20450,27 @@ 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" + } + }, "type" : "object" }, "links" : [ @@ -15020,32 +20612,78 @@ var pveapi = [ "description" : "Update rule at position .", "minimum" : 0, "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" + "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.Audit" + ] + ] + }, + "proxyto" : null, + "returns" : { + "properties" : { + "action" : { + "type" : "string" + }, + "comment" : { + "optional" : 1, + "type" : "string" + }, + "dest" : { + "optional" : 1, + "type" : "string" + }, + "dport" : { + "optional" : 1, + "type" : "string" + }, + "enable" : { + "optional" : 1, + "type" : "integer" + }, + "iface" : { + "optional" : 1, + "type" : "string" + }, + "ipversion" : { + "optional" : 1, + "type" : "integer" + }, + "macro" : { + "optional" : 1, + "type" : "integer" }, - "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" : { - "properties" : { "pos" : { "type" : "integer" + }, + "proto" : { + "optional" : 1, + "type" : "string" + }, + "source" : { + "optional" : 1, + "type" : "string" + }, + "sport" : { + "optional" : 1, + "type" : "string" + }, + "type" : { + "type" : "string" } }, "type" : "object" @@ -16854,6 +22492,63 @@ var pveapi = [ "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" : { + "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}/lxc/{vmid}/termproxy", + "text" : "termproxy" + }, { "info" : { "GET" : { @@ -16931,7 +22626,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", @@ -17072,7 +22767,9 @@ var pveapi = [ "feature" : { "description" : "Feature to check.", "enum" : [ - "snapshot" + "snapshot", + "clone", + "copy" ], "type" : "string" }, @@ -17133,12 +22830,6 @@ var pveapi = [ "parameters" : { "additionalProperties" : 0, "properties" : { - "experimental" : { - "default" : 0, - "description" : "The template feature is experimental, set this flag if you know what you are doing.", - "type" : "boolean", - "typetext" : "" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", @@ -17190,15 +22881,8 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "experimental" : { - "default" : 0, - "description" : "The clone feature is experimental, set this flag if you know what you are doing.", - "type" : "boolean", - "typetext" : "" - }, "full" : { - "default" : 0, - "description" : "Create a full copy of all disk. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default.", + "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" : "" @@ -17242,7 +22926,13 @@ var pveapi = [ "description" : "Target storage for full clone.", "format" : "pve-storage-id", "optional" : 1, - "requires" : "full", + "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" : "" }, @@ -17327,7 +23017,253 @@ var pveapi = [ "mp6", "mp7", "mp8", - "mp9" + "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" }, @@ -17373,6 +23309,344 @@ var pveapi = [ "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", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "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" : "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.", + "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", + "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" : [ + "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." + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/lxc/{vmid}/move_volume", + "text" : "move_volume" } ], "info" : { @@ -17487,7 +23761,56 @@ 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" + }, + "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" }, "links" : [ @@ -17511,11 +23834,20 @@ var pveapi = [ "description" : "OS architecture type.", "enum" : [ "amd64", - "i386" + "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).", @@ -17566,6 +23898,39 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "features" : { + "description" : "Allow containers access to advanced features.", + "format" : { + "fuse" : { + "default" : 0, + "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.", + "optional" : 1, + "type" : "boolean" + }, + "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" : "[fuse=<1|0>] [,keyctl=<1|0>] [,mount=] [,nesting=<1|0>]" + }, "force" : { "description" : "Allow to overwrite existing container.", "optional" : 1, @@ -17589,10 +23954,13 @@ var pveapi = [ "lock" : { "description" : "Lock/unlock the VM.", "enum" : [ - "migrate", "backup", + "disk", + "migrate", + "mounted", + "rollback", "snapshot", - "rollback" + "snapshot-delete" ], "optional" : 1, "type" : "string" @@ -17714,14 +24082,14 @@ var pveapi = [ "ip" : { "description" : "IPv4 address in CIDR format.", "format" : "pve-ipv4-config", - "format_description" : "IPv4Format/CIDR", + "format_description" : "(IPv4/CIDR|dhcp|manual)", "optional" : 1, "type" : "string" }, "ip6" : { "description" : "IPv6 address in CIDR format.", "format" : "pve-ipv6-config", - "format_description" : "IPv6Format/CIDR", + "format_description" : "(IPv6/CIDR|auto|dhcp|manual)", "optional" : 1, "type" : "string" }, @@ -17768,7 +24136,7 @@ var pveapi = [ }, "optional" : 1, "type" : "string", - "typetext" : "name= [,bridge=] [,firewall=<1|0>] [,gw=] [,gw6=] [,hwaddr=] [,ip=] [,ip6=] [,mtu=] [,rate=] [,tag=] [,trunks=] [,type=]" + "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.", @@ -17892,8 +24260,15 @@ var pveapi = [ "ssh-public-keys" : { "description" : "Setup public SSH keys (one key per line, OpenSSH format).", "optional" : 1, - "type" : "string", - "typetext" : "" + "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.", @@ -18145,8 +24520,8 @@ var pveapi = [ "additionalProperties" : 0, "properties" : { "bluestore" : { - "default" : 0, - "description" : "Use bluestore instead of filestore.", + "default" : 1, + "description" : "Use bluestore instead of filestore. This is the default.", "optional" : 1, "type" : "boolean", "typetext" : "" @@ -18161,14 +24536,13 @@ var pveapi = [ "description" : "File system type (filestore only).", "enum" : [ "xfs", - "ext4", - "btrfs" + "ext4" ], "optional" : 1, "type" : "string" }, "journal_dev" : { - "description" : "Block device name for journal.", + "description" : "Block device name for journal (filestore) or block.db (bluestore).", "optional" : 1, "type" : "string", "typetext" : "" @@ -18178,6 +24552,12 @@ var pveapi = [ "format" : "pve-node", "type" : "string", "typetext" : "" + }, + "wal_dev" : { + "description" : "Block device name for block.wal (bluestore only).", + "optional" : 1, + "type" : "string", + "typetext" : "" } } }, @@ -18192,6 +24572,293 @@ var pveapi = [ "path" : "/nodes/{node}/ceph/osd", "text" : "osd" }, + { + "children" : [ + { + "info" : { + "DELETE" : { + "description" : "Destroy Ceph Metadata Server", + "method" : "DELETE", + "name" : "destroymds", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "name" : { + "description" : "The name (ID) of the mds", + "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" + } + }, + "POST" : { + "description" : "Create Ceph Metadata Server (MDS)", + "method" : "POST", + "name" : "createmds", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "hotstandby" : { + "default" : "0", + "description" : "Determines whether a ceph-mds daemon should poll and replay the log of an active MDS. Faster switch on MDS failure, but needs more idle resources.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "name" : { + "default" : "nodename", + "description" : "The ID for the mds, 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" : 1, + "path" : "/nodes/{node}/ceph/mds/{name}", + "text" : "{name}" + } + ], + "info" : { + "GET" : { + "description" : "MDS 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 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "addr" : { + "optional" : 1, + "type" : "string" + }, + "host" : { + "optional" : 1, + "type" : "string" + }, + "name" : { + "description" : "The name (ID) for the MDS" + }, + "rank" : { + "optional" : 1, + "type" : "integer" + }, + "standby_replay" : { + "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).", + "optional" : 1, + "type" : "boolean" + }, + "state" : { + "description" : "State of the MDS", + "type" : "string" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/ceph/mds", + "text" : "mds" + }, + { + "children" : [ + { + "info" : { + "POST" : { + "description" : "Create a Ceph filesystem", + "method" : "POST", + "name" : "createfs", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "add-storage" : { + "default" : 0, + "description" : "Configure the created CephFS as storage for this cluster.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "name" : { + "default" : "cephfs", + "description" : "The ceph filesystem name.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "pg_num" : { + "default" : 128, + "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.", + "maximum" : 32768, + "minimum" : 8, + "optional" : 1, + "type" : "integer", + "typetext" : " (8 - 32768)" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/ceph/fs/{name}", + "text" : "{name}" + } + ], + "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 + ] + }, + "protected" : 1, + "returns" : { + "items" : { + "properties" : { + "data_pool" : { + "description" : "The name of the data pool.", + "type" : "string" + }, + "metadata_pool" : { + "description" : "The name of the metadata pool.", + "type" : "string" + }, + "name" : { + "description" : "The ceph filesystem name.", + "type" : "string" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/ceph/fs", + "text" : "fs" + }, { "info" : { "GET" : { @@ -18317,16 +24984,23 @@ var pveapi = [ { "info" : { "DELETE" : { - "description" : "Destroy Ceph monitor.", + "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", - "type" : "integer", - "typetext" : "" + "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?", + "type" : "string" }, "node" : { "description" : "The cluster node name.", @@ -18409,12 +25083,32 @@ var pveapi = [ } }, "POST" : { - "description" : "Create Ceph Monitor", + "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" : "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", @@ -18452,6 +25146,15 @@ var pveapi = [ "parameters" : { "additionalProperties" : 0, "properties" : { + "cluster-network" : { + "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it", + "format" : "CIDR", + "maxLength" : 128, + "optional" : 1, + "requires" : "network", + "type" : "string", + "typetext" : "" + }, "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!", @@ -18522,6 +25225,93 @@ var pveapi = [ "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" + } + } + }, + "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" : { @@ -18538,9 +25328,10 @@ var pveapi = [ "typetext" : "" }, "service" : { + "default" : "ceph.target", "description" : "Ceph service name.", "optional" : 1, - "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}", + "pattern" : "(mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}", "type" : "string" } } @@ -18581,9 +25372,10 @@ var pveapi = [ "typetext" : "" }, "service" : { + "default" : "ceph.target", "description" : "Ceph service name.", "optional" : 1, - "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}", + "pattern" : "(mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}", "type" : "string" } } @@ -18608,6 +25400,50 @@ var pveapi = [ "path" : "/nodes/{node}/ceph/start", "text" : "start" }, + { + "info" : { + "POST" : { + "description" : "Restart ceph services.", + "method" : "POST", + "name" : "restart", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "service" : { + "default" : "ceph.target", + "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/restart", + "text" : "restart" + }, { "info" : { "GET" : { @@ -18676,6 +25512,13 @@ var pveapi = [ "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" : "" } } }, @@ -18691,7 +25534,7 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "null" + "type" : "string" } } }, @@ -18761,17 +25604,30 @@ var pveapi = [ "parameters" : { "additionalProperties" : 0, "properties" : { - "crush_ruleset" : { - "default" : 0, - "description" : "The ruleset to use for mapping object placement in the cluster.", - "maximum" : 32768, - "minimum" : 0, + "add_storages" : { + "description" : "Configure VM and CT storage using the new pool.", "optional" : 1, - "type" : "integer", - "typetext" : " (0 - 32768)" + "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" : 1, + "default" : 2, "description" : "Minimum number of replicas per object", "maximum" : 7, "minimum" : 1, @@ -18791,7 +25647,7 @@ var pveapi = [ "typetext" : "" }, "pg_num" : { - "default" : 64, + "default" : 128, "description" : "Number of placement groups.", "maximum" : 32768, "minimum" : 8, @@ -18800,7 +25656,7 @@ var pveapi = [ "typetext" : " (8 - 32768)" }, "size" : { - "default" : 2, + "default" : 3, "description" : "Number of replicas per object", "maximum" : 7, "minimum" : 1, @@ -18822,7 +25678,7 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "null" + "type" : "string" } } }, @@ -19073,6 +25929,56 @@ var pveapi = [ "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}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/ceph/rules", + "text" : "rules" } ], "info" : { @@ -19432,7 +26338,6 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "properties" : {}, "type" : "object" } } @@ -19842,6 +26747,15 @@ var pveapi = [ } } }, + "permissions" : { + "check" : [ + "perm", + "/nodes/{node}", + [ + "Sys.Modify" + ] + ] + }, "protected" : 1, "proxyto" : "node", "returns" : { @@ -19857,8 +26771,9 @@ var pveapi = [ "properties" : { "key" : { "description" : "Proxmox VE subscription key", - "type" : "string", - "typetext" : "" + "maxLength" : 32, + "pattern" : "pve([124])([cbsp])-[0-9a-f]{10}", + "type" : "string" }, "node" : { "description" : "The cluster node name.", @@ -19868,6 +26783,15 @@ var pveapi = [ } } }, + "permissions" : { + "check" : [ + "perm", + "/nodes/{node}", + [ + "Sys.Modify" + ] + ] + }, "protected" : 1, "proxyto" : "node", "returns" : { @@ -20461,7 +27385,37 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "type" : "null" + "type" : "null" + } + }, + "PUT" : { + "description" : "Reload network configuration", + "method" : "PUT", + "name" : "reload_network_config", + "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" : "string" } } }, @@ -20483,6 +27437,7 @@ var pveapi = [ "additionalProperties" : 0, "properties" : { "limit" : { + "default" : 50, "minimum" : 0, "optional" : 1, "type" : "integer", @@ -20495,6 +27450,7 @@ var pveapi = [ "typetext" : "" }, "start" : { + "default" : 0, "minimum" : 0, "optional" : 1, "type" : "integer", @@ -20664,11 +27620,14 @@ var pveapi = [ "additionalProperties" : 0, "properties" : { "errors" : { + "default" : 0, "optional" : 1, "type" : "boolean", "typetext" : "" }, "limit" : { + "default" : 50, + "description" : "Only list this amount of tasks.", "minimum" : 0, "optional" : 1, "type" : "integer", @@ -20681,12 +27640,15 @@ var pveapi = [ "typetext" : "" }, "start" : { + "default" : 0, + "description" : "List tasks beginning from this offset.", "minimum" : 0, "optional" : 1, "type" : "integer", "typetext" : " (0 - N)" }, "userfilter" : { + "description" : "Only list tasks from this user.", "optional" : 1, "type" : "string", "typetext" : "" @@ -20709,7 +27671,52 @@ var pveapi = [ "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" } }, @@ -20763,6 +27770,7 @@ var pveapi = [ "items" : { "properties" : { "pool" : { + "description" : "ZFS pool name.", "type" : "string" } }, @@ -20779,9 +27787,247 @@ var pveapi = [ { "info" : { "GET" : { - "description" : "Scan remote NFS server.", + "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" + } + } + }, + "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" : "" + }, + "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" : { + "volname" : { + "description" : "The volume name.", + "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" : { + "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" + }, + "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" : "nfsscan", + "name" : "lvmscan", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -20790,11 +28036,6 @@ var pveapi = [ "format" : "pve-node", "type" : "string", "typetext" : "" - }, - "server" : { - "format" : "pve-storage-server", - "type" : "string", - "typetext" : "" } } }, @@ -20812,10 +28053,8 @@ var pveapi = [ "returns" : { "items" : { "properties" : { - "options" : { - "type" : "string" - }, - "path" : { + "vg" : { + "description" : "The LVM logical volume group name.", "type" : "string" } }, @@ -20826,15 +28065,15 @@ var pveapi = [ } }, "leaf" : 1, - "path" : "/nodes/{node}/scan/nfs", - "text" : "nfs" + "path" : "/nodes/{node}/scan/lvm", + "text" : "lvm" }, { "info" : { "GET" : { - "description" : "Scan remote GlusterFS server.", + "description" : "List local LVM Thin Pools.", "method" : "GET", - "name" : "glusterfsscan", + "name" : "lvmthinscan", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -20844,10 +28083,10 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "server" : { - "format" : "pve-storage-server", - "type" : "string", - "typetext" : "" + "vg" : { + "maxLength" : 100, + "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+", + "type" : "string" } } }, @@ -20865,7 +28104,8 @@ var pveapi = [ "returns" : { "items" : { "properties" : { - "volname" : { + "lv" : { + "description" : "The LVM Thin Pool name (LVM logical volume).", "type" : "string" } }, @@ -20876,15 +28116,15 @@ var pveapi = [ } }, "leaf" : 1, - "path" : "/nodes/{node}/scan/glusterfs", - "text" : "glusterfs" + "path" : "/nodes/{node}/scan/lvmthin", + "text" : "lvmthin" }, { "info" : { "GET" : { - "description" : "Scan remote iSCSI server.", + "description" : "List local USB devices.", "method" : "GET", - "name" : "iscsiscan", + "name" : "usbscan", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -20893,20 +28133,15 @@ var pveapi = [ "format" : "pve-node", "type" : "string", "typetext" : "" - }, - "portal" : { - "format" : "pve-storage-portal-dns", - "type" : "string", - "typetext" : "" } } }, "permissions" : { "check" : [ "perm", - "/storage", + "/", [ - "Datastore.Allocate" + "Sys.Modify" ] ] }, @@ -20915,10 +28150,44 @@ var pveapi = [ "returns" : { "items" : { "properties" : { - "portal" : { + "busnum" : { + "type" : "integer" + }, + "class" : { + "type" : "integer" + }, + "devnum" : { + "type" : "integer" + }, + "level" : { + "type" : "integer" + }, + "manufacturer" : { + "optional" : 1, "type" : "string" }, - "target" : { + "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" } }, @@ -20929,15 +28198,169 @@ var pveapi = [ } }, "leaf" : 1, - "path" : "/nodes/{node}/scan/iscsi", - "text" : "iscsi" - }, + "path" : "/nodes/{node}/scan/usb", + "text" : "usb" + } + ], + "info" : { + "GET" : { + "description" : "Index of available scan methods", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "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" : { + "GET" : { + "description" : "List mediated device types for given PCI device.", + "method" : "GET", + "name" : "mdevscan", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "pciid" : { + "description" : "The PCI ID to list the mdev types for.", + "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]", + "type" : "string" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "available" : { + "description" : "The number of still available instances of this type.", + "type" : "integer" + }, + "description" : { + "type" : "string" + }, + "type" : { + "description" : "The name of the mdev type.", + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev", + "text" : "mdev" + } + ], + "info" : { + "GET" : { + "description" : "Index of available pci methods", + "method" : "GET", + "name" : "pciindex", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "pciid" : { + "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]", + "type" : "string" + } + } + }, + "permissions" : { + "user" : "all" + }, + "returns" : { + "items" : { + "properties" : { + "method" : { + "type" : "string" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{method}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/hardware/pci/{pciid}", + "text" : "{pciid}" + } + ], "info" : { "GET" : { - "description" : "List local LVM volume groups.", + "description" : "List local PCI devices.", "method" : "GET", - "name" : "lvmscan", + "name" : "pciscan", "parameters" : { "additionalProperties" : 0, "properties" : { @@ -20946,15 +28369,30 @@ var pveapi = [ "format" : "pve-node", "type" : "string", "typetext" : "" + }, + "pci-class-blacklist" : { + "default" : "05;06;08;0b", + "description" : "A list of blacklisted PCI classes, which will not be returned. Following are filtered by default: Memory Controller (05), Bridge (06), Generic System Peripheral (08) and Processor (0b).", + "format" : "string-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "verbose" : { + "default" : 1, + "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" } } }, "permissions" : { "check" : [ "perm", - "/storage", + "/", [ - "Datastore.Allocate" + "Sys.Modify" ] ] }, @@ -20963,340 +28401,624 @@ var pveapi = [ "returns" : { "items" : { "properties" : { - "vg" : { + "class" : { + "description" : "The PCI Class of the device.", + "type" : "string" + }, + "device" : { + "description" : "The Device ID.", + "type" : "string" + }, + "device_name" : { + "optional" : 1, + "type" : "string" + }, + "id" : { + "description" : "The PCI ID.", + "type" : "string" + }, + "iommugroup" : { + "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.", + "type" : "integer" + }, + "mdev" : { + "description" : "If set, marks that the device is capable of creating mediated devices.", + "optional" : 1, + "type" : "boolean" + }, + "subsystem_device" : { + "description" : "The Subsystem Device ID.", + "optional" : 1, + "type" : "string" + }, + "subsystem_device_name" : { + "optional" : 1, + "type" : "string" + }, + "subsystem_vendor" : { + "description" : "The Subsystem Vendor ID.", + "optional" : 1, + "type" : "string" + }, + "subsystem_vendor_name" : { + "optional" : 1, + "type" : "string" + }, + "vendor" : { + "description" : "The Vendor ID.", + "type" : "string" + }, + "vendor_name" : { + "optional" : 1, "type" : "string" } }, "type" : "object" }, + "links" : [ + { + "href" : "{id}", + "rel" : "child" + } + ], "type" : "array" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/scan/lvm", - "text" : "lvm" - }, + "leaf" : 0, + "path" : "/nodes/{node}/hardware/pci", + "text" : "pci" + } + ], + "info" : { + "GET" : { + "description" : "Index of hardware types", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "user" : "all" + }, + "returns" : { + "items" : { + "properties" : { + "type" : { + "type" : "string" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{type}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/hardware", + "text" : "hardware" + }, + { + "children" : [ { - "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" : "" + "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}" + } + ], + "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 + ] }, - "vg" : { - "maxLength" : 100, - "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+", - "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" + }, + "links" : [ + { + "href" : "{volid}", + "rel" : "child" + } + ], + "type" : "array" } - } - }, - "permissions" : { - "check" : [ - "perm", - "/storage", - [ - "Datastore.Allocate" - ] - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : { - "lv" : { - "type" : "string" + }, + "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/lvmthin", - "text" : "lvmthin" - }, - { - "info" : { - "GET" : { - "description" : "List local USB devices.", - "method" : "GET", - "name" : "usbscan", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" + "permissions" : { + "check" : [ + "perm", + "/storage/{storage}", + [ + "Datastore.AllocateSpace" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "description" : "Volume identifier", + "type" : "string" } } }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Modify" - ] - ] - }, - "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" : { - "type" : "string" - } - }, - "type" : "object" - }, - "type" : "array" - } - } - }, - "leaf" : 1, - "path" : "/nodes/{node}/scan/usb", - "text" : "usb" - } - ], - "info" : { - "GET" : { - "description" : "Index of available scan methods", - "method" : "GET", - "name" : "index", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "node" : { - "description" : "The cluster node name.", - "format" : "pve-node", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "user" : "all" - }, - "returns" : { - "items" : { - "properties" : { - "method" : { - "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" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/storage/{storage}", + [ + "Datastore.Audit", + "Datastore.AllocateSpace" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "object" + } } }, - "type" : "object" + "leaf" : 1, + "path" : "/nodes/{node}/storage/{storage}/status", + "text" : "status" }, - "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" : "" - } - } + "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" }, - "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" + "ds" : { + "description" : "The list of datasources you want to display.", + "format" : "pve-configid-list", + "type" : "string", + "typetext" : "" }, - "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" : "" - } - } + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" }, - "permissions" : { - "description" : "You need read access for the volume.", - "user" : "all" + "storage" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", + "type" : "string", + "typetext" : "" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "type" : "object" + "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" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "filename" : { + "type" : "string" } }, - "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" : "" - } - } + "type" : "object" + } + } + }, + "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" : "" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { + "timeframe" : { + "description" : "Specify the time frame you are interested in.", + "enum" : [ + "hour", + "day", + "week", + "month", + "year" + ], "type" : "string" } } }, - "leaf" : 1, - "path" : "/nodes/{node}/storage/{storage}/content/{volume}", - "text" : "{volume}" + "permissions" : { + "check" : [ + "perm", + "/storage/{storage}", + [ + "Datastore.Audit", + "Datastore.AllocateSpace" + ], + "any", + 1 + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "type" : "array" + } } - ], + }, + "leaf" : 1, + "path" : "/nodes/{node}/storage/{storage}/rrddata", + "text" : "rrddata" + }, + { "info" : { - "GET" : { - "description" : "List storage content.", - "method" : "GET", - "name" : "index", + "POST" : { + "description" : "Upload templates and ISO images.", + "method" : "POST", + "name" : "upload", "parameters" : { "additionalProperties" : 0, "properties" : { "content" : { - "description" : "Only list content of this type.", + "description" : "Content type.", "format" : "pve-storage-content", - "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "filename" : { + "description" : "The name of the file to create.", "type" : "string", "typetext" : "" }, @@ -21312,13 +29034,11 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "vmid" : { - "description" : "Only list images for this VM", - "format" : "pve-vmid", - "minimum" : 1, + "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" : "integer", - "typetext" : " (1 - N)" + "type" : "string", + "typetext" : "" } } }, @@ -21327,313 +29047,605 @@ var pveapi = [ "perm", "/storage/{storage}", [ - "Datastore.Audit", - "Datastore.AllocateSpace" - ], - "any", - 1 + "Datastore.AllocateTemplate" + ] ] }, "protected" : 1, - "proxyto" : "node", "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/storage/{storage}/upload", + "text" : "upload" + } + ], + "info" : { + "GET" : { + "description" : "", + "method" : "GET", + "name" : "diridx", + "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", + "/storage/{storage}", + [ + "Datastore.Audit", + "Datastore.AllocateSpace" + ], + "any", + 1 + ] + }, + "returns" : { + "items" : { + "properties" : { + "subdir" : { + "type" : "string" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{subdir}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "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" : { + "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" + } + }, + "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" : "" } } }, - "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.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" : "" + } + } + }, + "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" : "" + }, + "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" : "" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "properties" : {}, - "type" : "object" + "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", - "/storage/{storage}", - [ - "Datastore.Audit", - "Datastore.AllocateSpace" - ], - "any", - 1 - ] - }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "properties" : { - "filename" : { - "type" : "string" - } - }, - "type" : "object" + "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" : "" } } }, - "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" - } + "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" : "" }, - "protected" : 1, - "proxyto" : "node", - "returns" : { - "items" : { - "properties" : {}, - "type" : "object" - }, - "type" : "array" + "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" + }, + "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}/rrddata", - "text" : "rrddata" - }, + "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" : { - "POST" : { - "description" : "Upload templates and ISO images.", - "method" : "POST", - "name" : "upload", + "GET" : { + "description" : "Get details about a zpool.", + "method" : "GET", + "name" : "detail", "parameters" : { "additionalProperties" : 0, "properties" : { - "content" : { - "description" : "Content type.", - "format" : "pve-storage-content", - "type" : "string", - "typetext" : "" - }, - "filename" : { - "description" : "The name of the file to create.", + "name" : { + "description" : "The storage identifier.", + "format" : "pve-storage-id", "type" : "string", "typetext" : "" }, @@ -21642,46 +29654,100 @@ var pveapi = [ "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" : "" } } }, "permissions" : { "check" : [ "perm", - "/storage/{storage}", + "/", [ - "Datastore.AllocateTemplate" - ] + "Sys.Audit", + "Datastore.Audit" + ], + "any", + 1 ] }, "protected" : 1, + "proxyto" : "node", "returns" : { - "type" : "string" + "properties" : { + "action" : { + "description" : "Information about the recommended action to fix the state.", + "optional" : 1, + "type" : "string" + }, + "children" : { + "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.", + "items" : { + "properties" : { + "cksum" : { + "optional" : 1, + "type" : "number" + }, + "msg" : { + "description" : "An optional message about the vdev.", + "type" : "string" + }, + "name" : { + "description" : "The name of the vdev or section.", + "type" : "string" + }, + "read" : { + "optional" : 1, + "type" : "number" + }, + "state" : { + "description" : "The state of the vdev.", + "optional" : 1, + "type" : "string" + }, + "write" : { + "optional" : 1, + "type" : "number" + } + }, + "type" : "object" + }, + "type" : "array" + }, + "errors" : { + "description" : "Information about the errors on the zpool.", + "type" : "string" + }, + "name" : { + "description" : "The name of the zpool.", + "type" : "string" + }, + "scan" : { + "description" : "Information about the last/current scrub.", + "type" : "string" + }, + "state" : { + "description" : "The state of the zpool.", + "type" : "string" + }, + "status" : { + "description" : "Information about the state of the zpool.", + "optional" : 1, + "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" : { @@ -21690,126 +29756,156 @@ 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}", + "/", [ - "Datastore.Audit", - "Datastore.AllocateSpace" + "Sys.Audit", + "Datastore.Audit" ], "any", 1 ] }, + "protected" : 1, + "proxyto" : "node", "returns" : { "items" : { "properties" : { - "subdir" : { + "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" : "{subdir}", + "href" : "{name}", "rel" : "child" } ], "type" : "array" } - } - }, - "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" : "" - }, - "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" + }, + "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" : "" + }, + "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" + } } }, - "type" : "object" - }, - "links" : [ - { - "href" : "{storage}", - "rel" : "child" - } - ], - "type" : "array" - } - } - }, - "leaf" : 0, - "path" : "/nodes/{node}/storage", - "text" : "storage" - }, - { - "children" : [ + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify", + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/disks/zfs", + "text" : "zfs" + }, { "info" : { "GET" : { @@ -21824,6 +29920,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" } } }, @@ -22350,8 +30462,54 @@ var pveapi = [ "proxyto" : "node", "returns" : { "properties" : { + "action" : { + "type" : "string" + }, + "comment" : { + "optional" : 1, + "type" : "string" + }, + "dest" : { + "optional" : 1, + "type" : "string" + }, + "dport" : { + "optional" : 1, + "type" : "string" + }, + "enable" : { + "optional" : 1, + "type" : "integer" + }, + "iface" : { + "optional" : 1, + "type" : "string" + }, + "ipversion" : { + "optional" : 1, + "type" : "integer" + }, + "macro" : { + "optional" : 1, + "type" : "integer" + }, "pos" : { "type" : "integer" + }, + "proto" : { + "optional" : 1, + "type" : "string" + }, + "source" : { + "optional" : 1, + "type" : "string" + }, + "sport" : { + "optional" : 1, + "type" : "string" + }, + "type" : { + "type" : "string" } }, "type" : "object" @@ -23093,7 +31251,6 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "properties" : {}, "type" : "object" } } @@ -23174,11 +31331,207 @@ var pveapi = [ "parameters" : { "additionalProperties" : 0, "properties" : { - "id" : { - "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '-'.", - "format" : "pve-replication-job-id", - "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}", - "type" : "string" + "id" : { + "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '-'.", + "format" : "pve-replication-job-id", + "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/storage", + [ + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/replication/{id}/schedule_now", + "text" : "schedule_now" + } + ], + "info" : { + "GET" : { + "description" : "Directory index.", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "id" : { + "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '-'.", + "format" : "pve-replication-job-id", + "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}", + "type" : "string" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "user" : "all" + }, + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/replication/{id}", + "text" : "{id}" + } + ], + "info" : { + "GET" : { + "description" : "List status of all replication jobs on this node.", + "method" : "GET", + "name" : "status", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "guest" : { + "description" : "Only list replication jobs for this guest.", + "format" : "pve-vmid", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "description" : "Requires the VM.Audit permission on /vms/.", + "user" : "all" + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "id" : { + "type" : "string" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{id}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/replication", + "text" : "replication" + }, + { + "children" : [ + { + "children" : [ + { + "info" : { + "DELETE" : { + "description" : "Revoke existing certificate from CA.", + "method" : "DELETE", + "name" : "revoke_certificate", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + }, + "POST" : { + "description" : "Order a new certificate from ACME-compatible CA.", + "method" : "POST", + "name" : "new_certificate", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "force" : { + "default" : 0, + "description" : "Overwrite existing custom certificate.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "string" + } + }, + "PUT" : { + "description" : "Renew existing certificate from CA.", + "method" : "PUT", + "name" : "renew_certificate", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "force" : { + "default" : 0, + "description" : "Force renewal even if expiry is more than 30 days away.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -23188,15 +31541,6 @@ var pveapi = [ } } }, - "permissions" : { - "check" : [ - "perm", - "/storage", - [ - "Datastore.Allocate" - ] - ] - }, "protected" : 1, "proxyto" : "node", "returns" : { @@ -23205,24 +31549,18 @@ var pveapi = [ } }, "leaf" : 1, - "path" : "/nodes/{node}/replication/{id}/schedule_now", - "text" : "schedule_now" + "path" : "/nodes/{node}/certificates/acme/certificate", + "text" : "certificate" } ], "info" : { "GET" : { - "description" : "Directory index.", + "description" : "ACME index.", "method" : "GET", "name" : "index", "parameters" : { "additionalProperties" : 0, "properties" : { - "id" : { - "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '-'.", - "format" : "pve-replication-job-id", - "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}", - "type" : "string" - }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", @@ -23250,25 +31588,341 @@ var pveapi = [ } }, "leaf" : 0, - "path" : "/nodes/{node}/replication/{id}", - "text" : "{id}" + "path" : "/nodes/{node}/certificates/acme", + "text" : "acme" + }, + { + "info" : { + "GET" : { + "description" : "Get information about node's certificates.", + "method" : "GET", + "name" : "info", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "user" : "all" + }, + "proxyto" : "node", + "returns" : { + "items" : { + "properties" : { + "filename" : { + "optional" : 1, + "type" : "string" + }, + "fingerprint" : { + "description" : "Certificate SHA 256 fingerprint.", + "optional" : 1, + "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}", + "type" : "string" + }, + "issuer" : { + "description" : "Certificate issuer name.", + "optional" : 1, + "type" : "string" + }, + "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" : { + "description" : "Certificate in PEM format", + "format" : "pem-certificate", + "optional" : 1, + "type" : "string" + }, + "san" : { + "description" : "List of Certificate's SubjectAlternativeName entries.", + "items" : { + "type" : "string" + }, + "optional" : 1, + "renderer" : "yaml", + "type" : "array" + }, + "subject" : { + "description" : "Certificate subject name.", + "optional" : 1, + "type" : "string" + } + }, + "type" : "object" + }, + "type" : "array" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/certificates/info", + "text" : "info" + }, + { + "info" : { + "DELETE" : { + "description" : "DELETE custom certificate chain and key.", + "method" : "DELETE", + "name" : "remove_custom_cert", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "restart" : { + "default" : 0, + "description" : "Restart pveproxy.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + } + } + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "type" : "null" + } + }, + "POST" : { + "description" : "Upload or update custom certificate chain and key.", + "method" : "POST", + "name" : "upload_custom_cert", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "certificates" : { + "description" : "PEM encoded certificate (chain).", + "format" : "pem-certificate-chain", + "type" : "string", + "typetext" : "" + }, + "force" : { + "default" : 0, + "description" : "Overwrite existing custom or ACME certificate files.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "key" : { + "description" : "PEM encoded private key.", + "format" : "pem-string", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "restart" : { + "default" : 0, + "description" : "Restart pveproxy.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + } + } + }, + "protected" : 1, + "proxyto" : "node", + "returns" : { + "properties" : { + "filename" : { + "optional" : 1, + "type" : "string" + }, + "fingerprint" : { + "description" : "Certificate SHA 256 fingerprint.", + "optional" : 1, + "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}", + "type" : "string" + }, + "issuer" : { + "description" : "Certificate issuer name.", + "optional" : 1, + "type" : "string" + }, + "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" : { + "description" : "Certificate in PEM format", + "format" : "pem-certificate", + "optional" : 1, + "type" : "string" + }, + "san" : { + "description" : "List of Certificate's SubjectAlternativeName entries.", + "items" : { + "type" : "string" + }, + "optional" : 1, + "renderer" : "yaml", + "type" : "array" + }, + "subject" : { + "description" : "Certificate subject name.", + "optional" : 1, + "type" : "string" + } + }, + "type" : "object" + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/certificates/custom", + "text" : "custom" } ], "info" : { "GET" : { - "description" : "List status of all replication jobs on this node.", + "description" : "Node index.", "method" : "GET", - "name" : "status", + "name" : "index", "parameters" : { "additionalProperties" : 0, "properties" : { - "guest" : { - "description" : "Only list replication jobs for this guest.", - "format" : "pve-vmid", - "minimum" : 1, + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "user" : "all" + }, + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/nodes/{node}/certificates", + "text" : "certificates" + }, + { + "info" : { + "GET" : { + "description" : "Get node configuration options.", + "method" : "GET", + "name" : "get_config", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit" + ] + ] + }, + "proxyto" : "node", + "returns" : { + "type" : "object" + } + }, + "PUT" : { + "description" : "Set node configuration options.", + "method" : "PUT", + "name" : "set_options", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "acme" : { + "description" : "Node specific ACME settings.", + "format" : { + "account" : { + "default" : "default", + "description" : "ACME account config file name.", + "format" : "pve-configid", + "format_description" : "name", + "optional" : 1, + "type" : "string" + }, + "domains" : { + "description" : "List of domains for this node's ACME certificate", + "format" : "pve-acme-domain-list", + "format_description" : "domain[;domain;...]", + "type" : "string" + } + }, "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" + "type" : "string", + "typetext" : "domains= [,account=]" + }, + "delete" : { + "description" : "A list of settings you want to delete.", + "format" : "pve-configid-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "description" : { + "description" : "Node description/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" : "" }, "node" : { "description" : "The cluster node name.", @@ -23279,33 +31933,24 @@ var pveapi = [ } }, "permissions" : { - "description" : "Requires the VM.Audit permission on /vms/.", - "user" : "all" + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] }, "protected" : 1, "proxyto" : "node", "returns" : { - "items" : { - "properties" : { - "id" : { - "type" : "string" - } - }, - "type" : "object" - }, - "links" : [ - { - "href" : "{id}", - "rel" : "child" - } - ], - "type" : "array" + "type" : "null" } } }, - "leaf" : 0, - "path" : "/nodes/{node}/replication", - "text" : "replication" + "leaf" : 1, + "path" : "/nodes/{node}/config", + "text" : "config" }, { "info" : { @@ -23376,7 +32021,6 @@ var pveapi = [ }, "proxyto" : "node", "returns" : { - "properties" : {}, "type" : "object" } }, @@ -23497,7 +32141,6 @@ var pveapi = [ "protected" : 1, "proxyto" : "node", "returns" : { - "properties" : {}, "type" : "array" } } @@ -23654,6 +32297,13 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "service" : { + "description" : "Service ID", + "maxLength" : 128, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "since" : { "description" : "Display all log since this date-time string.", "optional" : 1, @@ -23790,6 +32440,64 @@ var pveapi = [ "path" : "/nodes/{node}/vncshell", "text" : "vncshell" }, + { + "info" : { + "POST" : { + "description" : "Creates a VNC Shell proxy.", + "method" : "POST", + "name" : "termproxy", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "node" : { + "description" : "The cluster node name.", + "format" : "pve-node", + "type" : "string", + "typetext" : "" + }, + "upgrade" : { + "default" : 0, + "description" : "Run 'apt-get dist-upgrade' instead of normal shell.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/nodes/{node}", + [ + "Sys.Console" + ] + ], + "description" : "Restricted to users on realm 'pam'" + }, + "protected" : 1, + "returns" : { + "additionalProperties" : 0, + "properties" : { + "port" : { + "type" : "integer" + }, + "ticket" : { + "type" : "string" + }, + "upid" : { + "type" : "string" + }, + "user" : { + "type" : "string" + } + } + } + } + }, + "leaf" : 1, + "path" : "/nodes/{node}/termproxy", + "text" : "termproxy" + }, { "info" : { "GET" : { @@ -23860,7 +32568,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", @@ -24062,11 +32770,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" : { @@ -24380,6 +33090,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" : { @@ -24434,7 +33235,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" : [ @@ -24508,7 +33363,9 @@ var pveapi = [ ] ] }, - "returns" : {} + "returns" : { + "type" : "object" + } }, "PUT" : { "description" : "Update storage configuration.", @@ -24523,6 +33380,49 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "bwlimit" : { + "description" : "Set bandwidth/io limits various operations.", + "format" : { + "clone" : { + "description" : "bandwidth limit in MiB/s for cloning disks", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "default" : { + "description" : "default bandwidth limit in MiB/s", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "migration" : { + "description" : "bandwidth limit in MiB/s for migrating guests", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "move" : { + "description" : "bandwidth limit in MiB/s for moving disks", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "restore" : { + "description" : "bandwidth limit in MiB/s for restoring guests from backups", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[clone=] [,default=] [,migration=] [,move=] [,restore=]" + }, "comstar_hg" : { "description" : "host group for comstar views", "optional" : 1, @@ -24563,6 +33463,13 @@ var pveapi = [ "type" : "boolean", "typetext" : "" }, + "domain" : { + "description" : "CIFS domain.", + "maxLength" : 256, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "format" : { "description" : "Default image format.", "format" : "pve-storage-format", @@ -24570,19 +33477,31 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "is_mountpoint" : { - "default" : "no", - "description" : "Assume the directory is an externally managed mountpoint. If nothing is mounted the storage will be considered offline.", + "fuse" : { + "description" : "Mount CephFS through FUSE.", "optional" : 1, "type" : "boolean", "typetext" : "" }, + "is_mountpoint" : { + "default" : "no", + "description" : "Assume the given path is an externally managed mountpoint and consider the storage offline if it is not mounted. Using a boolean (yes/no) value serves as a shortcut to using the target path in this field.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "krbd" : { - "description" : "Access rbd through krbd kernel module.", + "description" : "Always access rbd through krbd kernel module.", "optional" : 1, "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, @@ -24597,6 +33516,13 @@ var pveapi = [ "type" : "boolean", "typetext" : "" }, + "monhost" : { + "description" : "IP addresses of monitors (for external clusters).", + "format" : "pve-storage-portal-dns-list", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "nodes" : { "description" : "List of cluster node names.", "format" : "pve-node-list", @@ -24617,6 +33543,13 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "password" : { + "description" : "Password for CIFS share.", + "maxLength" : 256, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "pool" : { "description" : "Pool.", "optional" : 1, @@ -24665,6 +33598,16 @@ var pveapi = [ "type" : "boolean", "typetext" : "" }, + "smbversion" : { + "description" : "SMB protocol version", + "enum" : [ + "2.0", + "2.1", + "3.0" + ], + "optional" : 1, + "type" : "string" + }, "sparse" : { "description" : "use sparse volumes", "optional" : 1, @@ -24677,6 +33620,13 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "subdir" : { + "description" : "Subdir to mount.", + "format" : "pve-storage-path", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "tagged_only" : { "description" : "Only use logical volumes tagged with 'pve-vm-ID'.", "optional" : 1, @@ -24733,8 +33683,11 @@ var pveapi = [ "type" : { "description" : "Only list storage of specific type", "enum" : [ + "cephfs", + "cifs", "dir", "drbd", + "fake", "glusterfs", "iscsi", "iscsidirect", @@ -24799,6 +33752,49 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "bwlimit" : { + "description" : "Set bandwidth/io limits various operations.", + "format" : { + "clone" : { + "description" : "bandwidth limit in MiB/s for cloning disks", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "default" : { + "description" : "default bandwidth limit in MiB/s", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "migration" : { + "description" : "bandwidth limit in MiB/s for migrating guests", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "move" : { + "description" : "bandwidth limit in MiB/s for moving disks", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + }, + "restore" : { + "description" : "bandwidth limit in MiB/s for restoring guests from backups", + "format_description" : "LIMIT", + "minimum" : "0", + "optional" : 1, + "type" : "number" + } + }, + "optional" : 1, + "type" : "string", + "typetext" : "[clone=] [,default=] [,migration=] [,move=] [,restore=]" + }, "comstar_hg" : { "description" : "host group for comstar views", "optional" : 1, @@ -24824,6 +33820,13 @@ var pveapi = [ "type" : "boolean", "typetext" : "" }, + "domain" : { + "description" : "CIFS domain.", + "maxLength" : 256, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "export" : { "description" : "NFS export path.", "format" : "pve-storage-path", @@ -24838,13 +33841,19 @@ var pveapi = [ "type" : "string", "typetext" : "" }, - "is_mountpoint" : { - "default" : "no", - "description" : "Assume the directory is an externally managed mountpoint. If nothing is mounted the storage will be considered offline.", + "fuse" : { + "description" : "Mount CephFS through FUSE.", "optional" : 1, "type" : "boolean", "typetext" : "" }, + "is_mountpoint" : { + "default" : "no", + "description" : "Assume the given path is an externally managed mountpoint and consider the storage offline if it is not mounted. Using a boolean (yes/no) value serves as a shortcut to using the target path in this field.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "iscsiprovider" : { "description" : "iscsi provider", "optional" : 1, @@ -24852,11 +33861,17 @@ var pveapi = [ "typetext" : "" }, "krbd" : { - "description" : "Access rbd through krbd kernel module.", + "description" : "Always access rbd through krbd kernel module.", "optional" : 1, "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, @@ -24872,7 +33887,7 @@ var pveapi = [ "typetext" : "" }, "monhost" : { - "description" : "Monitors daemon ips.", + "description" : "IP addresses of monitors (for external clusters).", "format" : "pve-storage-portal-dns-list", "optional" : 1, "type" : "string", @@ -24898,6 +33913,13 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "password" : { + "description" : "Password for CIFS share.", + "maxLength" : 256, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "path" : { "description" : "File system path.", "format" : "pve-storage-path", @@ -24954,12 +33976,28 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "share" : { + "description" : "CIFS share.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "shared" : { "description" : "Mark storage as shared.", "optional" : 1, "type" : "boolean", "typetext" : "" }, + "smbversion" : { + "description" : "SMB protocol version", + "enum" : [ + "2.0", + "2.1", + "3.0" + ], + "optional" : 1, + "type" : "string" + }, "sparse" : { "description" : "use sparse volumes", "optional" : 1, @@ -24972,6 +34010,13 @@ var pveapi = [ "type" : "string", "typetext" : "" }, + "subdir" : { + "description" : "Subdir to mount.", + "format" : "pve-storage-path", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "tagged_only" : { "description" : "Only use logical volumes tagged with 'pve-vm-ID'.", "optional" : 1, @@ -25004,8 +34049,11 @@ var pveapi = [ "type" : { "description" : "Storage type.", "enum" : [ + "cephfs", + "cifs", "dir", "drbd", + "fake", "glusterfs", "iscsi", "iscsidirect", @@ -25135,13 +34183,19 @@ var pveapi = [ "type" : "string" }, "email" : { + "format" : "email-opt", "optional" : 1, "type" : "string" }, "enable" : { + "default" : 1, + "description" : "Enable the account (default). You can set this to '0' to disable the account", + "optional" : 1, "type" : "boolean" }, "expire" : { + "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.", + "minimum" : 0, "optional" : 1, "type" : "integer" }, @@ -25153,6 +34207,7 @@ var pveapi = [ "type" : "array" }, "keys" : { + "description" : "Keys for two factor auth (yubico).", "optional" : 1, "type" : "string" }, @@ -25160,7 +34215,8 @@ var pveapi = [ "optional" : 1, "type" : "string" } - } + }, + "type" : "object" } }, "PUT" : { @@ -25188,7 +34244,8 @@ var pveapi = [ "typetext" : "" }, "enable" : { - "description" : "Enable/disable the account.", + "default" : 1, + "description" : "Enable the account (default). You can set this to '0' to disable the account", "optional" : 1, "type" : "boolean", "typetext" : "" @@ -25275,7 +34332,44 @@ var pveapi = [ "returns" : { "items" : { "properties" : { + "comment" : { + "optional" : 1, + "type" : "string" + }, + "email" : { + "format" : "email-opt", + "optional" : 1, + "type" : "string" + }, + "enable" : { + "default" : 1, + "description" : "Enable the account (default). You can set this to '0' to disable the account", + "optional" : 1, + "type" : "boolean" + }, + "expire" : { + "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.", + "minimum" : 0, + "optional" : 1, + "type" : "integer" + }, + "firstname" : { + "optional" : 1, + "type" : "string" + }, + "keys" : { + "description" : "Keys for two factor auth (yubico).", + "optional" : 1, + "type" : "string" + }, + "lastname" : { + "optional" : 1, + "type" : "string" + }, "userid" : { + "description" : "User ID", + "format" : "pve-userid", + "maxLength" : 64, "type" : "string" } }, @@ -25310,7 +34404,7 @@ var pveapi = [ }, "enable" : { "default" : 1, - "description" : "Enable the account (default). You can set this to '0' to disable the accout", + "description" : "Enable the account (default). You can set this to '0' to disable the account", "optional" : 1, "type" : "boolean", "typetext" : "" @@ -25456,6 +34550,9 @@ var pveapi = [ }, "members" : { "items" : { + "description" : "User ID", + "format" : "pve-userid", + "maxLength" : 64, "type" : "string" }, "type" : "array" @@ -25518,7 +34615,12 @@ var pveapi = [ "returns" : { "items" : { "properties" : { + "comment" : { + "optional" : 1, + "type" : "string" + }, "groupid" : { + "format" : "pve-groupid", "type" : "string" } }, @@ -25620,10 +34722,143 @@ var pveapi = [ "permissions" : { "user" : "all" }, - "returns" : {} + "returns" : { + "additionalProperties" : 0, + "properties" : { + "Datastore.Allocate" : { + "optional" : 1, + "type" : "boolean" + }, + "Datastore.AllocateSpace" : { + "optional" : 1, + "type" : "boolean" + }, + "Datastore.AllocateTemplate" : { + "optional" : 1, + "type" : "boolean" + }, + "Datastore.Audit" : { + "optional" : 1, + "type" : "boolean" + }, + "Group.Allocate" : { + "optional" : 1, + "type" : "boolean" + }, + "Permissions.Modify" : { + "optional" : 1, + "type" : "boolean" + }, + "Pool.Allocate" : { + "optional" : 1, + "type" : "boolean" + }, + "Realm.Allocate" : { + "optional" : 1, + "type" : "boolean" + }, + "Realm.AllocateUser" : { + "optional" : 1, + "type" : "boolean" + }, + "Sys.Audit" : { + "optional" : 1, + "type" : "boolean" + }, + "Sys.Console" : { + "optional" : 1, + "type" : "boolean" + }, + "Sys.Modify" : { + "optional" : 1, + "type" : "boolean" + }, + "Sys.PowerMgmt" : { + "optional" : 1, + "type" : "boolean" + }, + "Sys.Syslog" : { + "optional" : 1, + "type" : "boolean" + }, + "User.Modify" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Allocate" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Audit" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Backup" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Clone" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Config.CDROM" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Config.CPU" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Config.Disk" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Config.HWType" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Config.Memory" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Config.Network" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Config.Options" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Console" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Migrate" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Monitor" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.PowerMgmt" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Snapshot" : { + "optional" : 1, + "type" : "boolean" + }, + "VM.Snapshot.Rollback" : { + "optional" : 1, + "type" : "boolean" + } + }, + "type" : "object" + } }, "PUT" : { - "description" : "Create new role.", + "description" : "Update an existing role.", "method" : "PUT", "name" : "update_role", "parameters" : { @@ -25637,6 +34872,7 @@ var pveapi = [ }, "privs" : { "format" : "pve-priv-list", + "optional" : 1, "type" : "string", "typetext" : "" }, @@ -25681,8 +34917,19 @@ var pveapi = [ "returns" : { "items" : { "properties" : { + "privs" : { + "format" : "pve-priv-list", + "optional" : 1, + "type" : "string" + }, "roleid" : { + "format" : "pve-roleid", "type" : "string" + }, + "special" : { + "default" : 0, + "optional" : 1, + "type" : "boolean" } }, "type" : "object" @@ -25753,9 +35000,13 @@ var pveapi = [ "additionalProperties" : 0, "properties" : { "path" : { + "description" : "Access control path", "type" : "string" }, "propagate" : { + "default" : 1, + "description" : "Allow to propagate (inherit) permissions.", + "optional" : 1, "type" : "boolean" }, "roleid" : { @@ -25925,6 +35176,25 @@ var pveapi = [ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*", "type" : "string" }, + "capath" : { + "default" : "/etc/ssl/certs", + "description" : "Path to the CA certificate store", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "cert" : { + "description" : "Path to the client certificate", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "certkey" : { + "description" : "Path to the client certificate key", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "comment" : { "description" : "Description.", "maxLength" : 4096, @@ -26011,6 +35281,13 @@ var pveapi = [ "optional" : 1, "pattern" : "\\S{2,}", "type" : "string" + }, + "verify" : { + "default" : 0, + "description" : "Verify the server's SSL certificate", + "optional" : 1, + "type" : "boolean", + "typetext" : "" } }, "type" : "object" @@ -26100,6 +35377,25 @@ var pveapi = [ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*", "type" : "string" }, + "capath" : { + "default" : "/etc/ssl/certs", + "description" : "Path to the CA certificate store", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "cert" : { + "description" : "Path to the client certificate", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "certkey" : { + "description" : "Path to the client certificate key", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "comment" : { "description" : "Description.", "maxLength" : 4096, @@ -26181,6 +35477,13 @@ var pveapi = [ "optional" : 1, "pattern" : "\\S{2,}", "type" : "string" + }, + "verify" : { + "default" : 0, + "description" : "Verify the server's SSL certificate", + "optional" : 1, + "type" : "boolean", + "typetext" : "" } }, "type" : "object" @@ -26207,7 +35510,7 @@ var pveapi = [ { "info" : { "GET" : { - "description" : "Dummy. Useful for formaters which want to priovde a login page.", + "description" : "Dummy. Useful for formatters which want to provide a login page.", "method" : "GET", "name" : "get_ticket", "parameters" : { @@ -26282,6 +35585,10 @@ var pveapi = [ "optional" : 1, "type" : "string" }, + "clustername" : { + "optional" : 1, + "type" : "string" + }, "ticket" : { "optional" : 1, "type" : "string" @@ -26303,7 +35610,7 @@ var pveapi = [ "PUT" : { "description" : "Change user password.", "method" : "PUT", - "name" : "change_passsword", + "name" : "change_password", "parameters" : { "additionalProperties" : 0, "properties" : {