var pveapi = [
{
- "leaf" : 0,
- "text" : "cluster",
"children" : [
{
- "leaf" : 0,
- "text" : "firewall",
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Mark replication job for removal.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "default" : 0,
+ "description" : "Will remove the jobconfig entry, but will not cleanup.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
+ },
+ "keep" : {
+ "default" : 0,
+ "description" : "Keep replicated data at target (do not remove).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read replication job configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "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. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+ "user" : "all"
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update replication job configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable/deactivate the entry.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
+ },
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (1 - N)"
+ },
+ "remove_job" : {
+ "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
+ "enum" : [
+ "local",
+ "full"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "schedule" : {
+ "default" : "*/15",
+ "description" : "Storage replication schedule. The format is a subset of `systemd` calender events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Source of the replication.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/replication/{id}",
+ "text" : "{id}"
+ }
+ ],
"info" : {
"GET" : {
- "name" : "index",
+ "description" : "List replication jobs.",
"method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+ "user" : "all"
+ },
"returns" : {
"items" : {
- "type" : "object",
- "properties" : {}
+ "properties" : {},
+ "type" : "object"
},
- "type" : "array",
"links" : [
{
- "href" : "{name}",
+ "href" : "{id}",
"rel" : "child"
}
- ]
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create a new replication job",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable/deactivate the entry.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
+ },
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (1 - N)"
+ },
+ "remove_job" : {
+ "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
+ "enum" : [
+ "local",
+ "full"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "schedule" : {
+ "default" : "*/15",
+ "description" : "Storage replication schedule. The format is a subset of `systemd` calender events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Source of the replication.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Section type.",
+ "enum" : [
+ "local"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
},
- "description" : "Directory index.",
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
+ "leaf" : 0,
+ "path" : "/cluster/replication",
+ "text" : "replication"
+ },
+ {
"children" : [
{
- "leaf" : 0,
- "text" : "groups",
- "path" : "/cluster/firewall/groups",
"children" : [
{
- "children" : [
- {
- "leaf" : 1,
- "text" : "{pos}",
- "info" : {
- "PUT" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "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" : "<string>"
+ }
+ }
+ },
+ "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" : "<boolean>"
},
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "iface" : {
- "maxLength" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "optional" : 1,
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
- },
- "source" : {
- "optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "format" : "pve-fw-addr-spec",
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "action" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "optional" : 1
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "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.",
- "optional" : 1
- },
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "proto" : {
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "optional" : 1,
- "format" : "pve-fw-protocol-spec",
- "type" : "string"
- },
- "enable" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- },
- "moveto" : {
- "optional" : 1,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
- "minimum" : 0,
- "type" : "integer"
- },
- "dport" : {
- "format" : "pve-fw-dport-spec",
- "type" : "string",
- "optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges."
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "format" : "pve-configid-list",
- "type" : "string"
- },
- "sport" : {
- "format" : "pve-fw-sport-spec",
- "type" : "string",
- "optional" : 1,
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges."
- },
- "group" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 20,
- "description" : "Security Group name.",
- "type" : "string"
- },
- "macro" : {
- "optional" : 1,
- "maxLength" : 128,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : null,
- "description" : "Modify rule data.",
- "returns" : {
- "type" : "null"
- },
- "name" : "update_rule",
- "method" : "PUT"
- },
- "DELETE" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "group" : {
- "maxLength" : 20,
- "description" : "Security Group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1
- }
- },
- "additionalProperties" : 0
+ "nodeid" : {
+ "description" : "Node id for this node.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "description" : "Delete rule.",
- "method" : "DELETE",
- "name" : "delete_rule",
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "method" : "GET",
- "name" : "get_rule",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "pos" : {
- "minimum" : 0,
- "type" : "integer",
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "group" : {
- "maxLength" : 20,
- "description" : "Security Group name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- }
+ "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" : "<string>"
},
- "proxyto" : null,
- "returns" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
+ "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" : "<string>"
},
- "description" : "Get single rule data.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "votes" : {
+ "description" : "Number of votes for this node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
}
},
- "path" : "/cluster/firewall/groups/{group}/{pos}"
- }
- ],
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "List rules.",
- "method" : "GET",
- "name" : "get_rules",
+ "protected" : 1,
"returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- },
- "links" : [
- {
- "href" : "{pos}",
- "rel" : "child"
- }
- ]
- },
- "proxyto" : null,
- "parameters" : {
"properties" : {
- "group" : {
- "maxLength" : 20,
- "description" : "Security Group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
+ "corosync_authkey" : {
+ "type" : "string"
+ },
+ "corosync_conf" : {
"type" : "string"
}
},
- "additionalProperties" : 0
+ "type" : "object"
}
- },
- "DELETE" : {
- "method" : "DELETE",
- "name" : "delete_security_group",
- "returns" : {
- "type" : "null"
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/nodes/{node}",
+ "text" : "{node}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Corosync node list.",
+ "method" : "GET",
+ "name" : "nodes",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "node" : {
+ "type" : "string"
+ }
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "group" : {
- "description" : "Security Group name.",
- "maxLength" : 20,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- }
- }
- },
- "protected" : 1,
- "description" : "Delete security group.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- }
+ "type" : "object"
},
- "POST" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "group" : {
- "type" : "string",
- "maxLength" : 20,
- "description" : "Security Group name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "action" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "optional" : 0,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "optional" : 1,
- "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."
- },
- "macro" : {
- "type" : "string",
- "optional" : 1,
- "maxLength" : 128
- },
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 0,
- "type" : "string"
- },
- "proto" : {
- "type" : "string",
- "format" : "pve-fw-protocol-spec",
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
- },
- "iface" : {
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-iface"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "maxLength" : 40,
- "type" : "string"
- },
- "enable" : {
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "dport" : {
- "format" : "pve-fw-dport-spec",
- "type" : "string",
- "optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges."
- },
- "source" : {
- "type" : "string",
- "format" : "pve-fw-addr-spec",
- "optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists."
- },
- "sport" : {
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-sport-spec"
- }
- }
- },
- "proxyto" : null,
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "returns" : {
- "type" : "null"
- },
- "method" : "POST",
- "name" : "create_rule",
- "description" : "Create new rule."
- }
- },
- "path" : "/cluster/firewall/groups/{group}",
- "leaf" : 0,
- "text" : "{group}"
+ "links" : [
+ {
+ "href" : "{node}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
- ],
+ },
+ "leaf" : 0,
+ "path" : "/cluster/config/nodes",
+ "text" : "nodes"
+ },
+ {
"info" : {
- "POST" : {
- "protected" : 1,
- "description" : "Create new security group.",
+ "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" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
"returns" : {
- "type" : "null"
- },
+ "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" : {
- "rename" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 20,
- "optional" : 1,
- "description" : "Rename/update an existing security group. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing group.",
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
"type" : "string"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "force" : {
+ "description" : "Do not throw error if node already exists.",
"optional" : 1,
- "maxLength" : 40,
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "group" : {
+ "hostname" : {
+ "description" : "Hostname (or IP) of an existing cluster member.",
"type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 20,
- "description" : "Security Group name."
+ "typetext" : "<string>"
},
- "comment" : {
+ "nodeid" : {
+ "description" : "Node id for this node.",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "password" : {
+ "description" : "Superuser (root) password of peer node.",
+ "maxLength" : 128,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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" : "<string>"
+ },
+ "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" : "<string>"
+ },
+ "votes" : {
+ "description" : "Number of votes for this node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
}
},
- "name" : "create_security_group",
- "method" : "POST"
- },
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/join",
+ "text" : "join"
+ },
+ {
+ "info" : {
"GET" : {
+ "description" : "Get corosync totem protocol settings.",
+ "method" : "GET",
+ "name" : "totem",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
"returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "group" : {
- "type" : "string",
- "maxLength" : 20,
- "description" : "Security Group name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
- }
- }
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{group}"
- }
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "list_security_groups",
- "method" : "GET",
- "description" : "List security groups.",
- "permissions" : {
- "user" : "all"
+ "type" : "object"
}
}
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/totem",
+ "text" : "totem"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
- {
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "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" : "<string>"
},
- "description" : "List rules.",
- "method" : "GET",
- "name" : "get_rules",
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{pos}"
- }
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- }
+ "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" : "<string>"
},
- "proxyto" : null,
- "parameters" : {
- "additionalProperties" : 0
- }
- },
- "POST" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "clustername" : {
+ "description" : "The name of the cluster.",
+ "format" : "pve-node",
+ "maxLength" : 15,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxyto" : null,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "macro" : {
- "optional" : 1,
- "maxLength" : 128,
- "type" : "string"
- },
- "type" : {
- "optional" : 0,
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "type" : "string"
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "action" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "optional" : 0,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20
- },
- "dest" : {
- "optional" : 1,
- "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",
- "type" : "string"
- },
- "source" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
- },
- "sport" : {
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-sport-spec"
- },
- "digest" : {
- "type" : "string",
- "optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "iface" : {
- "type" : "string",
- "format" : "pve-iface",
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "optional" : 1
- },
- "proto" : {
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "type" : "string",
- "format" : "pve-fw-protocol-spec"
- },
- "dport" : {
- "format" : "pve-fw-dport-spec",
- "type" : "string",
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1
- },
- "enable" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- }
- }
+ "nodeid" : {
+ "description" : "Node id for this node.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "description" : "Create new rule.",
- "returns" : {
- "type" : "null"
+ "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" : "<string>"
},
- "name" : "create_rule",
- "method" : "POST"
+ "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" : "<string>"
+ },
+ "votes" : {
+ "description" : "Number of votes for this node.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
}
},
- "path" : "/cluster/firewall/rules",
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/config",
+ "text" : "config"
+ },
+ {
+ "children" : [
+ {
"children" : [
{
- "leaf" : 1,
- "text" : "{pos}",
- "info" : {
- "PUT" : {
- "parameters" : {
- "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"
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Delete rule.",
+ "method" : "DELETE",
+ "name" : "delete_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
},
- "iface" : {
- "optional" : 1,
- "maxLength" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- },
- "proto" : {
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "type" : "string",
- "format" : "pve-fw-protocol-spec"
- },
- "dport" : {
- "optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "format" : "pve-fw-dport-spec",
- "type" : "string"
- },
- "moveto" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
- "optional" : 1
- },
- "enable" : {
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
- },
- "source" : {
- "type" : "string",
- "format" : "pve-fw-addr-spec",
- "optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists."
- },
- "sport" : {
- "format" : "pve-fw-sport-spec",
- "type" : "string",
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "action" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "optional" : 1
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "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.",
- "optional" : 1
- },
- "macro" : {
- "type" : "string",
- "optional" : 1,
- "maxLength" : 128
- },
- "type" : {
- "type" : "string",
- "optional" : 1,
- "enum" : [
- "in",
- "out",
- "group"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
}
},
- "additionalProperties" : 0
- },
- "proxyto" : null,
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT",
- "name" : "update_rule",
- "description" : "Modify rule data."
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Get single rule data.",
- "parameters" : {
- "properties" : {
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : null,
- "returns" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "method" : "GET",
- "name" : "get_rule"
- },
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "GET" : {
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 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"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.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"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pos" : {
+ "type" : "integer"
+ },
+ "proto" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "source" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "sport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
}
- }
- },
- "proxyto" : null,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
- },
- "name" : "delete_rule",
- "method" : "DELETE",
- "description" : "Delete rule."
- }
- },
- "path" : "/cluster/firewall/rules/{pos}"
- }
- ],
- "leaf" : 0,
- "text" : "rules"
- },
- {
- "leaf" : 0,
- "text" : "ipset",
- "info" : {
- "POST" : {
- "parameters" : {
- "properties" : {
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "rename" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "optional" : 1,
- "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
- "maxLength" : 64
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- },
- "name" : "create_ipset",
- "method" : "POST",
- "description" : "Create new IPSet",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1
- },
- "GET" : {
- "description" : "List IPSets",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "items" : {
- "properties" : {
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "optional" : 0,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
},
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "IP set name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
- }
- },
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "ipset_index",
- "method" : "GET"
- }
- },
- "children" : [
- {
- "leaf" : 0,
- "text" : "{name}",
- "children" : [
- {
- "info" : {
- "GET" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Read IP or Network settings from IPSet.",
- "method" : "GET",
- "name" : "read_ip",
- "returns" : {
- "type" : "object"
- },
+ "PUT" : {
+ "description" : "Modify rule data.",
+ "method" : "PUT",
+ "name" : "update_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "cidr" : {
- "format" : "IPorCIDRorAlias",
+ "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",
- "description" : "Network/IP specification in CIDR format."
+ "typetext" : "<string>"
},
- "name" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
"type" : "string",
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- }
- }
- }
- },
- "DELETE" : {
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "cidr" : {
- "format" : "IPorCIDRorAlias",
+ "typetext" : "<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",
+ "optional" : 1,
"type" : "string",
- "description" : "Network/IP specification in CIDR format."
+ "typetext" : "<string>"
},
"digest" : {
- "optional" : 1,
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"maxLength" : 40,
- "type" : "string"
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
"minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "DELETE",
- "name" : "remove_ip",
- "protected" : 1,
- "description" : "Remove IP or Network from IPSet.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- }
- },
- "PUT" : {
- "description" : "Update IP or Network settings",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
- "parameters" : {
- "properties" : {
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- },
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDRorAlias",
- "description" : "Network/IP specification in CIDR format."
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "maxLength" : 40,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
+ "proxyto" : null,
"returns" : {
"type" : "null"
- },
- "method" : "PUT",
- "name" : "update_ip"
+ }
}
},
- "path" : "/cluster/firewall/ipset/{name}/{cidr}",
"leaf" : 1,
- "text" : "{cidr}"
+ "path" : "/cluster/firewall/groups/{group}/{pos}",
+ "text" : "{pos}"
}
],
- "path" : "/cluster/firewall/ipset/{name}",
"info" : {
"DELETE" : {
+ "description" : "Delete security group.",
"method" : "DELETE",
- "name" : "delete_ipset",
+ "name" : "delete_security_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
"minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
}
},
- "returns" : {
- "type" : "null"
- },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Delete IPSet",
- "protected" : 1
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
},
"GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "List IPSet content",
+ "description" : "List rules.",
"method" : "GET",
- "name" : "get_ipset",
+ "name" : "get_rules",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "maxLength" : 64,
- "description" : "IP set name.",
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
"minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{cidr}"
- }
- ],
"items" : {
"properties" : {
- "cidr" : {
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "optional" : 0,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
+ "pos" : {
+ "type" : "integer"
}
},
"type" : "object"
},
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
}
},
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "description" : "Add IP or Network to IPSet.",
- "protected" : 1,
+ "description" : "Create new rule.",
"method" : "POST",
- "name" : "create_ip",
+ "name" : "create_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "type" : "string",
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
"minLength" : 2,
+ "optional" : 0,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "maxLength" : 64
+ "type" : "string"
},
"comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
"optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
- "nomatch" : {
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
"optional" : 1,
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
"type" : "string"
}
}
},
- "returns" : {
- "type" : "null"
- }
- }
- }
- }
- ],
- "path" : "/cluster/firewall/ipset"
- },
- {
- "text" : "aliases",
- "leaf" : 0,
- "children" : [
- {
- "text" : "{name}",
- "leaf" : 1,
- "info" : {
- "DELETE" : {
- "protected" : 1,
- "description" : "Remove IP or Network alias.",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : null,
"returns" : {
"type" : "null"
- },
- "parameters" : {
- "properties" : {
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Alias name.",
- "maxLength" : 64
- },
- "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"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "DELETE",
- "name" : "remove_alias"
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Read alias.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Alias name.",
- "type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "object"
- },
- "name" : "read_alias",
- "method" : "GET"
- },
- "PUT" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "description" : "Update IP or Network alias.",
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "maxLength" : 64,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "cidr" : {
- "format" : "IPorCIDR",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
- },
- "rename" : {
- "type" : "string",
- "optional" : 1,
- "maxLength" : 64,
- "description" : "Rename an existing alias.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "null"
- },
- "name" : "update_alias",
- "method" : "PUT"
+ }
}
},
- "path" : "/cluster/firewall/aliases/{name}"
+ "leaf" : 0,
+ "path" : "/cluster/firewall/groups/{group}",
+ "text" : "{group}"
}
],
- "path" : "/cluster/firewall/aliases",
"info" : {
"GET" : {
+ "description" : "List security groups.",
+ "method" : "GET",
+ "name" : "list_security_groups",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "user" : "all"
},
- "description" : "List aliases",
- "method" : "GET",
- "name" : "get_aliases",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
- "name" : {
- "type" : "string"
- },
- "cidr" : {
+ "comment" : {
+ "optional" : 1,
"type" : "string"
},
"digest" : {
- "optional" : 0,
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"maxLength" : 40,
+ "optional" : 0,
"type" : "string"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
},
"type" : "object"
},
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{group}",
+ "rel" : "child"
}
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
+ ],
+ "type" : "array"
}
},
"POST" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "description" : "Create IP or Network Alias.",
- "name" : "create_alias",
+ "description" : "Create new security group.",
"method" : "POST",
- "returns" : {
- "type" : "null"
- },
+ "name" : "create_security_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"comment" : {
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "cidr" : {
- "format" : "IPorCIDR",
+ "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",
- "description" : "Network/IP specification in CIDR format."
+ "typetext" : "<string>"
},
- "name" : {
- "description" : "Alias name.",
- "maxLength" : 64,
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
"minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
- }
- }
- }
- }
- }
- },
- {
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "get_options",
- "parameters" : {
- "additionalProperties" : 0
- },
- "returns" : {
- "properties" : {
- "policy_in" : {
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "optional" : 1,
- "description" : "Input policy.",
- "type" : "string"
- },
- "enable" : {
- "description" : "Enable or disable the firewall cluster wide.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
},
- "policy_out" : {
- "type" : "string",
+ "rename" : {
+ "description" : "Rename/update an existing security group. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing group.",
+ "maxLength" : 18,
+ "minLength" : 2,
"optional" : 1,
- "description" : "Output policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
- },
- "type" : "object"
+ }
},
- "description" : "Get Firewall options.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- }
- },
- "PUT" : {
- "description" : "Set Firewall options.",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
- "name" : "set_options",
- "method" : "PUT",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "format" : "pve-configid-list",
- "type" : "string"
- },
- "policy_in" : {
- "description" : "Input policy.",
- "optional" : 1,
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1
- },
- "policy_out" : {
- "type" : "string",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "description" : "Output policy.",
- "optional" : 1
- },
- "enable" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Enable or disable the firewall cluster wide."
- }
- }
- },
"returns" : {
"type" : "null"
}
}
},
- "path" : "/cluster/firewall/options",
- "leaf" : 1,
- "text" : "options"
+ "leaf" : 0,
+ "path" : "/cluster/firewall/groups",
+ "text" : "groups"
},
{
- "leaf" : 1,
- "text" : "macros",
- "path" : "/cluster/firewall/macros",
- "info" : {
- "GET" : {
- "permissions" : {
- "user" : "all"
- },
- "description" : "List available macros",
- "method" : "GET",
- "name" : "get_macros",
- "returns" : {
- "items" : {
- "properties" : {
- "descr" : {
- "description" : "More verbose description (if available).",
- "type" : "string"
- },
- "macro" : {
- "type" : "string",
- "description" : "Macro name."
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Delete rule.",
+ "method" : "DELETE",
+ "name" : "delete_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
}
},
- "type" : "object"
- },
- "type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0
- }
- }
- }
- },
- {
- "leaf" : 1,
- "text" : "refs",
- "path" : "/cluster/firewall/refs",
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
- "method" : "GET",
- "name" : "refs",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "name" : {
- "type" : "string"
- },
- "ref" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "alias",
- "ipset"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
]
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- }
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
}
},
- "type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "type" : {
- "type" : "string",
- "enum" : [
- "alias",
- "ipset"
- ],
- "optional" : 1,
- "description" : "Only list references of specified type."
- }
- }
- }
- }
- }
- }
- ],
- "path" : "/cluster/firewall"
- },
- {
- "leaf" : 0,
- "text" : "backup",
- "children" : [
- {
- "text" : "{id}",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "id" : {
- "description" : "The job ID.",
- "maxLength" : 50,
- "type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "object"
- },
- "name" : "read_job",
- "method" : "GET",
- "description" : "Read vzdump backup job definition.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- }
- },
- "DELETE" : {
- "description" : "Delete vzdump backup job definition.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "method" : "DELETE",
- "name" : "delete_job",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "id" : {
- "type" : "string",
- "maxLength" : 50,
- "description" : "The job ID."
- }
- }
- },
- "returns" : {
- "type" : "null"
- }
- },
- "PUT" : {
- "protected" : 1,
- "description" : "Update vzdump backup job definition.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "name" : "update_job",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "stopwait" : {
- "type" : "integer",
- "default" : 10,
- "minimum" : 0,
- "description" : "Maximal time to wait until a guest system is stopped (minutes).",
- "optional" : 1
- },
- "exclude-path" : {
- "optional" : 1,
- "description" : "Exclude certain files/directories (shell globs).",
- "format" : "string-alist",
- "type" : "string"
- },
- "starttime" : {
- "type" : "string",
- "pattern" : "\\d{1,2}:\\d{1,2}",
- "description" : "Job Start time.",
- "typetext" : "HH:MM"
- },
- "all" : {
- "optional" : 1,
- "description" : "Backup all known guest systems on this host.",
- "type" : "boolean",
- "default" : 0
- },
- "remove" : {
- "optional" : 1,
- "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
- "default" : 1,
- "type" : "boolean"
- },
- "storage" : {
- "type" : "string",
- "format" : "pve-storage-id",
- "description" : "Store resulting file to this storage.",
- "optional" : 1
+ "GET" : {
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
},
- "enabled" : {
- "optional" : 1,
- "description" : "Enable or disable the job.",
- "type" : "boolean",
- "default" : "1"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
- "compress" : {
- "description" : "Compress dump file.",
- "optional" : 1,
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo"
- ],
- "default" : "0",
- "type" : "string"
- },
- "size" : {
- "optional" : 1,
- "description" : "Unused, will be removed in a future release.",
- "minimum" : 500,
- "type" : "integer",
- "default" : 1024
- },
- "bwlimit" : {
- "optional" : 1,
- "description" : "Limit I/O bandwidth (KBytes per second).",
- "type" : "integer",
- "default" : 0,
- "minimum" : 0
- },
- "tmpdir" : {
- "type" : "string",
- "description" : "Store temporary files to specified directory.",
- "optional" : 1
+ "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"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
},
- "stop" : {
- "optional" : 1,
- "description" : "Stop runnig backup jobs on this host.",
- "type" : "boolean",
- "default" : 0
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "script" : {
- "type" : "string",
- "description" : "Use specified hook script.",
- "optional" : 1
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/rules/{pos}",
+ "text" : "{pos}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
},
- "mailnotification" : {
- "type" : "string",
- "default" : "always",
- "enum" : [
- "always",
- "failure"
- ],
- "description" : "Specify when to send an email",
- "optional" : 1
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new rule.",
+ "method" : "POST",
+ "name" : "create_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 0,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
- "stdexcludes" : {
+ "comment" : {
+ "description" : "Descriptive comment.",
"optional" : 1,
- "description" : "Exclude temporary files and logs.",
- "type" : "boolean",
- "default" : 1
+ "type" : "string",
+ "typetext" : "<string>"
},
- "delete" : {
- "description" : "A list of settings you want to delete.",
+ "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,
- "format" : "pve-configid-list",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "pigz" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
- "type" : "integer",
- "default" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
- "maxfiles" : {
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
"optional" : 1,
- "description" : "Maximal number of backup files per guest system.",
- "minimum" : 1,
- "default" : 1,
- "type" : "integer"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "lockwait" : {
- "description" : "Maximal time to wait for the global lock (minutes).",
- "optional" : 1,
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
"minimum" : 0,
- "default" : 180,
- "type" : "integer"
- },
- "vmid" : {
- "description" : "The ID of the guest system you want to backup.",
"optional" : 1,
- "type" : "string",
- "format" : "pve-vmid-list"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "dumpdir" : {
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
"type" : "string",
- "description" : "Store resulting files to specified directory.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
"optional" : 1,
- "description" : "Only run if executed on this node."
+ "type" : "string"
},
- "dow" : {
- "format" : "pve-day-of-week-list",
- "type" : "string",
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
"optional" : 1,
- "description" : "Day of week selection."
- },
- "id" : {
"type" : "string",
- "maxLength" : 50,
- "description" : "The job ID."
+ "typetext" : "<string>"
},
- "ionice" : {
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
"minimum" : 0,
- "maximum" : 8,
- "default" : 7,
- "type" : "integer",
"optional" : 1,
- "description" : "Set CFQ ionice priority."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "quiet" : {
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
"optional" : 1,
- "description" : "Be quiet.",
- "type" : "boolean",
- "default" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
- "mailto" : {
- "description" : "Comma-separated list of email addresses that should receive email notifications.",
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
"optional" : 1,
- "format" : "string-list",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "mode" : {
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
"optional" : 1,
- "description" : "Backup mode.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
"enum" : [
- "snapshot",
- "suspend",
- "stop"
+ "in",
+ "out",
+ "group"
],
- "default" : "snapshot",
- "type" : "string"
- },
- "exclude" : {
- "description" : "Exclude specified guest systems (assumes --all)",
- "optional" : 1,
- "format" : "pve-vmid-list",
+ "optional" : 0,
"type" : "string"
}
- },
- "additionalProperties" : 0
- }
- }
- },
- "path" : "/cluster/backup/{id}"
- }
- ],
- "path" : "/cluster/backup",
- "info" : {
- "POST" : {
- "parameters" : {
- "properties" : {
- "starttime" : {
- "type" : "string",
- "pattern" : "\\d{1,2}:\\d{1,2}",
- "typetext" : "HH:MM",
- "description" : "Job Start time."
- },
- "exclude-path" : {
- "type" : "string",
- "format" : "string-alist",
- "description" : "Exclude certain files/directories (shell globs).",
- "optional" : 1
- },
- "remove" : {
- "type" : "boolean",
- "default" : 1,
- "optional" : 1,
- "description" : "Remove old backup files if there are more than 'maxfiles' backup files."
- },
- "all" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Backup all known guest systems on this host."
- },
- "stopwait" : {
- "minimum" : 0,
- "type" : "integer",
- "default" : 10,
- "description" : "Maximal time to wait until a guest system is stopped (minutes).",
- "optional" : 1
- },
- "bwlimit" : {
- "default" : 0,
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Limit I/O bandwidth (KBytes per second)."
- },
- "tmpdir" : {
- "type" : "string",
- "description" : "Store temporary files to specified directory.",
- "optional" : 1
- },
- "stop" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Stop runnig backup jobs on this host."
- },
- "script" : {
- "type" : "string",
- "description" : "Use specified hook script.",
- "optional" : 1
- },
- "compress" : {
- "type" : "string",
- "default" : "0",
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo"
- ],
- "description" : "Compress dump file.",
- "optional" : 1
- },
- "storage" : {
- "optional" : 1,
- "description" : "Store resulting file to this storage.",
- "format" : "pve-storage-id",
- "type" : "string"
- },
- "enabled" : {
- "description" : "Enable or disable the job.",
- "optional" : 1,
- "type" : "boolean",
- "default" : "1"
- },
- "size" : {
- "default" : 1024,
- "type" : "integer",
- "minimum" : 500,
- "description" : "Unused, will be removed in a future release.",
- "optional" : 1
- },
- "pigz" : {
- "optional" : 1,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
- "type" : "integer",
- "default" : 0
- },
- "lockwait" : {
- "optional" : 1,
- "description" : "Maximal time to wait for the global lock (minutes).",
- "default" : 180,
- "type" : "integer",
- "minimum" : 0
- },
- "maxfiles" : {
- "optional" : 1,
- "description" : "Maximal number of backup files per guest system.",
- "minimum" : 1,
- "type" : "integer",
- "default" : 1
- },
- "stdexcludes" : {
- "type" : "boolean",
- "default" : 1,
- "description" : "Exclude temporary files and logs.",
- "optional" : 1
+ }
},
- "mailnotification" : {
- "type" : "string",
- "default" : "always",
- "description" : "Specify when to send an email",
- "optional" : 1,
- "enum" : [
- "always",
- "failure"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
]
},
- "node" : {
- "description" : "Only run if executed on this node.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-node"
- },
- "ionice" : {
- "description" : "Set CFQ ionice priority.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer",
- "default" : 7,
- "maximum" : 8
- },
- "quiet" : {
- "description" : "Be quiet.",
- "optional" : 1,
- "type" : "boolean",
- "default" : 0
- },
- "dow" : {
- "description" : "Day of week selection.",
- "optional" : 1,
- "format" : "pve-day-of-week-list",
- "default" : "mon,tue,wed,thu,fri,sat,sun",
- "type" : "string"
- },
- "dumpdir" : {
- "type" : "string",
- "description" : "Store resulting files to specified directory.",
- "optional" : 1
- },
- "exclude" : {
- "optional" : 1,
- "description" : "Exclude specified guest systems (assumes --all)",
- "type" : "string",
- "format" : "pve-vmid-list"
- },
- "mailto" : {
- "type" : "string",
- "format" : "string-list",
- "description" : "Comma-separated list of email addresses that should receive email notifications.",
- "optional" : 1
- },
- "mode" : {
- "optional" : 1,
- "description" : "Backup mode.",
- "enum" : [
- "snapshot",
- "suspend",
- "stop"
- ],
- "default" : "snapshot",
- "type" : "string"
- },
- "vmid" : {
- "optional" : 1,
- "description" : "The ID of the guest system you want to backup.",
- "format" : "pve-vmid-list",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- },
- "name" : "create_job",
- "method" : "POST",
- "description" : "Create new vzdump backup job.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1
- },
- "GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "id" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{id}",
- "rel" : "child"
- }
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "index",
- "method" : "GET",
- "description" : "List vzdump backup schedule.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- }
- }
- }
- },
- {
- "info" : {
- "GET" : {
- "description" : "Directory index.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{id}"
- }
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "id" : {
- "type" : "string"
- }
- }
- }
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "method" : "GET",
- "name" : "index"
- }
- },
- "path" : "/cluster/ha",
- "children" : [
- {
- "path" : "/cluster/ha/resources",
- "info" : {
- "POST" : {
- "name" : "create",
- "method" : "POST",
+ "protected" : 1,
+ "proxyto" : null,
"returns" : {
"type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "sid" : {
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "typetext" : "<type>:<name>",
- "type" : "string",
- "format" : "pve-ha-resource-or-vm-id"
- },
- "group" : {
- "type" : "string",
- "format" : "pve-configid",
- "description" : "The HA group identifier.",
- "optional" : 1
- },
- "comment" : {
- "optional" : 1,
- "maxLength" : 4096,
- "description" : "Description.",
- "type" : "string"
- },
- "max_relocate" : {
- "optional" : 1,
- "description" : "Maximal number of service relocate tries when a service failes to start.",
- "minimum" : 0,
- "type" : "integer",
- "default" : 1
- },
- "type" : {
- "optional" : 1,
- "description" : "Resource type.",
- "enum" : [
- "vm",
- "ct"
- ],
- "type" : "string"
- },
- "state" : {
- "default" : "enabled",
- "type" : "string",
- "optional" : 1,
- "description" : "Resource state.",
- "enum" : [
- "enabled",
- "disabled"
- ]
- },
- "max_restart" : {
- "minimum" : 0,
- "type" : "integer",
- "default" : 1,
- "description" : "Maximal number of tries to restart the service on a node after its start failed.",
- "optional" : 1
- }
- },
- "type" : "object"
- },
- "protected" : 1,
- "description" : "Create a new HA resource.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
}
- },
- "GET" : {
- "name" : "index",
- "method" : "GET",
- "parameters" : {
- "properties" : {
- "type" : {
- "type" : "string",
- "enum" : [
- "vm",
- "ct"
- ],
- "optional" : 1,
- "description" : "Only list resources of specific type"
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "sid" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{sid}"
- }
- ]
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "List HA resources."
}
},
+ "leaf" : 0,
+ "path" : "/cluster/firewall/rules",
+ "text" : "rules"
+ },
+ {
"children" : [
{
- "text" : "{sid}",
- "leaf" : 0,
"children" : [
{
- "path" : "/cluster/ha/resources/{sid}/migrate",
"info" : {
- "POST" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
+ "DELETE" : {
+ "description" : "Remove IP or Network from IPSet.",
+ "method" : "DELETE",
+ "name" : "remove_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
},
- "description" : "Request resource migration (online) to another node.",
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
+ }
+ },
+ "GET" : {
+ "description" : "Read IP or Network settings from IPSet.",
+ "method" : "GET",
+ "name" : "read_ip",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "sid" : {
- "typetext" : "<type>:<name>",
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "POST",
- "name" : "migrate"
- }
- },
- "leaf" : 1,
- "text" : "migrate"
- },
- {
- "leaf" : 1,
- "text" : "relocate",
- "info" : {
- "POST" : {
- "name" : "relocate",
- "method" : "POST",
- "returns" : {
- "type" : "null"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update IP or Network settings",
+ "method" : "PUT",
+ "name" : "update_ip",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
"type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "sid" : {
+ "comment" : {
+ "optional" : 1,
"type" : "string",
- "format" : "pve-ha-resource-or-vm-id",
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "typetext" : "<type>:<name>"
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
},
- "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/cluster/ha/resources/{sid}/relocate"
+ "leaf" : 1,
+ "path" : "/cluster/firewall/ipset/{name}/{cidr}",
+ "text" : "{cidr}"
}
],
"info" : {
- "PUT" : {
- "returns" : {
- "type" : "null"
- },
+ "DELETE" : {
+ "description" : "Delete IPSet",
+ "method" : "DELETE",
+ "name" : "delete_ipset",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "delete" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "maxLength" : 4096
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1
- },
- "state" : {
- "enum" : [
- "enabled",
- "disabled"
- ],
- "description" : "Resource state.",
- "optional" : 1,
- "type" : "string",
- "default" : "enabled"
- },
- "max_restart" : {
- "optional" : 1,
- "description" : "Maximal number of tries to restart the service on a node after its start failed.",
- "type" : "integer",
- "default" : 1,
- "minimum" : 0
- },
- "comment" : {
- "type" : "string",
- "description" : "Description.",
- "maxLength" : 4096,
- "optional" : 1
- },
- "sid" : {
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "typetext" : "<type>:<name>",
- "format" : "pve-ha-resource-or-vm-id",
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
- },
- "group" : {
- "format" : "pve-configid",
- "type" : "string",
- "description" : "The HA group identifier.",
- "optional" : 1
- },
- "max_relocate" : {
- "default" : 1,
- "type" : "integer",
- "minimum" : 0,
- "description" : "Maximal number of service relocate tries when a service failes to start.",
- "optional" : 1
}
- },
- "type" : "object"
+ }
},
- "name" : "update",
- "method" : "PUT",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
},
- "description" : "Update resource configuration."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
},
"GET" : {
- "description" : "Read resource configuration.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
+ "description" : "List IPSet content",
+ "method" : "GET",
+ "name" : "get_ipset",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "sid" : {
- "typetext" : "<type>:<name>",
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
}
},
- "returns" : {},
- "method" : "GET",
- "name" : "read"
- },
- "DELETE" : {
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Audit"
]
]
},
- "description" : "Delete resource configuration.",
- "protected" : 1,
- "method" : "DELETE",
- "name" : "delete",
- "parameters" : {
- "properties" : {
- "sid" : {
- "typetext" : "<type>:<name>",
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
"returns" : {
- "type" : "null"
- }
- }
- },
- "path" : "/cluster/ha/resources/{sid}"
- }
- ],
- "leaf" : 0,
- "text" : "resources"
- },
- {
- "children" : [
- {
- "path" : "/cluster/ha/groups/{group}",
- "info" : {
- "PUT" : {
- "protected" : 1,
- "description" : "Update ha group configuration.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
- },
- "returns" : {
- "type" : "null"
- },
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cidr}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Add IP or Network to IPSet.",
+ "method" : "POST",
+ "name" : "create_ip",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "restricted" : {
- "description" : "Services on unrestricted groups may run on any cluster members if all group members are offline. But they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with one member.",
- "optional" : 1,
- "default" : 0,
- "type" : "boolean"
- },
- "nodes" : {
- "description" : "List of cluster node names with optional priority. We use priority '0' as default. The CRM tries to run services on the node with highest priority (also see option 'nofailback').",
- "optional" : 1,
- "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
- "format" : "pve-ha-group-node-list",
- "type" : "string"
- },
- "nofailback" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
- "optional" : 1
- },
- "delete" : {
- "optional" : 1,
- "description" : "A list of settings you want to delete.",
- "maxLength" : 4096,
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
"type" : "string",
- "format" : "pve-configid-list"
+ "typetext" : "<string>"
},
"comment" : {
- "maxLength" : 4096,
- "description" : "Description.",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "nomatch" : {
"optional" : 1,
- "maxLength" : 40,
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- },
- "additionalProperties" : 0,
- "type" : "object"
+ }
},
- "method" : "PUT",
- "name" : "update"
- },
- "GET" : {
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
- "description" : "Read ha group configuration.",
- "method" : "GET",
- "name" : "read",
- "returns" : {},
- "parameters" : {
- "properties" : {
- "group" : {
- "type" : "string",
- "format" : "pve-configid",
- "description" : "The HA group identifier."
- }
- },
- "additionalProperties" : 0
- }
- },
- "DELETE" : {
- "method" : "DELETE",
- "name" : "delete",
- "parameters" : {
- "properties" : {
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
- },
- "description" : "Delete ha group configuration.",
- "protected" : 1
+ }
}
},
- "leaf" : 1,
- "text" : "{group}"
+ "leaf" : 0,
+ "path" : "/cluster/firewall/ipset/{name}",
+ "text" : "{name}"
}
],
"info" : {
"GET" : {
+ "description" : "List IPSets",
+ "method" : "GET",
+ "name" : "ipset_index",
"parameters" : {
"additionalProperties" : 0
},
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{group}"
- }
- ],
- "type" : "array",
- "items" : {
- "properties" : {
- "group" : {
- "type" : "string"
- }
- },
- "type" : "object"
- }
- },
- "name" : "index",
- "method" : "GET",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get HA groups."
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
},
"POST" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "Create new IPSet",
+ "method" : "POST",
+ "name" : "create_ipset",
"parameters" : {
- "type" : "object",
+ "additionalProperties" : 0,
"properties" : {
- "nofailback" : {
- "type" : "boolean",
- "default" : 0,
+ "comment" : {
"optional" : 1,
- "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "type" : {
- "description" : "Group type.",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
- "enum" : [
- "group"
- ],
- "type" : "string"
- },
- "restricted" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Services on unrestricted groups may run on any cluster members if all group members are offline. But they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with one member.",
- "optional" : 1
- },
- "nodes" : {
- "format" : "pve-ha-group-node-list",
"type" : "string",
- "description" : "List of cluster node names with optional priority. We use priority '0' as default. The CRM tries to run services on the node with highest priority (also see option 'nofailback').",
- "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
- "optional" : 0
+ "typetext" : "<string>"
},
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
- "comment" : {
- "maxLength" : 4096,
- "description" : "Description.",
+ "rename" : {
+ "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
+ "maxLength" : 64,
+ "minLength" : 2,
"optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "POST",
- "name" : "create",
- "protected" : 1,
- "description" : "Create a new HA group.",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/cluster/ha/groups",
- "text" : "groups",
- "leaf" : 0
+ "leaf" : 0,
+ "path" : "/cluster/firewall/ipset",
+ "text" : "ipset"
},
{
- "text" : "status",
- "leaf" : 0,
"children" : [
{
- "text" : "current",
- "leaf" : 1,
- "path" : "/cluster/ha/status/current",
"info" : {
- "GET" : {
- "returns" : {
- "type" : "array"
- },
+ "DELETE" : {
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
"parameters" : {
- "additionalProperties" : 0
+ "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" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
},
- "method" : "GET",
- "name" : "status",
- "description" : "Get HA manger status.",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
- }
- }
- },
- {
- "info" : {
+ },
"GET" : {
+ "description" : "Read alias.",
"method" : "GET",
- "name" : "manager_status",
+ "name" : "read_alias",
"parameters" : {
- "additionalProperties" : 0
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
"returns" : {
"type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "rename" : {
+ "description" : "Rename an existing alias.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
},
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
- "description" : "Get full HA manger status, including LRM status."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/cluster/ha/status/manager_status",
"leaf" : 1,
- "text" : "manager_status"
+ "path" : "/cluster/firewall/aliases/{name}",
+ "text" : "{name}"
}
],
- "path" : "/cluster/ha/status",
"info" : {
"GET" : {
- "description" : "Directory index.",
- "permissions" : {
- "user" : "all"
- },
+ "description" : "List aliases",
+ "method" : "GET",
+ "name" : "get_aliases",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
"returns" : {
- "type" : "array",
"items" : {
- "properties" : {},
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ }
+ },
"type" : "object"
},
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{name}",
+ "rel" : "child"
}
- ]
- },
- "name" : "index",
- "method" : "GET"
- }
- }
- }
- ],
- "leaf" : 0,
- "text" : "ha"
- },
- {
- "text" : "log",
- "leaf" : 1,
- "path" : "/cluster/log",
- "info" : {
- "GET" : {
- "name" : "log",
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
- },
- "parameters" : {
- "properties" : {
- "max" : {
- "description" : "Maximum number of entries.",
- "optional" : 1,
- "minimum" : 1,
- "type" : "integer"
+ ],
+ "type" : "array"
}
},
- "additionalProperties" : 0
- },
- "permissions" : {
- "user" : "all"
- },
- "description" : "Read cluster log"
- }
- }
- },
- {
- "path" : "/cluster/resources",
- "info" : {
- "GET" : {
- "permissions" : {
- "user" : "all"
- },
- "description" : "Resources index (cluster wide).",
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "type" : {
- "enum" : [
- "vm",
- "storage",
- "node"
- ],
- "optional" : 1,
- "type" : "string"
+ "POST" : {
+ "description" : "Create IP or Network Alias.",
+ "method" : "POST",
+ "name" : "create_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "name" : "resources",
- "method" : "GET"
- }
- },
- "text" : "resources",
- "leaf" : 1
- },
- {
- "text" : "tasks",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0
- },
- "returns" : {
- "items" : {
- "properties" : {
- "upid" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- },
- "method" : "GET",
- "name" : "tasks",
- "permissions" : {
- "user" : "all"
- },
- "description" : "List recent tasks (cluster wide)."
- }
- },
- "path" : "/cluster/tasks"
- },
- {
- "leaf" : 1,
- "text" : "options",
- "path" : "/cluster/options",
- "info" : {
- "PUT" : {
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "email_from" : {
- "type" : "string",
- "format" : "email-opt",
- "description" : "Specify email address to send notification from (default is root@$hostname)",
- "optional" : 1
+ "leaf" : 0,
+ "path" : "/cluster/firewall/aliases",
+ "text" : "aliases"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get Firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0
},
- "console" : {
- "type" : "string",
- "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).",
- "optional" : 1,
- "enum" : [
- "applet",
- "vv",
- "html5"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
]
},
- "keyboard" : {
- "enum" : [
- "en-gb",
- "de-ch",
- "en-us",
- "mk",
- "fr-be",
- "de",
- "pt-br",
- "sv",
- "fr-ch",
- "no",
- "pt",
- "hu",
- "sl",
- "lt",
- "fi",
- "it",
- "nl",
- "is",
- "da",
- "fr-ca",
- "pl",
- "fr",
- "es",
- "ja",
- "tr"
- ],
- "description" : "Default keybord layout for vnc server.",
- "optional" : 1,
- "type" : "string"
- },
- "migration_unsecure" : {
- "description" : "Migration is secure using SSH tunnel by default. For secure private networks you can disable it to speed up migration.",
- "optional" : 1,
- "type" : "boolean"
- },
- "max_workers" : {
- "minimum" : 1,
- "type" : "integer",
- "optional" : 1,
- "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager."
- },
- "http_proxy" : {
- "pattern" : "http://.*",
- "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
- "optional" : 1,
- "type" : "string"
+ "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,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "log_ratelimit" : {
+ "description" : "Log ratelimiting settings",
+ "format" : {
+ "burst" : {
+ "default" : 5,
+ "description" : "Inital burst of packages which will get logged",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "enable" : {
+ "default" : "1",
+ "default_key" : 1,
+ "description" : "Enable or disable log rate limiting",
+ "type" : "boolean"
+ },
+ "rate" : {
+ "default" : "1/second",
+ "description" : "Frequency with which the burst bucket gets refilled",
+ "format_description" : "rate",
+ "optional" : 1,
+ "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Set Firewall options.",
+ "method" : "PUT",
+ "name" : "set_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ebtables" : {
+ "default" : 1,
+ "description" : "Enable ebtables rules cluster wide.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "enable" : {
+ "description" : "Enable or disable the firewall cluster wide.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "log_ratelimit" : {
+ "description" : "Log ratelimiting settings",
+ "format" : {
+ "burst" : {
+ "default" : 5,
+ "description" : "Inital burst of packages which will get logged",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "enable" : {
+ "default" : "1",
+ "default_key" : 1,
+ "description" : "Enable or disable log rate limiting",
+ "type" : "boolean"
+ },
+ "rate" : {
+ "default" : "1/second",
+ "description" : "Frequency with which the burst bucket gets refilled",
+ "format_description" : "rate",
+ "optional" : 1,
+ "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
},
- "fencing" : {
- "type" : "string",
- "default" : "watchdog",
- "description" : "Set the fencing mode of the HA cluster. Hardware mode needs a valid configuration of fence devices in /etc/pve/ha/fence.cfg. With both all two modes are used.\n\nWARNING: 'hardware' and 'both' are EXPERIMENTAL & WIP",
- "optional" : 1,
- "enum" : [
- "watchdog",
- "hardware",
- "both"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
]
},
- "language" : {
- "optional" : 1,
- "description" : "Default GUI language.",
- "enum" : [
- "en",
- "de"
- ],
- "type" : "string"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "method" : "PUT",
- "name" : "set_options",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "leaf" : 1,
+ "path" : "/cluster/firewall/options",
+ "text" : "options"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "List available macros",
+ "method" : "GET",
+ "name" : "get_macros",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "descr" : {
+ "description" : "More verbose description (if available).",
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Macro name.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
},
- "description" : "Set datacenter options."
+ "leaf" : 1,
+ "path" : "/cluster/firewall/macros",
+ "text" : "macros"
},
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
+ "method" : "GET",
+ "name" : "refs",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list references of specified type.",
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "ref" : {
+ "type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/refs",
+ "text" : "refs"
+ }
+ ],
+ "info" : {
"GET" : {
+ "description" : "Directory index.",
"method" : "GET",
- "name" : "get_options",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
- "returns" : {
- "type" : "object",
- "properties" : {}
- },
"permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "user" : "all"
},
- "description" : "Get datacenter options."
- }
- }
- },
- {
- "leaf" : 1,
- "text" : "status",
- "info" : {
- "GET" : {
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
- "properties" : {
- "type" : {
- "type" : "string"
- }
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
}
- }
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "get_status",
- "method" : "GET",
- "protected" : 1,
- "description" : "Get cluster status informations.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ ],
+ "type" : "array"
}
}
},
- "path" : "/cluster/status"
+ "leaf" : 0,
+ "path" : "/cluster/firewall",
+ "text" : "firewall"
},
{
- "path" : "/cluster/nextid",
- "info" : {
- "GET" : {
- "permissions" : {
- "user" : "all"
- },
- "description" : "Get next free VMID. If you pass an VMID it will raise an error if the ID is already used.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "optional" : 1
- }
- }
- },
- "returns" : {
- "type" : "integer",
- "description" : "The next free VMID."
- },
- "name" : "nextid",
- "method" : "GET"
- }
- },
- "text" : "nextid",
- "leaf" : 1
- }
- ],
- "path" : "/cluster",
- "info" : {
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ]
- },
- "method" : "GET",
- "name" : "index",
- "description" : "Cluster index.",
- "permissions" : {
- "user" : "all"
- }
- }
- }
- },
- {
- "leaf" : 0,
- "text" : "nodes",
- "path" : "/nodes",
- "children" : [
- {
- "leaf" : 0,
- "text" : "{node}",
- "path" : "/nodes/{node}",
"children" : [
{
- "text" : "qemu",
- "leaf" : 0,
- "path" : "/nodes/{node}/qemu",
- "children" : [
- {
- "path" : "/nodes/{node}/qemu/{vmid}",
- "info" : {
- "DELETE" : {
- "description" : "Destroy the vm (also delete all used/owned volumes).",
- "returns" : {
- "type" : "string"
- },
- "method" : "DELETE",
- "name" : "destroy_vm",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Allocate"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "skiplock" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option."
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- }
- },
- "GET" : {
- "method" : "GET",
- "name" : "vmdiridx",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- }
+ "info" : {
+ "DELETE" : {
+ "description" : "Delete vzdump backup job definition.",
+ "method" : "DELETE",
+ "name" : "delete_job",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read vzdump backup job definition.",
+ "method" : "GET",
+ "name" : "read_job",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update vzdump backup job definition.",
+ "method" : "PUT",
+ "name" : "update_job",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "proxyto" : "node",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- }
- },
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
- ]
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (KBytes per second).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "permissions" : {
- "user" : "all"
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "description" : "Directory index"
- }
- },
- "children" : [
- {
- "text" : "firewall",
- "leaf" : 0,
- "children" : [
- {
- "children" : [
- {
- "text" : "{pos}",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
- "info" : {
- "DELETE" : {
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "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"
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
- },
- "name" : "delete_rule",
- "method" : "DELETE",
- "description" : "Delete rule."
- },
- "GET" : {
- "description" : "Get single rule data.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "method" : "GET",
- "name" : "get_rule",
- "returns" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- },
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- }
- },
- "PUT" : {
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT",
- "name" : "update_rule",
- "description" : "Modify rule data.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "digest" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
- },
- "iface" : {
- "minLength" : 2,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "optional" : 1,
- "maxLength" : 20,
- "type" : "string",
- "format" : "pve-iface"
- },
- "source" : {
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-addr-spec"
- },
- "pos" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- },
- "action" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "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.",
- "optional" : 1,
- "format" : "pve-fw-addr-spec",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dow" : {
+ "description" : "Day of week selection.",
+ "format" : "pve-day-of-week-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enabled" : {
+ "default" : "1",
+ "description" : "Enable or disable the job.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs).",
+ "format" : "string-alist",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ionice" : {
+ "default" : 7,
+ "description" : "Set CFQ ionice priority.",
+ "maximum" : 8,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 8)"
+ },
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "mailnotification" : {
+ "default" : "always",
+ "description" : "Specify when to send an email",
+ "enum" : [
+ "always",
+ "failure"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mailto" : {
+ "description" : "Comma-separated list of email addresses that should receive email notifications.",
+ "format" : "string-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "maxfiles" : {
+ "default" : 1,
+ "description" : "Maximal number of backup files per guest system.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "mode" : {
+ "default" : "snapshot",
+ "description" : "Backup mode.",
+ "enum" : [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "Only run if executed on this node.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pigz" : {
+ "default" : 0,
+ "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "remove" : {
+ "default" : 1,
+ "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "script" : {
+ "description" : "Use specified hook script.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "size" : {
+ "default" : 1024,
+ "description" : "Unused, will be removed in a future release.",
+ "minimum" : 500,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (500 - N)"
+ },
+ "starttime" : {
+ "description" : "Job Start time.",
+ "pattern" : "\\d{1,2}:\\d{1,2}",
+ "type" : "string",
+ "typetext" : "HH:MM"
+ },
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop runnig backup jobs on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/backup/{id}",
+ "text" : "{id}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List vzdump backup schedule.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new vzdump backup job.",
+ "method" : "POST",
+ "name" : "create_job",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (KBytes per second).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dow" : {
+ "default" : "mon,tue,wed,thu,fri,sat,sun",
+ "description" : "Day of week selection.",
+ "format" : "pve-day-of-week-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enabled" : {
+ "default" : "1",
+ "description" : "Enable or disable the job.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs).",
+ "format" : "string-alist",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ionice" : {
+ "default" : 7,
+ "description" : "Set CFQ ionice priority.",
+ "maximum" : 8,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 8)"
+ },
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "mailnotification" : {
+ "default" : "always",
+ "description" : "Specify when to send an email",
+ "enum" : [
+ "always",
+ "failure"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mailto" : {
+ "description" : "Comma-separated list of email addresses that should receive email notifications.",
+ "format" : "string-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "maxfiles" : {
+ "default" : 1,
+ "description" : "Maximal number of backup files per guest system.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "mode" : {
+ "default" : "snapshot",
+ "description" : "Backup mode.",
+ "enum" : [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "Only run if executed on this node.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pigz" : {
+ "default" : 0,
+ "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "remove" : {
+ "default" : 1,
+ "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "script" : {
+ "description" : "Use specified hook script.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "size" : {
+ "default" : 1024,
+ "description" : "Unused, will be removed in a future release.",
+ "minimum" : 500,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (500 - N)"
+ },
+ "starttime" : {
+ "description" : "Job Start time.",
+ "pattern" : "\\d{1,2}:\\d{1,2}",
+ "type" : "string",
+ "typetext" : "HH:MM"
+ },
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop runnig backup jobs on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ],
+ "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/backup",
+ "text" : "backup"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Request resource migration (online) to another node.",
+ "method" : "POST",
+ "name" : "migrate",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/resources/{sid}/migrate",
+ "text" : "migrate"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
+ "method" : "POST",
+ "name" : "relocate",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/resources/{sid}/relocate",
+ "text" : "relocate"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "description" : "Delete resource configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read resource configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Can be used to prevent concurrent modifications.",
+ "type" : "string"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "max_relocate" : {
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "max_restart" : {
+ "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ },
+ "state" : {
+ "description" : "Requested resource state.",
+ "enum" : [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled",
+ "ignored"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "The type of the resources.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update resource configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "max_relocate" : {
+ "default" : 1,
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "max_restart" : {
+ "default" : 1,
+ "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ },
+ "state" : {
+ "default" : "started",
+ "description" : "Requested resource state.",
+ "enum" : [
+ "started",
+ "stopped",
+ "enabled",
+ "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`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"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha/resources/{sid}",
+ "text" : "{sid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List HA resources.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list resources of specific type",
+ "enum" : [
+ "ct",
+ "vm"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "sid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{sid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create a new HA resource.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "max_relocate" : {
+ "default" : 1,
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "max_restart" : {
+ "default" : 1,
+ "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ },
+ "state" : {
+ "default" : "started",
+ "description" : "Requested resource state.",
+ "enum" : [
+ "started",
+ "stopped",
+ "enabled",
+ "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`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.",
+ "enum" : [
+ "ct",
+ "vm"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha/resources",
+ "text" : "resources"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Delete ha group configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read ha group configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {}
+ },
+ "PUT" : {
+ "description" : "Update ha group configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names with optional priority.",
+ "format" : "pve-ha-group-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
+ "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
+ },
+ "nofailback" : {
+ "default" : 0,
+ "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "restricted" : {
+ "default" : 0,
+ "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>",
+ "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/groups/{group}",
+ "text" : "{group}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Get HA groups.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "group" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{group}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create a new HA group.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names with optional priority.",
+ "format" : "pve-ha-group-node-list",
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
+ "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
+ },
+ "nofailback" : {
+ "default" : 0,
+ "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "restricted" : {
+ "default" : 0,
+ "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>",
+ "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
+ },
+ "type" : {
+ "description" : "Group type.",
+ "enum" : [
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha/groups",
+ "text" : "groups"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get HA manger status.",
+ "method" : "GET",
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/status/current",
+ "text" : "current"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get full HA manger status, including LRM status.",
+ "method" : "GET",
+ "name" : "manager_status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/status/manager_status",
+ "text" : "manager_status"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Directory 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/ha/status",
+ "text" : "status"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha",
+ "text" : "ha"
+ },
+ {
+ "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" : "<name>"
+ }
+ }
+ },
+ "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" : "<name>"
+ }
+ }
+ },
+ "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" : "<string>"
+ },
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<name>"
+ }
+ }
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/acme/account/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "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"
+ }
+ },
+ "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" : "<string>"
+ },
+ "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" : "<name>"
+ },
+ "tos_url" : {
+ "description" : "URL of CA TermsOfService - setting this indicates agreement.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "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" : "<integer> (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",
+ "storage",
+ "node"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "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"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/resources",
+ "text" : "resources"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "List recent tasks (cluster wide).",
+ "method" : "GET",
+ "name" : "tasks",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "upid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/tasks",
+ "text" : "tasks"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get datacenter options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Set datacenter options.",
+ "method" : "PUT",
+ "name" : "set_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bwlimit" : {
+ "description" : "Set bandwidth/io limits various operations.",
+ "format" : {
+ "clone" : {
+ "description" : "bandwidth limit in KiB/s for cloning disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "default" : {
+ "description" : "default bandwidth limit in KiB/s",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "migration" : {
+ "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "move" : {
+ "description" : "bandwidth limit in KiB/s for moving disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "restore" : {
+ "description" : "bandwidth limit in KiB/s for restoring guests from backups",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
+ },
+ "console" : {
+ "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",
+ "xtermjs"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "email_from" : {
+ "description" : "Specify email address to send notification from (default is root@$hostname)",
+ "format" : "email-opt",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "fencing" : {
+ "default" : "watchdog",
+ "description" : "Set the fencing mode of the HA cluster. Hardware mode needs a valid configuration of fence devices in /etc/pve/ha/fence.cfg. With both all two modes are used.\n\nWARNING: 'hardware' and 'both' are EXPERIMENTAL & WIP",
+ "enum" : [
+ "watchdog",
+ "hardware",
+ "both"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ha" : {
+ "description" : "Cluster wide HA settings.",
+ "format" : {
+ "shutdown_policy" : {
+ "default" : "conditional",
+ "description" : "The policy for HA services on node shutdown. 'freeze' disables auto-recovery, 'failover' ensures recovery, 'conditional' recovers on poweroff and freezes on reboot. Running HA Services will always get stopped first on shutdown.",
+ "enum" : [
+ "freeze",
+ "failover",
+ "conditional"
+ ],
+ "type" : "string",
+ "verbose_description" : "Describes the policy for handling HA services on poweroff or reboot of a node. Freeze will always freeze services which are still located on the node on shutdown, those services won't be recovered by the HA manager. Failover will not mark the services as frozen and thus the services will get recovered to other nodes, if the shutdown node does not come up again quickly (< 1min). 'conditional' chooses automatically depending on the type of shutdown, i.e., on a reboot the service will be frozen but on a poweroff the service will stay as is, and thus get recovered after about 2 minutes."
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "shutdown_policy=<freeze|failover|conditional>"
+ },
+ "http_proxy" : {
+ "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
+ "optional" : 1,
+ "pattern" : "http://.*",
+ "type" : "string"
+ },
+ "keyboard" : {
+ "description" : "Default keybord layout for vnc server.",
+ "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"
+ },
+ "language" : {
+ "description" : "Default GUI language.",
+ "enum" : [
+ "zh_CN",
+ "zh_TW",
+ "ca",
+ "en",
+ "eu",
+ "fr",
+ "de",
+ "it",
+ "es",
+ "ja",
+ "nb",
+ "nn",
+ "fa",
+ "pl",
+ "pt_BR",
+ "ru",
+ "sl",
+ "sv",
+ "tr"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mac_prefix" : {
+ "description" : "Prefix for autogenerated MAC addresses.",
+ "format" : "mac-prefix",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "max_workers" : {
+ "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "migration" : {
+ "description" : "For cluster wide migration settings.",
+ "format" : {
+ "network" : {
+ "description" : "CIDR of the (sub) network that is used for migration.",
+ "format" : "CIDR",
+ "format_description" : "CIDR",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "default" : "secure",
+ "default_key" : 1,
+ "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"
+ ],
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
+ },
+ "migration_unsecure" : {
+ "description" : "Migration is secure using SSH tunnel by default. For secure private networks you can disable it to speed up migration. Deprecated, use the 'migration' property instead!",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "u2f" : {
+ "description" : "u2f",
+ "format" : {
+ "appid" : {
+ "description" : "U2F AppId URL override. Defaults to the origin.",
+ "format_description" : "APPID",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "origin" : {
+ "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
+ "format_description" : "URL",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[appid=<APPID>] [,origin=<URL>]"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/options",
+ "text" : "options"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get cluster status informations.",
+ "method" : "GET",
+ "name" : "get_status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/status",
+ "text" : "status"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get next free VMID. If you pass an VMID it will raise an error if the ID is already used.",
+ "method" : "GET",
+ "name" : "nextid",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "description" : "The next free VMID.",
+ "type" : "integer"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/nextid",
+ "text" : "nextid"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Cluster 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",
+ "text" : "cluster"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Delete rule.",
+ "method" : "DELETE",
+ "name" : "delete_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
+ "text" : "{pos}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new rule.",
+ "method" : "POST",
+ "name" : "create_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 0,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
+ "text" : "rules"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
+ "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" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read alias.",
+ "method" : "GET",
+ "name" : "read_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rename" : {
+ "description" : "Rename an existing alias.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
- "type" : {
- "optional" : 1,
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "type" : "string"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List aliases",
+ "method" : "GET",
+ "name" : "get_aliases",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create IP or Network Alias.",
+ "method" : "POST",
+ "name" : "create_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
+ "text" : "aliases"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Remove IP or Network from IPSet.",
+ "method" : "DELETE",
+ "name" : "remove_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read IP or Network settings from IPSet.",
+ "method" : "GET",
+ "name" : "read_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update IP or Network settings",
+ "method" : "PUT",
+ "name" : "update_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
},
- "proto" : {
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "format" : "pve-fw-protocol-spec",
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
+ "text" : "{cidr}"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "description" : "Delete IPSet",
+ "method" : "DELETE",
+ "name" : "delete_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
- "dport" : {
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "format" : "pve-fw-dport-spec",
- "type" : "string"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "enable" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "minimum" : 0,
- "optional" : 1
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "List IPSet content",
+ "method" : "GET",
+ "name" : "get_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
- "moveto" : {
- "minimum" : 0,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "optional" : 1,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored."
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
+ }
},
- "delete" : {
- "format" : "pve-configid-list",
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cidr}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Add IP or Network to IPSet.",
+ "method" : "POST",
+ "name" : "create_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
"type" : "string",
- "optional" : 1,
- "description" : "A list of settings you want to delete."
+ "typetext" : "<string>"
},
- "sport" : {
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "comment" : {
"optional" : 1,
"type" : "string",
- "format" : "pve-fw-sport-spec"
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "macro" : {
- "type" : "string",
- "maxLength" : 128,
- "optional" : 1
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "proxyto" : null,
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List IPSets",
+ "method" : "GET",
+ "name" : "ipset_index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new IPSet",
+ "method" : "POST",
+ "name" : "create_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rename" : {
+ "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
+ "text" : "ipset"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get VM firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "dhcp" : {
+ "description" : "Enable DHCP.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "enable" : {
+ "description" : "Enable/disable firewall rules.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ipfilter" : {
+ "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macfilter" : {
+ "description" : "Enable/disable MAC address filter.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ndp" : {
+ "description" : "Enable NDP.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Set Firewall options.",
+ "method" : "PUT",
+ "name" : "set_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dhcp" : {
+ "description" : "Enable DHCP.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "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" : "<string>"
+ },
+ "enable" : {
+ "description" : "Enable/disable firewall rules.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ipfilter" : {
+ "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macfilter" : {
+ "description" : "Enable/disable MAC address filter.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ndp" : {
+ "description" : "Enable NDP.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
+ "text" : "options"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Read firewall log",
+ "method" : "GET",
+ "name" : "log",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
+ "text" : "log"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
+ "method" : "GET",
+ "name" : "refs",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Only list references of specified type.",
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
+ "text" : "refs"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall",
+ "text" : "firewall"
+ },
+ {
+ "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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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/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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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/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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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/fsfreeze-thaw",
+ "text" : "fsfreeze-thaw"
+ },
+ {
+ "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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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/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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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-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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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-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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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-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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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-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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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-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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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-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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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-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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "The new password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "username" : {
+ "description" : "The user to set the password for.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "pid" : {
+ "description" : "The PID to query",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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"
+ },
+ "err-truncated" : {
+ "description" : "true if stderr was not fully captured",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "exitcode" : {
+ "description" : "process exit code if it was normally terminated.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "exited" : {
+ "description" : "Tells if the given command has exited yet.",
+ "type" : "boolean"
+ },
+ "out-data" : {
+ "description" : "stdout of the process",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "out-truncated" : {
+ "description" : "true if stdout was not fully captured",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "signal" : {
+ "description" : "signal number or exception code if the process was abnormally terminated.",
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
+ "text" : "exec-status"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
+ "method" : "GET",
+ "name" : "file-read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "file" : {
+ "description" : "The path to the file",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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"
+ },
+ "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" : "<string>"
+ },
+ "file" : {
+ "description" : "The path to the file.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : [
+ "fsfreeze-freeze",
+ "fsfreeze-status",
+ "fsfreeze-thaw",
+ "fstrim",
+ "get-fsinfo",
+ "get-host-name",
+ "get-memory-block-info",
+ "get-memory-blocks",
+ "get-osinfo",
+ "get-time",
+ "get-timezone",
+ "get-users",
+ "get-vcpus",
+ "info",
+ "network-get-interfaces",
+ "ping",
+ "shutdown",
+ "suspend-disk",
+ "suspend-hybrid",
+ "suspend-ram"
+ ],
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent",
+ "text" : "agent"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Read VM RRD statistics (returns PNG)",
+ "method" : "GET",
+ "name" : "rrd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ds" : {
+ "description" : "The list of datasources you want to display.",
+ "format" : "pve-configid-list",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/rrd",
+ "text" : "rrd"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Read VM RRD statistics",
+ "method" : "GET",
+ "name" : "rrddata",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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" : "<integer> (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" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapshot" : {
+ "description" : "Fetch config values from given snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : {
+ "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"
+ },
+ "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",
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
+ },
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "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" : [
+ "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" : "<volume>"
+ },
+ "cicustom" : {
+ "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
+ "format" : "pve-qm-cicustom",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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"
+ },
+ "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"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "hv-vendor-id" : {
+ "description" : "The Hyper-V vendor ID. Some drivers or programs inside Windows guests need a specific ID.",
+ "format_description" : "vendor-id",
+ "optional" : 1,
+ "pattern" : "(?^:[a-zA-Z0-9]{1,12})",
+ "type" : "string"
+ }
+ },
+ "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"
+ },
+ "hookscript" : {
+ "description" : "Script that will be executed during various steps in the vms lifetime.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ipconfig[n]" : {
+ "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.\n",
+ "format" : "pve-qm-ipconfig",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ivshmem" : {
+ "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
+ "format" : {
+ "name" : {
+ "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
+ "format_description" : "string",
+ "optional" : 1,
+ "pattern" : "[a-zA-Z0-9\\-]+",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "The size of the file in MB.",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ },
+ "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" : [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "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"
+ },
+ "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" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "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"
+ },
+ "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,
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
}
- }
- }
- }
- ],
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "get_rules",
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ },
+ "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"
},
- "vmid" : {
+ "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,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{pos}"
- }
- ]
- },
- "description" : "List rules.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- }
- },
- "POST" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "action" : {
- "maxLength" : 20,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "optional" : 0,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
+ "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"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
},
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "description" : "Update rule at position <pos>."
+ "type" : "boolean"
},
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "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.",
- "optional" : 1
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "type" : {
+ "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" : [
- "in",
- "out",
- "group"
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
],
- "optional" : 0,
+ "optional" : 1,
"type" : "string"
},
- "macro" : {
+ "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,
- "maxLength" : 128,
"type" : "string"
},
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "proto" : {
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "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" : "string",
- "format" : "pve-fw-protocol-spec"
+ "type" : "boolean"
},
- "iface" : {
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
"optional" : 1,
- "type" : "string",
- "format" : "pve-iface"
+ "type" : "boolean"
},
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "enable" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "volume" : {
+ "alias" : "file"
},
- "dport" : {
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "format" : "pve-fw-dport-spec",
"type" : "string"
},
- "source" : {
- "type" : "string",
- "format" : "pve-fw-addr-spec",
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
"optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists."
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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"
+ },
+ "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"
+ },
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "smp" : {
+ "default" : 1,
+ "description" : "The number of CPUs. Please use option -sockets instead.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "sockets" : {
+ "default" : 1,
+ "description" : "The number of CPU sockets.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "sshkeys" : {
+ "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+ "format" : "urlencoded",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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",
+ "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"
+ },
+ "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" : {
+ "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"
},
- "sport" : {
+ "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,
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "format" : "pve-fw-sport-spec",
- "type" : "string"
+ "type" : "boolean"
}
- }
+ },
+ "optional" : 1,
+ "type" : "string"
},
- "proxyto" : null,
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "vcpus" : {
+ "default" : 0,
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "name" : "create_rule",
- "method" : "POST",
- "returns" : {
- "type" : "null"
+ "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",
+ "none",
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3",
+ "std",
+ "virtio",
+ "vmware"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "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."
},
- "description" : "Create new rule."
- }
- },
- "leaf" : 0,
- "text" : "rules"
- },
- {
- "children" : [
- {
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
- "info" : {
- "DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "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"
},
- "description" : "Remove IP or Network alias.",
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Alias name.",
- "maxLength" : 64,
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- }
- }
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "returns" : {
- "type" : "null"
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "method" : "DELETE",
- "name" : "remove_alias"
- },
- "GET" : {
- "description" : "Read alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "name" : {
- "maxLength" : 64,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "returns" : {
- "type" : "object"
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
},
- "name" : "read_alias",
- "method" : "GET"
- },
- "PUT" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "description" : "Update IP or Network alias.",
- "returns" : {
- "type" : "null"
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "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"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDR"
- },
- "rename" : {
- "description" : "Rename an existing alias.",
- "optional" : 1,
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- }
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
},
- "name" : "update_alias",
- "method" : "PUT"
- }
- },
- "leaf" : 1,
- "text" : "{name}"
- }
- ],
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "comment" : {
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
"optional" : 1,
"type" : "string"
},
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDR",
- "description" : "Network/IP specification in CIDR format."
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
+ "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,
- "format" : "pve-vmid",
+ "optional" : 1,
"type" : "integer"
},
- "name" : {
- "maxLength" : 64,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "create_alias",
- "method" : "POST",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Create IP or Network Alias."
- },
- "GET" : {
- "name" : "get_aliases",
- "method" : "GET",
- "returns" : {
- "items" : {
- "properties" : {
- "name" : {
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0,
- "type" : "string"
- },
- "cidr" : {
- "type" : "string"
- }
+ "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"
},
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ]
- },
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
+ "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,
- "format" : "pve-vmid",
+ "optional" : 1,
"type" : "integer"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "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"
}
- },
- "additionalProperties" : 0
- },
- "description" : "List aliases",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- }
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
- "leaf" : 0,
- "text" : "aliases"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
- "children" : [
- {
- "leaf" : 0,
- "text" : "{name}",
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
- "children" : [
- {
- "text" : "{cidr}",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
- "info" : {
- "PUT" : {
- "name" : "update_ip",
- "method" : "PUT",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "maxLength" : 64,
- "description" : "IP set name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- },
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "cidr" : {
- "format" : "IPorCIDRorAlias",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "digest" : {
- "optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "null"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Update IP or Network settings",
- "protected" : 1
- },
- "GET" : {
- "name" : "read_ip",
- "method" : "GET",
- "returns" : {
- "type" : "object"
- },
- "parameters" : {
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "maxLength" : 64,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "description" : "Read IP or Network settings from IPSet.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- }
- },
- "DELETE" : {
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "IP set name.",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "digest" : {
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "type" : "string"
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "DELETE",
- "name" : "remove_ip",
- "protected" : 1,
- "description" : "Remove IP or Network from IPSet.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- }
- }
- }
- }
- ],
- "info" : {
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ },
+ "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",
+ "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file."
+ },
+ "vmstatestorage" : {
+ "description" : "Default storage for VM state volumes/files.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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 ACPI.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "agent" : {
+ "description" : "Enable/disable Qemu GuestAgent and its properties.",
+ "format" : {
+ "enabled" : {
+ "default" : 0,
+ "default_key" : 1,
+ "description" : "Enable/disable Qemu GuestAgent.",
+ "type" : "boolean"
},
- "description" : "Add IP or Network to IPSet.",
- "protected" : 1,
- "name" : "create_ip",
- "method" : "POST",
- "parameters" : {
- "properties" : {
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDRorAlias"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "IP set name."
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
+ "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" : [
+ "x86_64",
+ "aarch64"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "args" : {
+ "description" : "Arbitrary arguments passed to kvm.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>",
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
+ },
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "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" : "<integer> (1 - 30)"
+ },
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "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" : "<volume>"
+ },
+ "cicustom" : {
+ "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
+ "format" : "pve-qm-cicustom",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>]"
+ },
+ "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" : "<string>"
+ },
+ "citype" : {
+ "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
+ "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" : "<string>"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "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"
},
- "returns" : {
- "type" : "null"
+ "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"
+ },
+ "hv-vendor-id" : {
+ "description" : "The Hyper-V vendor ID. Some drivers or programs inside Windows guests need a specific ID.",
+ "format_description" : "vendor-id",
+ "optional" : 1,
+ "pattern" : "(?^:[a-zA-Z0-9]{1,12})",
+ "type" : "string"
}
},
- "DELETE" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>]"
+ },
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (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" : "<integer> (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" : "<string>"
+ },
+ "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" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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"
},
- "description" : "Delete IPSet",
- "method" : "DELETE",
- "name" : "delete_ipset",
- "returns" : {
- "type" : "null"
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "parameters" : {
- "properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "maxLength" : 64,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
+ "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"
}
},
- "GET" : {
- "returns" : {
- "links" : [
- {
- "href" : "{cidr}",
- "rel" : "child"
- }
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,format=<enum>] [,size=<DiskSize>]"
+ },
+ "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" : "<boolean>"
+ },
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "hookscript" : {
+ "description" : "Script that will be executed during various steps in the vms lifetime.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "hostpci[n]" : {
+ "description" : "Map host PCI devices into guest.",
+ "format" : "pve-qm-hostpci",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,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" : "<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"
],
- "items" : {
- "properties" : {
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0,
- "type" : "string"
- },
- "cidr" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
+ "optional" : 1,
+ "type" : "string"
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "maxLength" : 64,
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- }
- }
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "method" : "GET",
- "name" : "get_ipset",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "description" : "List IPSet content"
- }
- }
- }
- ],
- "info" : {
- "POST" : {
- "name" : "create_ipset",
- "method" : "POST",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "maxLength" : 64
+ "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"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
"minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "optional" : 1,
+ "type" : "integer"
},
- "rename" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
+ "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"
},
- "digest" : {
- "type" : "string",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "type" : "integer"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "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"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Create new IPSet"
- },
- "GET" : {
- "method" : "GET",
- "name" : "ipset_index",
- "returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {
- "name" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "description" : "IP set name.",
- "maxLength" : 64
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0,
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- }
- },
- "type" : "array"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
"type" : "string"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
+ "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,
- "format" : "pve-vmid",
+ "optional" : 1,
"type" : "integer"
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "List IPSets"
- }
- },
- "leaf" : 0,
- "text" : "ipset"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
- "info" : {
- "GET" : {
- "description" : "Get VM firewall options.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
+ },
+ "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,
- "format" : "pve-vmid",
+ "optional" : 1,
"type" : "integer"
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "returns" : {
- "properties" : {
- "radv" : {
- "description" : "Allow sending Router Advertisement.",
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "boolean"
+ "type" : "integer"
},
- "log_level_out" : {
- "description" : "Log level for outgoing traffic.",
+ "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" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
+ "cdrom",
+ "disk"
],
+ "optional" : 1,
"type" : "string"
},
- "log_level_in" : {
+ "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" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
+ "ignore",
+ "report",
+ "stop"
],
- "description" : "Log level for incoming traffic.",
"optional" : 1,
"type" : "string"
},
- "enable" : {
- "type" : "boolean",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"optional" : 1,
- "description" : "Enable/disable firewall rules."
+ "type" : "integer"
},
- "dhcp" : {
- "type" : "boolean",
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
"optional" : 1,
- "description" : "Enable DHCP."
+ "type" : "string"
},
- "ndp" : {
- "type" : "boolean",
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
"optional" : 1,
- "description" : "Enable NDP."
- },
- "ipfilter" : {
"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,
- "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added."
+ "type" : "string"
},
- "macfilter" : {
+ "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,
- "description" : "Enable/disable MAC address filter.",
"type" : "boolean"
},
- "policy_in" : {
- "type" : "string",
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
"optional" : 1,
- "description" : "Input policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
+ "type" : "boolean"
},
- "policy_out" : {
- "type" : "string",
- "description" : "Output policy.",
- "optional" : 1,
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
- }
- },
- "type" : "object"
- },
- "method" : "GET",
- "name" : "get_options"
- },
- "PUT" : {
- "method" : "PUT",
- "name" : "set_options",
- "returns" : {
- "type" : "null"
- },
- "description" : "Set Firewall options.",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "log_level_out" : {
- "type" : "string",
- "description" : "Log level for outgoing traffic.",
- "optional" : 1,
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ]
- },
- "delete" : {
- "format" : "pve-configid-list",
- "type" : "string",
+ "none",
+ "lba",
+ "auto"
+ ],
"optional" : 1,
- "description" : "A list of settings you want to delete."
+ "type" : "string"
},
- "radv" : {
- "type" : "boolean",
- "description" : "Allow sending Router Advertisement.",
- "optional" : 1
+ "volume" : {
+ "alias" : "file"
},
- "log_level_in" : {
- "type" : "string",
+ "werror" : {
+ "description" : "Write error action.",
"enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
],
- "description" : "Log level for incoming traffic.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "enable" : {
- "type" : "boolean",
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
"optional" : 1,
- "description" : "Enable/disable firewall rules."
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+ },
+ "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=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
+ },
+ "ivshmem" : {
+ "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
+ "format" : {
+ "name" : {
+ "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
+ "format_description" : "string",
+ "optional" : 1,
+ "pattern" : "[a-zA-Z0-9\\-]+",
+ "type" : "string"
},
- "digest" : {
+ "size" : {
+ "description" : "The size of the file in MB.",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "size=<integer> [,name=<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",
+ "typetext" : "<boolean>"
+ },
+ "localtime" : {
+ "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "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" : "<integer> (16 - N)"
+ },
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (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" : "<integer> (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" : "<string>"
+ },
+ "nameserver" : {
+ "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
+ "format" : "address-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"type" : "string"
},
- "macfilter" : {
- "type" : "boolean",
- "description" : "Enable/disable MAC address filter.",
- "optional" : 1
+ "e1000" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "policy_in" : {
- "type" : "string",
- "description" : "Input policy.",
- "optional" : 1,
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
+ "e1000-82540em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
+ "e1000-82544gc" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "dhcp" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable DHCP."
+ "e1000-82545em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "ndp" : {
+ "firewall" : {
+ "description" : "Whether this interface should be protected by the firewall.",
"optional" : 1,
- "description" : "Enable NDP.",
"type" : "boolean"
},
- "ipfilter" : {
+ "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,
- "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
"type" : "boolean"
},
- "node" : {
- "description" : "The cluster node name.",
+ "macaddr" : {
+ "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-node"
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
},
- "policy_out" : {
- "optional" : 1,
- "description" : "Output policy.",
+ "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" : [
- "ACCEPT",
- "REJECT",
- "DROP"
+ "rtl8139",
+ "ne2k_pci",
+ "e1000",
+ "pcnet",
+ "virtio",
+ "ne2k_isa",
+ "i82551",
+ "i82557b",
+ "i82559er",
+ "vmxnet3",
+ "e1000-82540em",
+ "e1000-82544gc",
+ "e1000-82545em"
],
"type" : "string"
- }
- }
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- }
- }
- },
- "text" : "options",
- "leaf" : 1
- },
- {
- "leaf" : 1,
- "text" : "log",
- "info" : {
- "GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "n" : {
- "description" : "Line number",
- "type" : "integer"
- },
- "t" : {
- "type" : "string",
- "description" : "Line text"
- }
},
- "type" : "object"
- }
- },
- "method" : "GET",
- "name" : "log",
- "description" : "Read firewall log",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
+ "ne2k_isa" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "start" : {
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
+ "ne2k_pci" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
+ "pcnet" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "limit" : {
- "type" : "integer",
+ "queues" : {
+ "description" : "Number of packet queues to be used on the device.",
+ "maximum" : 16,
"minimum" : 0,
- "optional" : 1
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
- },
- "protected" : 1
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/log"
- },
- {
- "info" : {
- "GET" : {
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "optional" : 1,
+ "type" : "integer"
},
- "type" : {
- "type" : "string",
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Only list references of specified type.",
- "enum" : [
- "alias",
- "ipset"
- ]
+ "type" : "number"
},
- "vmid" : {
+ "rtl8139" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "tag" : {
+ "description" : "VLAN tag to apply to packets on this interface.",
+ "maximum" : 4094,
"minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "alias",
- "ipset"
- ]
- }
+ "optional" : 1,
+ "type" : "integer"
},
- "type" : "object"
- }
- },
- "name" : "refs",
- "method" : "GET",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties."
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
- "leaf" : 1,
- "text" : "refs"
- }
- ],
- "path" : "/nodes/{node}/qemu/{vmid}/firewall",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "index",
- "returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- }
- },
- "description" : "Directory index.",
- "permissions" : {
- "user" : "all"
- }
- }
- }
- },
- {
- "text" : "rrd",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/rrd",
- "info" : {
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "ds" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "The list of datasources you want to display."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "timeframe" : {
- "type" : "string",
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ],
- "description" : "Specify the time frame you are interested in."
- },
- "cf" : {
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "description" : "The RRD consolidation function",
+ "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"
+ "type" : "string",
+ "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- }
- }
- },
- "returns" : {
- "type" : "object",
- "properties" : {
- "filename" : {
- "type" : "string"
- }
- }
- },
- "method" : "GET",
- "name" : "rrd",
- "description" : "Read VM RRD statistics (returns PNG)",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "protected" : 1
- }
- }
- },
- {
- "info" : {
- "GET" : {
- "name" : "rrddata",
- "method" : "GET",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
- },
- "parameters" : {
- "properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "timeframe" : {
- "type" : "string",
- "description" : "Specify the time frame you are interested in.",
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ]
+ "numa" : {
+ "default" : 0,
+ "description" : "Enable/disable NUMA.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "cf" : {
+ "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=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
+ },
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ostype" : {
+ "description" : "Specify guest operating system.",
"enum" : [
- "AVERAGE",
- "MAX"
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "l24",
+ "l26",
+ "solaris"
],
"optional" : 1,
- "description" : "The RRD consolidation function"
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "Read VM RRD statistics"
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
- "leaf" : 1,
- "text" : "rrddata"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/config",
- "info" : {
- "PUT" : {
- "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",
- "parameters" : {
- "properties" : {
- "lock" : {
"type" : "string",
- "description" : "Lock/unlock the VM.",
+ "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,
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ]
+ "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"
},
- "numa" : {
+ "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",
- "description" : "Enable/disable NUMA.",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "virtio[n]" : {
- "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
+ "reboot" : {
+ "default" : 1,
+ "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "revert" : {
+ "description" : "Revert a pending change.",
+ "format" : "pve-configid-list",
"optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sata[n]" : {
+ "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
"format" : {
- "mbps_wr" : {
- "type" : "number",
- "description" : "Maximum write speed speed in megabytes per second.",
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "string"
},
- "cyls" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "format_description" : "count",
- "optional" : 1
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "secs" : {
- "format_description" : "count",
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
"type" : "integer"
},
- "heads" : {
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count",
"type" : "integer"
},
- "mbps_rd" : {
- "type" : "number",
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "integer"
},
- "backup" : {
+ "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,
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off",
"type" : "boolean"
},
- "bps_rd" : {
- "type" : "integer",
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "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",
"cloop"
],
"optional" : 1,
- "description" : "The drive's backing file's data format.",
- "format_description" : "drive format",
- "type" : "string"
- },
- "media" : {
- "enum" : [
- "cdrom",
- "disk"
- ],
- "format_description" : "cdrom|disk",
- "optional" : 1,
- "description" : "The drive's media type.",
- "default" : "disk",
"type" : "string"
},
- "detect_zeroes" : {
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
"optional" : 1,
- "type" : "boolean"
+ "type" : "integer"
},
- "iops_wr" : {
- "optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
"format_description" : "iops",
+ "optional" : 1,
"type" : "integer"
},
- "mbps_max" : {
- "type" : "number",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "integer"
},
- "serial" : {
- "type" : "string",
- "format" : "urlencoded",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "maxLength" : 60
+ "type" : "integer"
},
- "discard" : {
- "format_description" : "ignore|on",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "enum" : [
- "ignore",
- "on"
- ],
- "type" : "string"
+ "type" : "integer"
},
- "file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "default_key" : 1,
- "format_description" : "volume",
- "description" : "The drive's backing volume."
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
},
- "mbps" : {
- "description" : "Maximum r/w speed speed in megabytes per second.",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "integer"
},
- "bps_wr" : {
- "type" : "integer",
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second."
+ "type" : "integer"
},
- "iops" : {
- "type" : "integer",
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "integer"
},
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
+ "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,
- "format" : "disk-size",
- "type" : "string"
+ "type" : "integer"
},
- "iothread" : {
- "format_description" : "off|on",
- "description" : "Whether to use iothreads for this drive",
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "boolean"
+ "type" : "integer"
},
- "iops_wr_max" : {
- "type" : "integer",
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second."
+ "type" : "number"
},
- "mbps_rd_max" : {
- "type" : "number",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
"format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "number"
},
- "aio" : {
- "enum" : [
- "native",
- "threads"
- ],
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "type" : "string"
+ "type" : "number"
},
- "iops_max" : {
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops",
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "integer"
+ "type" : "number"
},
- "bps" : {
- "format_description" : "bps",
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second.",
- "type" : "integer"
+ "type" : "number"
},
"mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
"format_description" : "mbps",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
"optional" : 1,
"type" : "number"
},
- "cache" : {
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
"enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
+ "cdrom",
+ "disk"
],
"optional" : 1,
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
"type" : "string"
},
- "snapshot" : {
- "type" : "boolean",
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
"optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots."
+ "type" : "boolean"
},
"rerror" : {
- "type" : "string",
- "optional" : 1,
"description" : "Read error action.",
- "format_description" : "ignore|report|stop",
"enum" : [
"ignore",
"report",
"stop"
- ]
- },
- "trans" : {
- "enum" : [
- "none",
- "lba",
- "auto"
],
- "format_description" : "none|lba|auto",
"optional" : 1,
- "description" : "Force disk geometry bios translation mode.",
"type" : "string"
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"optional" : 1,
- "format_description" : "iops",
"type" : "integer"
},
- "volume" : {
- "alias" : "file"
- },
- "werror" : {
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
"optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
- "description" : "Write error action.",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
"type" : "string"
},
- "iops_rd" : {
- "type" : "integer",
- "description" : "Maximum read I/O speed in operations per second.",
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
"optional" : 1,
- "format_description" : "iops"
- }
- },
- "type" : "string"
- },
- "bios" : {
- "type" : "string",
- "default" : "seabios",
- "optional" : 1,
- "description" : "Select BIOS implementation.",
- "enum" : [
- "seabios",
- "ovmf"
- ]
- },
- "agent" : {
- "optional" : 1,
- "description" : "Enable/disable Qemu GuestAgent.",
- "default" : 0,
- "type" : "boolean"
- },
- "parallel[n]" : {
- "optional" : 1,
- "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\nExperimental: user reported problems with this option.\n",
- "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
- "type" : "string"
- },
- "tablet" : {
- "optional" : 1,
- "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).",
- "type" : "boolean",
- "default" : 1
- },
- "smp" : {
- "optional" : 1,
- "description" : "The number of CPUs. Please use option -sockets instead.",
- "minimum" : 1,
- "type" : "integer",
- "default" : 1
- },
- "usb[n]" : {
- "format" : {
- "usb3" : {
"type" : "boolean",
- "optional" : 1,
- "description" : "Specifies whether if given host option is a USB3 device or port",
- "format_description" : "yes|no"
+ "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!"
},
- "host" : {
- "description" : "The Host USB device or port or the value spice",
- "format_description" : "HOSTUSBDEVICE|spice",
- "default_key" : 1,
- "format" : "pve-qm-usb-device",
- "type" : "string"
- }
- },
- "type" : "string",
- "description" : "Configure an USB device (n is 0 to 4). This can be used to\npass-through usb devices to the guest. 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\nThe 'usb3' option determines whether the device is a USB3 device or not (this does currently not work reliably with spice redirection and is then ignored).\n\n",
- "optional" : 1
- },
- "tdf" : {
- "optional" : 1,
- "description" : "Enable/disable time drift fix.",
- "default" : 0,
- "type" : "boolean"
- },
- "cdrom" : {
- "format" : "pve-qm-drive",
- "type" : "string",
- "optional" : 1,
- "description" : "This is an alias for option -ide2",
- "typetext" : "volume"
- },
- "sockets" : {
- "type" : "integer",
- "default" : 1,
- "minimum" : 1,
- "optional" : 1,
- "description" : "The number of CPU sockets."
- },
- "serial[n]" : {
- "description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0), or create a unix socket on the host 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\nExperimental: user reported problems with this option.\n",
- "optional" : 1,
- "pattern" : "(/dev/.+|socket)",
- "type" : "string"
- },
- "ide[n]" : {
- "format" : {
- "mbps_wr_max" : {
- "type" : "number",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "string"
},
- "bps" : {
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
+ "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" : "integer"
+ "type" : "boolean"
},
- "snapshot" : {
- "type" : "boolean",
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
"optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots."
+ "type" : "boolean"
},
- "cache" : {
- "type" : "string",
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
+ "lba",
+ "auto"
],
"optional" : 1,
- "description" : "The drive's cache mode",
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
},
"werror" : {
- "type" : "string",
+ "description" : "Write error action.",
"enum" : [
"enospc",
"ignore",
"report",
"stop"
],
- "description" : "Write error action.",
"optional" : 1,
- "format_description" : "enospc|ignore|report|stop"
+ "type" : "string"
},
- "iops_rd" : {
- "type" : "integer",
- "format_description" : "iops",
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+ },
+ "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,
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "string"
},
- "rerror" : {
- "type" : "string",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "description" : "Read error action.",
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ]
+ "type" : "boolean"
},
- "trans" : {
- "type" : "string",
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
- "enum" : [
- "none",
- "lba",
- "auto"
- ]
+ "type" : "integer"
},
- "volume" : {
- "alias" : "file"
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "iops",
"type" : "integer"
},
- "mbps" : {
- "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,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "type" : "number"
+ "type" : "integer"
},
"bps_wr" : {
- "type" : "integer",
- "description" : "Maximum write speed speed in bytes per second.",
+ "description" : "Maximum write speed in bytes per second.",
"format_description" : "bps",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "iops" : {
- "type" : "integer",
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "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,
- "format_description" : "iops"
+ "type" : "integer"
},
- "discard" : {
- "type" : "string",
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
- "ignore",
- "on"
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
"optional" : 1,
- "format_description" : "ignore|on",
- "description" : "Controls whether to pass discard/trim requests to the underlying storage."
+ "type" : "string"
},
- "serial" : {
- "maxLength" : 60,
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
- "format" : "urlencoded",
- "type" : "string"
+ "type" : "integer"
},
- "mbps_max" : {
- "type" : "number",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "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,
- "format_description" : "mbps"
+ "type" : "string"
},
"file" : {
- "format_description" : "volume",
- "description" : "The drive's backing volume.",
"default_key" : 1,
+ "description" : "The drive's backing volume.",
"format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
"type" : "string"
},
- "mbps_rd_max" : {
- "optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number"
- },
- "aio" : {
- "type" : "string",
+ "format" : {
+ "description" : "The drive's backing file's data format.",
"enum" : [
- "native",
- "threads"
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
],
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
- "optional" : 1
+ "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,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
"format_description" : "iops",
+ "optional" : 1,
"type" : "integer"
},
- "size" : {
- "format" : "disk-size",
- "type" : "string",
+ "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,
- "description" : "Disk size. This is purely informational and has no effect."
+ "type" : "integer"
},
- "iops_wr_max" : {
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "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"
},
- "bps_rd" : {
- "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,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "integer"
},
- "backup" : {
+ "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,
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off",
"type" : "boolean"
},
- "model" : {
- "type" : "string",
- "format" : "urlencoded",
- "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "maxLength" : 120,
- "format_description" : "model"
+ "type" : "number"
},
- "media" : {
- "format_description" : "cdrom|disk",
+ "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"
],
- "type" : "string",
- "default" : "disk"
+ "optional" : 1,
+ "type" : "string"
},
- "detect_zeroes" : {
- "type" : "boolean",
+ "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,
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "type" : "string"
},
- "iops_wr" : {
- "type" : "integer",
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "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!"
},
- "format" : {
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "description" : "The drive's backing file's data format.",
- "format_description" : "drive format",
"type" : "string"
},
- "cyls" : {
- "format_description" : "count",
+ "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,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "type" : "integer"
+ "type" : "boolean"
},
- "mbps_wr" : {
- "type" : "number",
- "format_description" : "mbps",
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
"optional" : 1,
- "description" : "Maximum write speed speed in megabytes per second."
+ "type" : "boolean"
},
- "heads" : {
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count",
- "type" : "integer"
+ "type" : "string"
},
- "mbps_rd" : {
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "string"
},
- "secs" : {
- "type" : "integer",
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
"optional" : 1,
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count."
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
}
},
+ "optional" : 1,
"type" : "string",
- "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
- "optional" : 1
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
},
- "cpuunits" : {
+ "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" : "<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,
- "maximum" : 500000,
- "type" : "integer",
+ "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,
- "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.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 50000)"
},
- "cpulimit" : {
- "minimum" : 0,
- "maximum" : 128,
- "type" : "number",
- "default" : 0,
- "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.",
- "optional" : 1
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "args" : {
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 256,
+ "optional" : 1,
"type" : "string",
- "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
- "optional" : 1
+ "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
},
- "protection" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Sets the protection flag of the VM. This will prevent the remove operation.",
- "optional" : 1
+ "smp" : {
+ "default" : 1,
+ "description" : "The number of CPUs. Please use option -sockets instead.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "machine" : {
+ "sockets" : {
+ "default" : 1,
+ "description" : "The number of CPU sockets.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "sshkeys" : {
+ "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+ "format" : "urlencoded",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "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,
- "maxLength" : 40,
- "description" : "Specific the Qemu machine type.",
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)"
+ "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)"
},
- "reboot" : {
+ "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",
- "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
- "optional" : 1
+ "typetext" : "<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)."
},
- "hotplug" : {
- "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'.",
+ "tdf" : {
+ "default" : 0,
+ "description" : "Enable/disable time drift fix.",
"optional" : 1,
- "format" : "pve-hotplug-features",
- "default" : "network,disk,usb",
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "migrate_speed" : {
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
"optional" : 1,
- "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
- "type" : "integer",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
+ },
+ "vcpus" : {
"default" : 0,
- "minimum" : 0
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "sata[n]" : {
+ "vga" : {
+ "description" : "Configure the VGA hardware.",
"format" : {
- "secs" : {
- "type" : "integer",
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "optional" : 1
+ "memory" : {
+ "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
+ "maximum" : 512,
+ "minimum" : 4,
+ "optional" : 1,
+ "type" : "integer"
},
- "mbps_rd" : {
- "type" : "number",
- "description" : "Maximum read speed speed in megabytes per second.",
+ "type" : {
+ "default" : "std",
+ "default_key" : 1,
+ "description" : "Select the VGA type.",
+ "enum" : [
+ "cirrus",
+ "qxl",
+ "qxl2",
+ "qxl3",
+ "qxl4",
+ "none",
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3",
+ "std",
+ "virtio",
+ "vmware"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+ "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,
- "format_description" : "mbps"
+ "type" : "string"
},
- "heads" : {
- "format_description" : "count",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
"type" : "integer"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps",
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "type" : "number"
+ "type" : "boolean"
},
- "cyls" : {
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
"optional" : 1,
- "format_description" : "count",
- "type" : "integer"
+ "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" : {
- "format_description" : "drive format",
"description" : "The drive's backing file's data format.",
- "optional" : 1,
"enum" : [
"raw",
"cow",
"vmdk",
"cloop"
],
+ "optional" : 1,
"type" : "string"
},
- "detect_zeroes" : {
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
"optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean"
+ "type" : "integer"
},
- "iops_wr" : {
- "type" : "integer",
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
"format_description" : "iops",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second."
+ "type" : "integer"
},
- "media" : {
- "enum" : [
- "cdrom",
- "disk"
- ],
- "description" : "The drive's media type.",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "cdrom|disk",
- "default" : "disk",
- "type" : "string"
+ "type" : "integer"
},
- "backup" : {
- "type" : "boolean",
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making backups.",
- "optional" : 1
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "bps_rd" : {
- "type" : "integer",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "integer"
},
- "iops_wr_max" : {
- "type" : "integer",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "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,
- "format_description" : "iops"
+ "type" : "integer"
},
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format" : "disk-size",
- "type" : "string"
+ "type" : "integer"
},
- "iops_max" : {
- "type" : "integer",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
"format_description" : "iops",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "aio" : {
+ "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,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "enum" : [
- "native",
- "threads"
- ],
- "type" : "string"
+ "type" : "integer"
},
- "mbps_rd_max" : {
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "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"
},
- "file" : {
- "default_key" : 1,
- "description" : "The drive's backing volume.",
- "format_description" : "volume",
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path"
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "serial" : {
- "type" : "string",
- "format" : "urlencoded",
- "format_description" : "serial",
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "maxLength" : 60,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long."
+ "type" : "number"
},
- "discard" : {
- "type" : "string",
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "format_description" : "ignore|on",
- "enum" : [
- "ignore",
- "on"
- ]
+ "type" : "number"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "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"
},
- "iops" : {
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "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,
- "format_description" : "iops",
"type" : "integer"
},
- "mbps" : {
- "type" : "number",
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
"optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "string"
},
- "bps_wr" : {
- "type" : "integer",
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
"optional" : 1,
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps"
+ "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!"
},
- "iops_rd_max" : {
- "type" : "integer",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "string"
},
- "volume" : {
- "alias" : "file"
+ "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" : {
- "format_description" : "none|lba|auto",
- "optional" : 1,
"description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
- "type" : "string"
- },
- "rerror" : {
"optional" : 1,
- "description" : "Read error action.",
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
"type" : "string"
},
- "iops_rd" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum read I/O speed in operations per second.",
- "format_description" : "iops"
+ "volume" : {
+ "alias" : "file"
},
"werror" : {
- "type" : "string",
- "format_description" : "enospc|ignore|report|stop",
- "optional" : 1,
"description" : "Write error action.",
"enum" : [
"enospc",
"ignore",
"report",
"stop"
- ]
- },
- "cache" : {
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
],
"optional" : 1,
- "description" : "The drive's cache mode",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
"type" : "string"
- },
- "snapshot" : {
- "optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+ },
+ "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" : "<integer> (1 - N)"
+ },
+ "vmstatestorage" : {
+ "description" : "Default storage for VM state volumes/files.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "watchdog" : {
+ "description" : "Create a virtual hardware watchdog device.",
+ "format" : "pve-qm-watchdog",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
+ "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" : "<boolean>"
+ },
+ "agent" : {
+ "description" : "Enable/disable Qemu GuestAgent and its properties.",
+ "format" : {
+ "enabled" : {
+ "default" : 0,
+ "default_key" : 1,
+ "description" : "Enable/disable Qemu GuestAgent.",
"type" : "boolean"
},
- "mbps_wr_max" : {
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "bps" : {
- "type" : "integer",
+ "fstrim_cloned_disks" : {
+ "default" : 0,
+ "description" : "Run fstrim after cloning/moving a disk.",
"optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second."
+ "type" : "boolean"
}
},
+ "optional" : 1,
"type" : "string",
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
- "optional" : 1
- },
- "bootdisk" : {
- "type" : "string",
- "format" : "pve-qm-bootdisk",
- "pattern" : "(ide|sata|scsi|virtio)\\d+",
- "description" : "Enable booting from specified disk.",
- "optional" : 1
+ "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]"
},
- "kvm" : {
- "default" : 1,
- "type" : "boolean",
+ "arch" : {
+ "description" : "Virtual processor architecture. Defaults to the host.",
+ "enum" : [
+ "x86_64",
+ "aarch64"
+ ],
"optional" : 1,
- "description" : "Enable/disable KVM hardware virtualization."
+ "type" : "string"
},
- "hostpci[n]" : {
- "format" : "pve-qm-hostpci",
+ "args" : {
+ "description" : "Arbitrary arguments passed to kvm.",
+ "optional" : 1,
"type" : "string",
- "description" : "Map host pci devices. HOSTPCIDEVICE syntax is:\n\n'bus:dev.func' (hexadecimal numbers)\n\nYou can us the 'lspci' command to list existing pci devices.\n\nThe 'rombar' option determines whether or not the device's ROM will be visible in the guest's memory map (default is 'on').\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\nExperimental: user reported problems with this option.\n",
- "optional" : 1
+ "typetext" : "<string>",
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
},
- "ostype" : {
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Used to enable special optimization/features for specific\noperating systems:\n\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\nother|l24|l26|solaris ... no special behaviour\nwxp|w2k|w2k3|w2k8|wvista|win7|win8 ... use --localtime switch\n",
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "bios" : {
+ "default" : "seabios",
+ "description" : "Select BIOS implementation.",
"enum" : [
- "other",
- "wxp",
- "w2k",
- "w2k3",
- "w2k8",
- "wvista",
- "win7",
- "win8",
- "l24",
- "l26",
- "solaris"
+ "seabios",
+ "ovmf"
],
+ "optional" : 1,
"type" : "string"
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
- "description" : "Reference to unused volumes.",
- "optional" : 1
+ "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"
},
- "template" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable Template.",
- "optional" : 1
+ "bootdisk" : {
+ "description" : "Enable booting from specified disk.",
+ "format" : "pve-qm-bootdisk",
+ "optional" : 1,
+ "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "type" : "string"
},
- "watchdog" : {
+ "cdrom" : {
+ "description" : "This is an alias for option -ide2",
+ "format" : "pve-qm-ide",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-qm-watchdog",
+ "typetext" : "<volume>"
+ },
+ "cicustom" : {
+ "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
+ "format" : "pve-qm-cicustom",
"optional" : 1,
- "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" : "string",
+ "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>]"
},
- "digest" : {
+ "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",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "vcpus" : {
+ "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,
- "description" : "Number of hotplugged vcpus.",
- "type" : "integer",
- "default" : 0,
- "minimum" : 1
+ "type" : "string"
},
- "migrate_downtime" : {
- "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "ciuser" : {
+ "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
"optional" : 1,
- "type" : "number",
- "default" : 0.1,
- "minimum" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
"cores" : {
- "type" : "integer",
"default" : 1,
+ "description" : "The number of cores per socket.",
"minimum" : 1,
"optional" : 1,
- "description" : "The number of cores per socket."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "net[n]" : {
- "format" : "pve-qm-net",
+ "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"
+ },
+ "hv-vendor-id" : {
+ "description" : "The Hyper-V vendor ID. Some drivers or programs inside Windows guests need a specific ID.",
+ "format_description" : "vendor-id",
+ "optional" : 1,
+ "pattern" : "(?^:[a-zA-Z0-9]{1,12})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
"type" : "string",
+ "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>]"
+ },
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.",
+ "maximum" : 128,
+ "minimum" : 0,
"optional" : 1,
- "description" : "Specify network devices.\n\nMODEL is one of: e1000 e1000-82540em e1000-82544gc e1000-82545em i82551 i82557b i82559er ne2k_isa ne2k_pci pcnet rtl8139 virtio vmxnet3\n\nXX:XX:XX:XX:XX:XX should be an unique MAC address. This is\nautomatically generated if not specified.\n\nThe bridge parameter can be used to automatically add the interface to a bridge device. The Proxmox VE standard bridge is called 'vmbr0'.\n\nOption 'rate' is used to limit traffic bandwidth from and to this interface. It is specified as floating point number, unit is 'Megabytes per second'.\n\nIf you specify no bridge, we create a kvm 'user' (NATed) network device, which provides DHCP and DNS services. The following addresses are used:\n\n10.0.2.2 Gateway\n10.0.2.3 DNS Server\n10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n\n"
+ "type" : "number",
+ "typetext" : "<number> (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."
},
- "keyboard" : {
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
+ "cpuunits" : {
+ "default" : 1024,
+ "description" : "CPU weight for a VM.",
+ "maximum" : 262144,
+ "minimum" : 2,
"optional" : 1,
- "enum" : [
- "en-gb",
- "de-ch",
- "en-us",
- "mk",
- "fr-be",
- "de",
- "pt-br",
- "sv",
- "fr-ch",
- "no",
- "pt",
- "hu",
- "sl",
- "lt",
- "fi",
- "it",
- "nl",
- "is",
- "da",
- "fr-ca",
- "pl",
- "fr",
- "es",
- "ja",
- "tr"
- ],
- "default" : "en-us",
- "type" : "string"
+ "type" : "integer",
+ "typetext" : "<integer> (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."
},
- "freeze" : {
- "type" : "boolean",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "description" : {
+ "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
"optional" : 1,
- "description" : "Freeze CPU at startup (use 'c' monitor command to start execution)."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "numa[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,
- "description" : "numa topology",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "efidisk0" : {
+ "description" : "Configure a Disk for storing EFI vars",
"format" : {
- "hostnodes" : {
- "format_description" : "id[-id];...",
- "description" : "host numa nodes to use",
+ "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,
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
"type" : "string"
},
- "policy" : {
- "description" : "numa allocation policy.",
- "format_description" : "preferred|bind|interleave",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "enum" : [
- "preferred",
- "bind",
- "interleave"
- ],
"type" : "string"
},
- "memory" : {
- "type" : "number",
- "description" : "Amount of memory this numa node provides.",
- "format_description" : "mb",
- "optional" : 1
- },
- "cpus" : {
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "description" : "CPUs accessing this numa node.",
- "format_description" : "id[-id];...",
- "type" : "string"
+ "volume" : {
+ "alias" : "file"
}
},
- "type" : "string"
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,format=<enum>] [,size=<DiskSize>]"
},
"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",
- "optional" : 1,
- "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."
+ "typetext" : "<boolean>"
},
- "cpu" : {
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
"optional" : 1,
- "description" : "Emulated CPU type.",
- "format" : {
- "cputype" : {
- "enum" : [
- "486",
- "athlon",
- "pentium",
- "pentium2",
- "pentium3",
- "coreduo",
- "core2duo",
- "kvm32",
- "kvm64",
- "qemu32",
- "qemu64",
- "phenom",
- "Conroe",
- "Penryn",
- "Nehalem",
- "Westmere",
- "SandyBridge",
- "IvyBridge",
- "Haswell",
- "Haswell-noTSX",
- "Broadwell",
- "Broadwell-noTSX",
- "Opteron_G1",
- "Opteron_G2",
- "Opteron_G3",
- "Opteron_G4",
- "Opteron_G5",
- "host"
- ],
- "default_key" : 1,
- "format_description" : "cputype",
- "description" : "Emulated CPU type.",
- "default" : "kvm64",
- "type" : "string"
- },
- "hidden" : {
- "optional" : 1,
- "description" : "Do not identify as a KVM virtual machine.",
- "type" : "boolean",
- "default" : 0
- }
- },
- "type" : "string"
- },
- "autostart" : {
"type" : "boolean",
- "default" : 0,
+ "typetext" : "<boolean>"
+ },
+ "hookscript" : {
+ "description" : "Script that will be executed during various steps in the vms lifetime.",
+ "format" : "pve-volume-id",
"optional" : 1,
- "description" : "Automatic restart after crash (currently ignored)."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vga" : {
+ "hostpci[n]" : {
+ "description" : "Map host PCI devices into guest.",
+ "format" : "pve-qm-hostpci",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,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,
- "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.",
- "enum" : [
- "std",
- "cirrus",
- "vmware",
- "qxl",
- "serial0",
- "serial1",
- "serial2",
- "serial3",
- "qxl2",
- "qxl3",
- "qxl4"
- ]
+ "type" : "string",
+ "typetext" : "<string>"
},
- "startdate" : {
- "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
+ "hugepages" : {
+ "description" : "Enable/disable hugepages memory.",
+ "enum" : [
+ "any",
+ "2",
+ "1024"
+ ],
"optional" : 1,
- "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'.",
- "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)",
- "default" : "now",
"type" : "string"
},
- "acpi" : {
- "type" : "boolean",
- "default" : 1,
- "description" : "Enable/disable ACPI.",
- "optional" : 1
- },
- "scsi[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"
+ },
+ "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",
"unsafe",
"directsync"
],
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
"optional" : 1,
- "type" : "string"
+ "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"
},
- "snapshot" : {
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off",
- "type" : "boolean"
+ "type" : "number"
},
- "bps" : {
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
- "type" : "integer"
+ "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,
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
"type" : "number"
},
- "iops_rd" : {
- "type" : "integer",
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second.",
- "optional" : 1
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "werror" : {
- "description" : "Write error action.",
- "format_description" : "enospc|ignore|report|stop",
+ "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" : [
- "enospc",
"ignore",
"report",
"stop"
],
+ "optional" : 1,
"type" : "string"
},
- "iops_rd_max" : {
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops",
"type" : "integer"
},
- "volume" : {
- "alias" : "file"
- },
- "trans" : {
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
"optional" : 1,
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
"type" : "string"
},
- "iops" : {
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
"optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops",
- "type" : "integer"
+ "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!"
},
- "mbps" : {
- "type" : "number",
- "description" : "Maximum r/w speed speed in megabytes per second.",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "string"
},
- "bps_wr" : {
- "type" : "integer",
- "format_description" : "bps",
+ "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,
- "description" : "Maximum write speed speed in bytes per second."
+ "type" : "boolean"
},
- "file" : {
- "format" : "pve-volume-id-or-qm-path",
- "type" : "string",
- "format_description" : "volume",
- "description" : "The drive's backing volume.",
- "default_key" : 1
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "discard" : {
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
- "ignore",
- "on"
+ "none",
+ "lba",
+ "auto"
],
"optional" : 1,
- "format_description" : "ignore|on",
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"type" : "string"
},
- "serial" : {
- "format_description" : "serial",
- "optional" : 1,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "maxLength" : 60,
- "type" : "string",
- "format" : "urlencoded"
+ "volume" : {
+ "alias" : "file"
},
- "mbps_max" : {
- "type" : "number",
- "format_description" : "mbps",
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second."
+ "type" : "string"
},
- "iops_max" : {
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops",
- "type" : "integer"
- },
- "aio" : {
- "type" : "string",
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+ },
+ "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=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
+ },
+ "ivshmem" : {
+ "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
+ "format" : {
+ "name" : {
+ "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
+ "format_description" : "string",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "enum" : [
- "native",
- "threads"
- ]
- },
- "queues" : {
- "type" : "integer",
- "minimum" : 2,
- "format_description" : "nbqueues",
- "description" : "Number of queues.",
- "optional" : 1
+ "pattern" : "[a-zA-Z0-9\\-]+",
+ "type" : "string"
},
- "mbps_rd_max" : {
- "type" : "number",
+ "size" : {
+ "description" : "The size of the file in MB.",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "size=<integer> [,name=<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",
+ "typetext" : "<boolean>"
+ },
+ "localtime" : {
+ "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "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" : "<integer> (16 - N)"
+ },
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (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" : "<integer> (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" : "<string>"
+ },
+ "nameserver" : {
+ "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
+ "format" : "address-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second."
+ "type" : "string"
},
- "iops_wr_max" : {
- "format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "optional" : 1,
- "type" : "integer"
+ "e1000" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "iothread" : {
- "type" : "boolean",
- "description" : "Whether to use iothreads for this drive",
- "optional" : 1,
- "format_description" : "off|on"
+ "e1000-82540em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
- "optional" : 1,
- "type" : "string",
- "format" : "disk-size"
+ "e1000-82544gc" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "bps_rd" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "e1000-82545em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "backup" : {
- "description" : "Whether the drive should be included when making backups.",
+ "firewall" : {
+ "description" : "Whether this interface should be protected by the firewall.",
"optional" : 1,
- "format_description" : "on|off",
"type" : "boolean"
},
- "detect_zeroes" : {
- "optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean"
+ "i82551" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "iops_wr" : {
- "type" : "integer",
+ "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,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "boolean"
},
- "media" : {
+ "macaddr" : {
+ "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
"optional" : 1,
- "description" : "The drive's media type.",
- "format_description" : "cdrom|disk",
- "enum" : [
- "cdrom",
- "disk"
- ],
"type" : "string",
- "default" : "disk"
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
},
- "format" : {
+ "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" : [
- "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"
],
- "description" : "The drive's backing file's data format.",
- "optional" : 1,
- "format_description" : "drive format",
"type" : "string"
},
- "cyls" : {
- "format_description" : "count",
+ "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,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"type" : "integer"
},
- "mbps_wr" : {
- "type" : "number",
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 0,
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum write speed speed in megabytes per second."
+ "type" : "number"
},
- "mbps_rd" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "rtl8139" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "heads" : {
- "type" : "integer",
- "format_description" : "count",
+ "tag" : {
+ "description" : "VLAN tag to apply to packets on this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count."
+ "type" : "integer"
},
- "secs" : {
+ "trunks" : {
+ "description" : "VLAN trunks to pass through this interface.",
+ "format_description" : "vlanid[;vlanid...]",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count",
- "type" : "integer"
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "virtio" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "vmxnet3" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
}
},
- "type" : "string",
- "optional" : 1,
- "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13)."
- },
- "shares" : {
- "type" : "integer",
- "default" : 1000,
- "maximum" : 50000,
- "minimum" : 0,
- "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",
- "optional" : 1
- },
- "smbios1" : {
"optional" : 1,
- "maxLength" : 256,
- "description" : "Specify SMBIOS type 1 fields.",
"type" : "string",
- "format" : "pve-qm-smbios1"
+ "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
},
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-configid-list"
+ "typetext" : "<string>"
},
- "memory" : {
+ "numa" : {
+ "default" : 0,
+ "description" : "Enable/disable NUMA.",
"optional" : 1,
- "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
- "minimum" : 16,
- "default" : 512,
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "description" : {
- "type" : "string",
+ "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,
- "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file."
+ "type" : "string",
+ "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
},
"onboot" : {
- "optional" : 1,
+ "default" : 0,
"description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
"type" : "boolean",
- "default" : 0
- },
- "localtime" : {
- "type" : "boolean",
- "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "boot" : {
- "default" : "cdn",
- "type" : "string",
- "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+ "ostype" : {
+ "description" : "Specify guest operating system.",
+ "enum" : [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "l24",
+ "l26",
+ "solaris"
+ ],
"optional" : 1,
- "pattern" : "[acdn]{1,4}"
+ "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"
},
- "startup" : {
+ "parallel[n]" : {
+ "description" : "Map host parallel devices (n is 0 to 2).",
"optional" : 1,
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
- "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",
- "type" : "string"
- },
- "skiplock" : {
- "type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1
- },
- "scsihw" : {
- "default" : "lsi",
+ "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
"type" : "string",
- "description" : "scsi controller model",
- "optional" : 1,
- "enum" : [
- "lsi",
- "lsi53c810",
- "virtio-scsi-pci",
- "virtio-scsi-single",
- "megasas",
- "pvscsi"
- ]
+ "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"
},
- "name" : {
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
"optional" : 1,
- "description" : "Set a name for the VM. Only used on the configuration web interface.",
- "format" : "dns-name",
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "balloon" : {
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "reboot" : {
+ "default" : 1,
+ "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"revert" : {
"description" : "Revert a pending change.",
+ "format" : "pve-configid-list",
"optional" : 1,
"type" : "string",
- "format" : "pve-configid-list"
- }
- },
- "additionalProperties" : 0
- },
- "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT",
- "name" : "update_vm"
- },
- "POST" : {
- "parameters" : {
- "properties" : {
- "tdf" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable time drift fix.",
- "optional" : 1
- },
- "cdrom" : {
- "description" : "This is an alias for option -ide2",
- "typetext" : "volume",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-qm-drive"
- },
- "sockets" : {
- "description" : "The number of CPU sockets.",
- "optional" : 1,
- "minimum" : 1,
- "type" : "integer",
- "default" : 1
- },
- "serial[n]" : {
- "description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0), or create a unix socket on the host 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\nExperimental: user reported problems with this option.\n",
- "optional" : 1,
- "pattern" : "(/dev/.+|socket)",
- "type" : "string"
+ "typetext" : "<string>"
},
- "ide[n]" : {
- "type" : "string",
+ "sata[n]" : {
+ "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
"format" : {
- "cache" : {
- "type" : "string",
- "optional" : 1,
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
+ "aio" : {
+ "description" : "AIO type to use.",
"enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
+ "native",
+ "threads"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "snapshot" : {
- "type" : "boolean",
+ "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,
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off"
+ "type" : "integer"
},
- "mbps_wr_max" : {
- "type" : "number",
- "format_description" : "mbps",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second."
+ "type" : "integer"
},
- "bps" : {
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
"format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
"optional" : 1,
"type" : "integer"
},
- "trans" : {
- "type" : "string",
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
+ "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,
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode."
+ "type" : "integer"
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "iops",
"type" : "integer"
},
- "volume" : {
- "alias" : "file"
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
},
- "rerror" : {
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Read error action.",
- "format_description" : "ignore|report|stop",
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
- "ignore",
- "report",
- "stop"
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
+ "optional" : 1,
"type" : "string"
},
- "iops_rd" : {
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second.",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
"type" : "integer"
},
- "werror" : {
- "description" : "Write error action.",
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"enum" : [
- "enospc",
"ignore",
- "report",
- "stop"
+ "on"
],
+ "optional" : 1,
"type" : "string"
},
- "discard" : {
+ "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" : [
- "ignore",
- "on"
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
],
"optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "format_description" : "ignore|on",
"type" : "string"
},
- "serial" : {
- "format" : "urlencoded",
- "type" : "string",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
"optional" : 1,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
- "maxLength" : 60
+ "type" : "integer"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "format_description" : "mbps",
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "number"
+ "type" : "integer"
},
- "file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "default_key" : 1,
- "format_description" : "volume",
- "description" : "The drive's backing volume."
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
},
- "bps_wr" : {
- "description" : "Maximum write speed speed in bytes per second.",
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "bps",
"type" : "integer"
},
- "mbps" : {
- "type" : "number",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second."
+ "type" : "integer"
},
- "iops" : {
+ "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,
- "description" : "Maximum r/w I/O speed in operations per second.",
"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",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
"optional" : 1,
"type" : "integer"
},
- "size" : {
- "type" : "string",
- "format" : "disk-size",
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
+ "type" : "integer"
},
- "iops_max" : {
- "type" : "integer",
- "format_description" : "iops",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "optional" : 1
+ "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" : {
- "type" : "number",
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
"format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum unthrottled read pool speed in megabytes per second."
+ "type" : "number"
},
- "aio" : {
- "type" : "string",
+ "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" : [
- "native",
- "threads"
+ "cdrom",
+ "disk"
],
"optional" : 1,
- "description" : "AIO type to use.",
- "format_description" : "native|threads"
+ "type" : "string"
},
- "backup" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
"optional" : 1,
- "format_description" : "on|off"
- },
- "bps_rd" : {
- "type" : "integer",
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "optional" : 1
+ "type" : "boolean"
},
- "format" : {
- "type" : "string",
+ "rerror" : {
+ "description" : "Read error action.",
"enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
+ "ignore",
+ "report",
+ "stop"
],
"optional" : 1,
- "format_description" : "drive format",
- "description" : "The drive's backing file's data format."
+ "type" : "string"
},
- "iops_wr" : {
- "description" : "Maximum write I/O speed in operations per second.",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"optional" : 1,
- "format_description" : "iops",
"type" : "integer"
},
- "detect_zeroes" : {
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "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" : "boolean"
+ "type" : "string"
},
- "model" : {
- "format" : "urlencoded",
- "type" : "string",
- "format_description" : "model",
- "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
- "maxLength" : 120,
- "optional" : 1
+ "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!"
},
- "media" : {
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "type" : "string",
- "default" : "disk"
+ "type" : "string"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps",
+ "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" : "number"
+ "type" : "boolean"
},
- "cyls" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
"optional" : 1,
- "format_description" : "count"
+ "type" : "boolean"
},
- "secs" : {
- "type" : "integer",
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count"
+ "type" : "string"
},
- "heads" : {
- "type" : "integer",
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "optional" : 1
+ "volume" : {
+ "alias" : "file"
},
- "mbps_rd" : {
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
}
},
- "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
- "optional" : 1
- },
- "cpuunits" : {
- "optional" : 1,
- "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.",
- "default" : 1000,
- "maximum" : 500000,
- "type" : "integer",
- "minimum" : 0
- },
- "cpulimit" : {
- "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.",
"optional" : 1,
- "default" : 0,
- "type" : "number",
- "maximum" : 128,
- "minimum" : 0
- },
- "lock" : {
"type" : "string",
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ],
- "optional" : 1,
- "description" : "Lock/unlock the VM."
- },
- "numa" : {
- "type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "Enable/disable NUMA."
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
},
- "virtio[n]" : {
+ "scsi[n]" : {
+ "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
"format" : {
- "bps_rd" : {
- "type" : "integer",
- "format_description" : "bps",
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second."
+ "type" : "string"
},
"backup" : {
"description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "format_description" : "on|off",
"type" : "boolean"
},
- "detect_zeroes" : {
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "iops_wr" : {
- "format_description" : "iops",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
"type" : "integer"
},
- "media" : {
- "default" : "disk",
- "type" : "string",
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
+ "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" : [
- "cdrom",
- "disk"
- ]
+ "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",
"vmdk",
"cloop"
],
- "description" : "The drive's backing file's data format.",
"optional" : 1,
- "format_description" : "drive format",
"type" : "string"
},
- "cyls" : {
- "type" : "integer",
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "optional" : 1
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "integer"
},
- "mbps_rd" : {
- "type" : "number",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second."
+ "type" : "integer"
},
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count",
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
"type" : "integer"
},
- "secs" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "count"
+ "type" : "integer"
},
- "snapshot" : {
- "type" : "boolean",
+ "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,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots."
+ "type" : "integer"
},
- "cache" : {
- "type" : "string",
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
+ "type" : "integer"
},
- "mbps_wr_max" : {
- "type" : "number",
- "format_description" : "mbps",
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second."
+ "type" : "integer"
},
- "bps" : {
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
+ "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_rd" : {
- "type" : "integer",
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "integer"
},
- "werror" : {
- "type" : "string",
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
"optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
- "description" : "Write error action.",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ]
+ "type" : "boolean"
},
- "volume" : {
- "alias" : "file"
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "iops_rd_max" : {
- "type" : "integer",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "number"
},
- "trans" : {
+ "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" : [
- "none",
- "lba",
- "auto"
+ "cdrom",
+ "disk"
],
"optional" : 1,
- "description" : "Force disk geometry bios translation mode.",
- "format_description" : "none|lba|auto",
"type" : "string"
},
- "rerror" : {
+ "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.",
- "format_description" : "ignore|report|stop",
"enum" : [
"ignore",
"report",
"stop"
],
- "type" : "string"
- },
- "iops" : {
- "type" : "integer",
"optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "string"
},
- "mbps" : {
- "description" : "Maximum r/w speed speed in megabytes per second.",
+ "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,
- "format_description" : "mbps",
- "type" : "number"
- },
- "bps_wr" : {
- "type" : "integer",
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps",
- "optional" : 1
- },
- "file" : {
- "description" : "The drive's backing volume.",
- "format_description" : "volume",
- "default_key" : 1,
- "format" : "pve-volume-id-or-qm-path",
- "type" : "string"
+ "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",
- "type" : "string",
- "optional" : 1,
- "maxLength" : 60,
"format_description" : "serial",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long."
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
},
- "mbps_max" : {
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
"optional" : 1,
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
+ "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!"
},
- "discard" : {
- "type" : "string",
- "format_description" : "ignore|on",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "enum" : [
- "ignore",
- "on"
- ]
+ "type" : "string"
},
- "iops_max" : {
+ "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,
- "format_description" : "iops",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "type" : "integer"
+ "type" : "boolean"
},
- "aio" : {
- "description" : "AIO type to use.",
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
"optional" : 1,
- "format_description" : "native|threads",
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
- "native",
- "threads"
+ "none",
+ "lba",
+ "auto"
],
- "type" : "string"
- },
- "mbps_rd_max" : {
- "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number"
+ "type" : "string"
},
- "iops_wr_max" : {
- "optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "format_description" : "iops",
- "type" : "integer"
+ "volume" : {
+ "alias" : "file"
},
- "iothread" : {
- "format_description" : "off|on",
- "description" : "Whether to use iothreads for this drive",
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "type" : "boolean"
+ "type" : "string"
},
- "size" : {
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect.",
- "type" : "string",
- "format" : "disk-size"
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
}
},
+ "optional" : 1,
"type" : "string",
- "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
- "optional" : 1
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
},
- "bios" : {
- "type" : "string",
- "default" : "seabios",
+ "scsihw" : {
+ "default" : "lsi",
+ "description" : "SCSI controller model",
"enum" : [
- "seabios",
- "ovmf"
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
],
"optional" : 1,
- "description" : "Select BIOS implementation."
+ "type" : "string"
},
- "agent" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable Qemu GuestAgent.",
- "optional" : 1
+ "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" : "<string>"
},
- "parallel[n]" : {
- "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3)",
"optional" : 1,
- "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\nExperimental: user reported problems with this option.\n",
- "type" : "string"
+ "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"
},
- "tablet" : {
- "type" : "boolean",
- "default" : 1,
+ "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,
- "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)."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 50000)"
},
- "usb[n]" : {
- "format" : {
- "host" : {
- "format" : "pve-qm-usb-device",
- "type" : "string",
- "format_description" : "HOSTUSBDEVICE|spice",
- "description" : "The Host USB device or port or the value spice",
- "default_key" : 1
- },
- "usb3" : {
- "optional" : 1,
- "description" : "Specifies whether if given host option is a USB3 device or port",
- "format_description" : "yes|no",
- "type" : "boolean"
- }
- },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 256,
+ "optional" : 1,
"type" : "string",
- "description" : "Configure an USB device (n is 0 to 4). This can be used to\npass-through usb devices to the guest. 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\nThe 'usb3' option determines whether the device is a USB3 device or not (this does currently not work reliably with spice redirection and is then ignored).\n\n",
- "optional" : 1
+ "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
},
"smp" : {
- "type" : "integer",
"default" : 1,
- "minimum" : 1,
"description" : "The number of CPUs. Please use option -sockets instead.",
- "optional" : 1
- },
- "hostpci[n]" : {
- "format" : "pve-qm-hostpci",
- "type" : "string",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Map host pci devices. HOSTPCIDEVICE syntax is:\n\n'bus:dev.func' (hexadecimal numbers)\n\nYou can us the 'lspci' command to list existing pci devices.\n\nThe 'rombar' option determines whether or not the device's ROM will be visible in the guest's memory map (default is 'on').\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\nExperimental: user reported problems with this option.\n"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "kvm" : {
- "type" : "boolean",
+ "sockets" : {
"default" : 1,
+ "description" : "The number of CPU sockets.",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Enable/disable KVM hardware virtualization."
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "ostype" : {
+ "sshkeys" : {
+ "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+ "format" : "urlencoded",
+ "optional" : 1,
"type" : "string",
- "enum" : [
- "other",
- "wxp",
- "w2k",
- "w2k3",
- "w2k8",
- "wvista",
- "win7",
- "win8",
- "l24",
- "l26",
- "solaris"
- ],
- "description" : "Used to enable special optimization/features for specific\noperating systems:\n\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\nother|l24|l26|solaris ... no special behaviour\nwxp|w2k|w2k3|w2k8|wvista|win7|win8 ... use --localtime switch\n",
- "optional" : 1
+ "typetext" : "<string>"
},
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
+ "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,
- "description" : "Reference to unused volumes."
- },
- "template" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Enable/disable Template.",
- "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)"
},
- "watchdog" : {
- "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)",
+ "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",
- "format" : "pve-qm-watchdog"
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
},
- "args" : {
- "type" : "string",
- "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
- "optional" : 1
+ "tablet" : {
+ "default" : 1,
+ "description" : "Enable/disable the USB tablet device.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<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)."
},
- "protection" : {
- "description" : "Sets the protection flag of the VM. This will prevent the remove operation.",
+ "tdf" : {
+ "default" : 0,
+ "description" : "Enable/disable time drift fix.",
"optional" : 1,
"type" : "boolean",
- "default" : 0
+ "typetext" : "<boolean>"
},
- "reboot" : {
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
"optional" : 1,
- "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
"type" : "boolean",
- "default" : 1
+ "typetext" : "<boolean>"
},
- "hotplug" : {
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : "pve-volume-id",
"optional" : 1,
- "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'.",
"type" : "string",
- "default" : "network,disk,usb",
- "format" : "pve-hotplug-features"
+ "typetext" : "<string>"
},
- "machine" : {
- "description" : "Specific the Qemu machine type.",
+ "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,
- "maxLength" : 40,
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
},
- "migrate_speed" : {
- "type" : "integer",
+ "vcpus" : {
"default" : 0,
- "minimum" : 0,
- "optional" : 1,
- "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit."
- },
- "background_delay" : {
- "type" : "integer",
- "maximum" : 30,
+ "description" : "Number of hotplugged vcpus.",
"minimum" : 1,
"optional" : 1,
- "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "sata[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",
+ "none",
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3",
+ "std",
+ "virtio",
+ "vmware"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
"type" : "string",
+ "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+ "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" : {
- "snapshot" : {
- "type" : "boolean",
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
- "optional" : 1
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "cache" : {
- "type" : "string",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "description" : "The drive's cache mode",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
+ "type" : "boolean"
},
"bps" : {
- "description" : "Maximum r/w speed speed in bytes per second.",
+ "description" : "Maximum r/w speed in bytes per second.",
"format_description" : "bps",
"optional" : 1,
"type" : "integer"
},
- "mbps_wr_max" : {
- "type" : "number",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled write pool speed in megabytes per second."
+ "type" : "integer"
},
- "iops_rd" : {
- "type" : "integer",
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "integer"
},
- "werror" : {
- "description" : "Write error action.",
+ "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,
- "format_description" : "enospc|ignore|report|stop",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string"
+ "type" : "integer"
},
- "volume" : {
- "alias" : "file"
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "iops_rd_max" : {
- "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,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "integer"
},
- "trans" : {
- "type" : "string",
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
"none",
- "lba",
- "auto"
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
- "optional" : 1
- },
- "rerror" : {
- "type" : "string",
- "description" : "Read error action.",
"optional" : 1,
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ]
+ "type" : "string"
},
- "iops" : {
- "type" : "integer",
- "format_description" : "iops",
- "description" : "Maximum r/w I/O speed in operations per second.",
- "optional" : 1
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
},
- "bps_wr" : {
- "type" : "integer",
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps",
- "optional" : 1
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "mbps" : {
- "type" : "number",
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps",
- "optional" : 1
+ "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" : "pve-volume-id-or-qm-path"
+ "type" : "string"
},
- "serial" : {
- "maxLength" : 60,
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
"optional" : 1,
- "format_description" : "serial",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format" : "urlencoded",
"type" : "string"
},
- "mbps_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
"optional" : 1,
- "type" : "number"
+ "type" : "integer"
},
- "discard" : {
- "enum" : [
- "ignore",
- "on"
- ],
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "format_description" : "ignore|on",
- "type" : "string"
+ "type" : "integer"
},
"iops_max" : {
- "type" : "integer",
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "integer"
},
- "aio" : {
- "type" : "string",
- "enum" : [
- "native",
- "threads"
- ],
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use."
+ "type" : "integer"
},
- "mbps_rd_max" : {
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number"
+ "type" : "integer"
},
- "iops_wr_max" : {
+ "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",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "optional" : 1,
"type" : "integer"
},
- "size" : {
- "type" : "string",
- "format" : "disk-size",
+ "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,
- "description" : "Disk size. This is purely informational and has no effect."
+ "type" : "integer"
},
- "bps_rd" : {
- "description" : "Maximum read speed speed in bytes per second.",
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "bps",
"type" : "integer"
},
- "backup" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
"optional" : 1,
- "format_description" : "on|off"
+ "type" : "boolean"
},
- "detect_zeroes" : {
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "iops_wr" : {
- "type" : "integer",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "number"
},
- "media" : {
- "format_description" : "cdrom|disk",
+ "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"
],
- "default" : "disk",
+ "optional" : 1,
"type" : "string"
},
- "format" : {
- "description" : "The drive's backing file's data format.",
- "format_description" : "drive format",
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
"optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
"enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
+ "ignore",
+ "report",
+ "stop"
],
+ "optional" : 1,
"type" : "string"
},
- "cyls" : {
- "format_description" : "count",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"type" : "integer"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "string"
},
- "mbps_rd" : {
- "type" : "number",
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second."
+ "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"
},
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
"optional" : 1,
- "format_description" : "count",
- "type" : "integer"
+ "type" : "string"
},
- "secs" : {
- "type" : "integer",
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count"
+ "type" : "string"
}
},
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
},
- "bootdisk" : {
+ "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",
- "format" : "pve-qm-bootdisk",
- "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "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" : "<integer> (1 - N)"
+ },
+ "vmstatestorage" : {
+ "description" : "Default storage for VM state volumes/files.",
+ "format" : "pve-storage-id",
"optional" : 1,
- "description" : "Enable booting from specified disk."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "migrate_downtime" : {
- "minimum" : 0,
- "type" : "number",
- "default" : 0.1,
- "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
- "optional" : 1
+ "watchdog" : {
+ "description" : "Create a virtual hardware watchdog device.",
+ "format" : "pve-qm-watchdog",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
+ "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" : "<string>"
},
- "cores" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "default" : 1,
+ "typetext" : "<integer> (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,
- "description" : "The number of cores per socket."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "net[n]" : {
- "description" : "Specify network devices.\n\nMODEL is one of: e1000 e1000-82540em e1000-82544gc e1000-82545em i82551 i82557b i82559er ne2k_isa ne2k_pci pcnet rtl8139 virtio vmxnet3\n\nXX:XX:XX:XX:XX:XX should be an unique MAC address. This is\nautomatically generated if not specified.\n\nThe bridge parameter can be used to automatically add the interface to a bridge device. The Proxmox VE standard bridge is called 'vmbr0'.\n\nOption 'rate' is used to limit traffic bandwidth from and to this interface. It is specified as floating point number, unit is 'Megabytes per second'.\n\nIf you specify no bridge, we create a kvm 'user' (NATed) network device, which provides DHCP and DNS services. The following addresses are used:\n\n10.0.2.2 Gateway\n10.0.2.3 DNS Server\n10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n\n",
+ "idlist" : {
+ "description" : "A list of disk IDs you want to delete.",
+ "format" : "pve-configid-list",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "websocket" : {
+ "description" : "starts websockify instead of vncproxy",
"optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "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",
- "format" : "pve-qm-net"
- },
- "freeze" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Freeze CPU at startup (use 'c' monitor command to start execution)."
+ "typetext" : "<string>"
},
- "keyboard" : {
- "optional" : 1,
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
+ "serial" : {
+ "description" : "opens a serial terminal (defaults to display)",
"enum" : [
- "en-gb",
- "de-ch",
- "en-us",
- "mk",
- "fr-be",
- "de",
- "pt-br",
- "sv",
- "fr-ch",
- "no",
- "pt",
- "hu",
- "sl",
- "lt",
- "fi",
- "it",
- "nl",
- "is",
- "da",
- "fr-ca",
- "pl",
- "fr",
- "es",
- "ja",
- "tr"
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3"
],
- "default" : "en-us",
- "type" : "string"
- },
- "digest" : {
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
"type" : "string"
},
- "vcpus" : {
- "description" : "Number of hotplugged vcpus.",
- "optional" : 1,
- "default" : 0,
- "type" : "integer",
- "minimum" : 1
- },
- "memory" : {
- "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
- "optional" : 1,
- "minimum" : 16,
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "default" : 512
- },
- "localtime" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS."
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "port" : {
+ "type" : "integer"
},
- "onboot" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Specifies whether a VM will be started during system bootup.",
- "optional" : 1
+ "ticket" : {
+ "type" : "string"
},
- "description" : {
- "optional" : 1,
- "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
+ "upid" : {
"type" : "string"
},
- "startup" : {
- "format" : "pve-startup-order",
+ "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" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
- "optional" : 1,
- "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."
+ "typetext" : "<string>"
},
- "boot" : {
- "pattern" : "[acdn]{1,4}",
- "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
- "optional" : 1,
- "default" : "cdn",
- "type" : "string"
+ "port" : {
+ "description" : "Port number returned by previous vncproxy call.",
+ "maximum" : 5999,
+ "minimum" : 5900,
+ "type" : "integer",
+ "typetext" : "<integer> (5900 - 5999)"
},
- "skiplock" : {
- "optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option.",
- "type" : "boolean"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "name" : {
- "optional" : 1,
- "description" : "Set a name for the VM. Only used on the configuration web interface.",
- "format" : "dns-name",
+ "vncticket" : {
+ "description" : "Ticket from previous call to vncproxy.",
+ "maxLength" : 512,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "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" : "<string>"
},
- "scsihw" : {
- "enum" : [
- "lsi",
- "lsi53c810",
- "virtio-scsi-pci",
- "virtio-scsi-single",
- "megasas",
- "pvscsi"
- ],
+ "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,
- "description" : "scsi controller model",
"type" : "string",
- "default" : "lsi"
- },
- "balloon" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
- "optional" : 1
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "minimum" : 1,
"format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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"
},
- "revert" : {
- "optional" : 1,
- "description" : "Revert a pending change.",
- "format" : "pve-configid-list",
+ "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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "force" : {
- "requires" : "delete",
- "type" : "boolean",
- "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
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "numa[n]" : {
- "description" : "numa topology",
- "optional" : 1,
- "type" : "string",
- "format" : {
- "cpus" : {
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "description" : "CPUs accessing this numa node.",
- "format_description" : "id[-id];...",
- "type" : "string"
- },
- "memory" : {
- "type" : "number",
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "agent" : {
+ "description" : "Qemu GuestAgent enabled in config.",
"optional" : 1,
- "description" : "Amount of memory this numa node provides.",
- "format_description" : "mb"
+ "type" : "boolean"
},
- "hostnodes" : {
- "type" : "string",
- "description" : "host numa nodes to use",
- "format_description" : "id[-id];...",
+ "cpus" : {
+ "description" : "Maximum usable CPUs.",
"optional" : 1,
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)"
+ "type" : "number"
},
- "policy" : {
- "enum" : [
- "preferred",
- "bind",
- "interleave"
- ],
+ "ha" : {
+ "description" : "HA manager service status.",
+ "type" : "object"
+ },
+ "lock" : {
+ "description" : "The current config lock, if any.",
"optional" : 1,
- "format_description" : "preferred|bind|interleave",
- "description" : "numa allocation policy.",
"type" : "string"
- }
- }
- },
- "cpu" : {
- "optional" : 1,
- "description" : "Emulated CPU type.",
- "type" : "string",
- "format" : {
- "cputype" : {
- "type" : "string",
- "default" : "kvm64",
- "enum" : [
- "486",
- "athlon",
- "pentium",
- "pentium2",
- "pentium3",
- "coreduo",
- "core2duo",
- "kvm32",
- "kvm64",
- "qemu32",
- "qemu64",
- "phenom",
- "Conroe",
- "Penryn",
- "Nehalem",
- "Westmere",
- "SandyBridge",
- "IvyBridge",
- "Haswell",
- "Haswell-noTSX",
- "Broadwell",
- "Broadwell-noTSX",
- "Opteron_G1",
- "Opteron_G2",
- "Opteron_G3",
- "Opteron_G4",
- "Opteron_G5",
- "host"
- ],
- "format_description" : "cputype",
- "description" : "Emulated CPU type.",
- "default_key" : 1
},
- "hidden" : {
- "optional" : 1,
- "description" : "Do not identify as a KVM virtual machine.",
- "type" : "boolean",
- "default" : 0
- }
- }
- },
- "autostart" : {
- "optional" : 1,
- "description" : "Automatic restart after crash (currently ignored).",
- "type" : "boolean",
- "default" : 0
- },
- "vga" : {
- "type" : "string",
- "enum" : [
- "std",
- "cirrus",
- "vmware",
- "qxl",
- "serial0",
- "serial1",
- "serial2",
- "serial3",
- "qxl2",
- "qxl3",
- "qxl4"
- ],
- "optional" : 1,
- "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."
- },
- "startdate" : {
- "default" : "now",
- "type" : "string",
- "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'.",
- "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)",
- "optional" : 1,
- "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)"
- },
- "acpi" : {
- "optional" : 1,
- "description" : "Enable/disable ACPI.",
- "type" : "boolean",
- "default" : 1
- },
- "scsi[n]" : {
- "format" : {
- "secs" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "maxdisk" : {
+ "description" : "Root disk size in bytes.",
"optional" : 1,
+ "renderer" : "bytes",
"type" : "integer"
},
- "heads" : {
- "type" : "integer",
+ "maxmem" : {
+ "description" : "Maximum memory in bytes.",
"optional" : 1,
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific head count."
+ "renderer" : "bytes",
+ "type" : "integer"
},
- "mbps_rd" : {
+ "name" : {
+ "description" : "VM name.",
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "string"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
+ "pid" : {
+ "description" : "PID of running qemu process.",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "integer"
},
- "cyls" : {
- "type" : "integer",
+ "qmpstatus" : {
+ "description" : "Qemu QMP agent status.",
"optional" : 1,
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific cylinder count."
+ "type" : "string"
},
- "format" : {
- "type" : "string",
+ "spice" : {
+ "description" : "Qemu VGA configuration supports spice.",
"optional" : 1,
- "format_description" : "drive format",
- "description" : "The drive's backing file's data format.",
+ "type" : "boolean"
+ },
+ "status" : {
+ "description" : "Qemu process status.",
"enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ]
+ "stopped",
+ "running"
+ ],
+ "type" : "string"
},
- "iops_wr" : {
- "format_description" : "iops",
+ "uptime" : {
+ "description" : "Uptime.",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
+ "renderer" : "duration",
"type" : "integer"
},
- "detect_zeroes" : {
- "type" : "boolean",
+ "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,
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)",
+ "type" : "string"
},
- "media" : {
+ "migratedfrom" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "optional" : 1,
"type" : "string",
- "default" : "disk",
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
+ "typetext" : "<string>"
+ },
+ "migration_network" : {
+ "description" : "CIDR of the (sub) network that is used for migration.",
+ "format" : "CIDR",
"optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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" : [
- "cdrom",
- "disk"
- ]
+ "secure",
+ "insecure"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "backup" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
"type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
+ "typetext" : "<boolean>"
+ },
+ "stateuri" : {
+ "description" : "Some command save/restore state from this location.",
+ "maxLength" : 128,
"optional" : 1,
- "format_description" : "on|off"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "bps_rd" : {
- "type" : "integer",
+ "targetstorage" : {
+ "description" : "Target storage for the migration. (Can be '1' to use the same storage id as on the source node.)",
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "iops_wr_max" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "format_description" : "iops",
- "optional" : 1
+ "typetext" : "<integer> (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" : "<boolean>"
},
- "size" : {
+ "migratedfrom" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect.",
"type" : "string",
- "format" : "disk-size"
+ "typetext" : "<string>"
},
- "iothread" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Whether to use iothreads for this drive",
- "format_description" : "off|on"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "iops_max" : {
- "type" : "integer",
- "format_description" : "iops",
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "mbps_rd_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "timeout" : {
+ "description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
"optional" : 1,
- "type" : "number"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "aio" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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",
- "enum" : [
- "native",
- "threads"
- ],
+ "typetext" : "<string>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "queues" : {
- "minimum" : 2,
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
+ "typetext" : "<integer> (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,
- "format_description" : "nbqueues",
- "description" : "Number of queues."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "discard" : {
- "type" : "string",
- "enum" : [
- "ignore",
- "on"
- ],
+ "keepActive" : {
+ "default" : 0,
+ "description" : "Do not deactivate storage volumes.",
"optional" : 1,
- "format_description" : "ignore|on",
- "description" : "Controls whether to pass discard/trim requests to the underlying storage."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "serial" : {
- "optional" : 1,
- "format_description" : "serial",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "maxLength" : 60,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "urlencoded"
+ "typetext" : "<string>"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "file" : {
- "description" : "The drive's backing volume.",
- "format_description" : "volume",
- "default_key" : 1,
- "format" : "pve-volume-id-or-qm-path",
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "mbps" : {
- "type" : "number",
+ "timeout" : {
+ "description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "bps_wr" : {
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
- "optional" : 1,
- "type" : "integer"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
},
- "iops" : {
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "format_description" : "iops",
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "trans" : {
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
+ "statestorage" : {
+ "description" : "The storage for the VM state",
+ "format" : "pve-storage-id",
"optional" : 1,
- "description" : "Force disk geometry bios translation mode.",
- "format_description" : "none|lba|auto",
- "type" : "string"
- },
- "volume" : {
- "alias" : "file"
+ "requires" : "todisk",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "iops_rd_max" : {
+ "todisk" : {
+ "default" : 0,
+ "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops",
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "iops_rd" : {
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second.",
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "werror" : {
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "format_description" : "enospc|ignore|report|stop",
- "optional" : 1,
- "description" : "Write error action.",
- "type" : "string"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "cache" : {
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "description" : "The drive's cache mode",
- "type" : "string"
- },
- "snapshot" : {
"type" : "boolean",
- "optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off"
+ "typetext" : "<boolean>"
},
- "bps" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second.",
- "format_description" : "bps"
- },
- "mbps_wr_max" : {
- "type" : "number",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps"
+ "typetext" : "<integer> (1 - N)"
}
- },
- "type" : "string",
- "optional" : 1,
- "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13)."
+ }
},
- "delete" : {
+ "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",
- "format" : "pve-configid-list",
- "optional" : 1,
- "description" : "A list of settings you want to delete."
+ "typetext" : "<string>"
},
- "shares" : {
- "minimum" : 0,
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "maximum" : 50000,
- "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",
- "optional" : 1
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
},
- "smbios1" : {
+ "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",
- "format" : "pve-qm-smbios1",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "description" : "Specify SMBIOS type 1 fields.",
- "maxLength" : 256
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"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
+ "VM.Console"
+ ]
]
},
"protected" : 1,
- "method" : "POST",
- "name" : "update_vm_async",
+ "proxyto" : "node",
"returns" : {
- "optional" : 1,
- "type" : "string"
- },
- "description" : "Set virtual machine options (asynchrounous API)."
- },
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
+ "text" : "sendkey"
+ },
+ {
+ "info" : {
"GET" : {
- "description" : "Get current virtual machine configuration. This does not include pending configuration changes (see 'pending' API).",
+ "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" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "method" : "GET",
- "name" : "vm_config",
+ "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" : {
- "current" : {
+ "bwlimit" : {
+ "default" : "clone limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "description" : {
+ "description" : "Description for the new VM.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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",
- "default" : 0,
+ "typetext" : "<boolean>"
+ },
+ "name" : {
+ "description" : "Set a name for the new VM.",
+ "format" : "dns-name",
"optional" : 1,
- "description" : "Get current values (instead of pending values)."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
+ "newid" : {
+ "description" : "VMID for the clone.",
"format" : "pve-vmid",
- "minimum" : 1
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
- }
- }
- },
- "returns" : {
- "properties" : {
- "digest" : {
"type" : "string",
- "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications."
- }
- },
- "type" : "object"
- }
- }
- },
- "text" : "config",
- "leaf" : 1
- },
- {
- "info" : {
- "GET" : {
- "parameters" : {
- "properties" : {
- "node" : {
+ "typetext" : "<string>"
+ },
+ "pool" : {
+ "description" : "Add the new VM to the specified pool.",
+ "format" : "pve-poolid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "Target storage for full clone.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target" : {
+ "description" : "Target node. Only allowed if the original VM is on shared storage.",
"format" : "pve-node",
+ "optional" : 1,
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "delete" : {
- "optional" : 1,
- "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
- "maximum" : 2,
- "type" : "integer",
- "minimum" : 0
- },
- "key" : {
- "type" : "string",
- "description" : "Configuration option name."
- },
- "value" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Current value."
- },
- "pending" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Pending value."
- }
- },
- "type" : "object"
}
},
- "name" : "vm_pending",
- "method" : "GET",
"permissions" : {
"check" : [
- "perm",
- "/vms/{vmid}",
+ "and",
[
- "VM.Audit"
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Clone"
+ ]
+ ],
+ [
+ "or",
+ [
+ "perm",
+ "/vms/{newid}",
+ [
+ "VM.Allocate"
+ ]
+ ],
+ [
+ "perm",
+ "/pool/{pool}",
+ [
+ "VM.Allocate"
+ ],
+ "require_param",
+ "pool"
+ ]
]
- ]
+ ],
+ "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage."
},
- "description" : "Get virtual machine configuration, including pending changes."
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/pending",
- "text" : "pending",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/clone",
+ "text" : "clone"
},
{
- "leaf" : 1,
- "text" : "unlink",
- "path" : "/nodes/{node}/qemu/{vmid}/unlink",
"info" : {
- "PUT" : {
- "description" : "Unlink/delete disk images.",
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT",
- "name" : "unlink",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk"
- ]
- ]
- },
- "protected" : 1,
+ "POST" : {
+ "description" : "Move volume to different storage.",
+ "method" : "POST",
+ "name" : "move_vm_disk",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "idlist" : {
- "description" : "A list of disk IDs you want to delete.",
+ "bwlimit" : {
+ "default" : "move limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "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" : "<boolean>"
+ },
+ "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",
- "format" : "pve-configid-list"
+ "typetext" : "<string>"
},
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "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"
},
- "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.",
+ "format" : {
+ "description" : "Target Format.",
+ "enum" : [
+ "raw",
+ "qcow2",
+ "vmdk"
+ ],
"optional" : 1,
- "type" : "boolean"
+ "type" : "string"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "Target storage.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "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."
},
- "proxyto" : "node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
+ "text" : "move_disk"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
"info" : {
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
- },
- "description" : "Creates a TCP VNC proxy connections.",
- "protected" : 1,
+ "description" : "Migrate virtual machine. Creates a new migration task.",
"method" : "POST",
- "name" : "vncproxy",
+ "name" : "migrate_vm",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
+ "bwlimit" : {
+ "default" : "migrate limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
"type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (0 - N)"
},
- "websocket" : {
- "description" : "starts websockify instead of vncproxy",
+ "force" : {
+ "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
"optional" : 1,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "migration_network" : {
+ "description" : "CIDR of the (sub) network that is used for migration.",
+ "format" : "CIDR",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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",
- "format" : "pve-node"
- }
- }
- },
- "returns" : {
- "properties" : {
- "upid" : {
- "type" : "string"
+ "typetext" : "<string>"
},
- "ticket" : {
- "type" : "string"
+ "online" : {
+ "description" : "Use online/live migration.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "user" : {
- "type" : "string"
+ "target" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "port" : {
- "type" : "integer"
+ "targetstorage" : {
+ "description" : "Default target storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "cert" : {
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- }
- }
- },
- "text" : "vncproxy",
- "leaf" : 1
- },
- {
- "leaf" : 1,
- "text" : "vncwebsocket",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "vncwebsocket",
- "returns" : {
- "type" : "object",
- "properties" : {
- "port" : {
- "type" : "string"
- }
- }
- },
- "parameters" : {
- "properties" : {
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "format" : "pve-vmid"
- },
- "port" : {
- "description" : "Port number returned by previous vncproxy call.",
- "minimum" : 5900,
- "type" : "integer",
- "maximum" : 5999
- },
- "vncticket" : {
- "description" : "Ticket from previous call to vncproxy.",
- "maxLength" : 512,
- "type" : "string"
+ "typetext" : "<integer> (1 - N)"
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "with-local-disks" : {
+ "description" : "Enable live storage migration for local disk",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
- "description" : "You also need to pass a valid ticket (vncticket).",
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Console"
+ "VM.Migrate"
]
]
},
- "description" : "Opens a weksocket for VNC traffic."
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/migrate",
+ "text" : "migrate"
},
{
"info" : {
"POST" : {
- "description" : "Returns a SPICE configuration to connect to the VM.",
- "returns" : {
+ "description" : "Execute Qemu monitor commands.",
+ "method" : "POST",
+ "name" : "monitor",
+ "parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "tls-port" : {
- "type" : "integer"
- },
- "password" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string"
+ "command" : {
+ "description" : "The monitor command.",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "host" : {
- "type" : "string"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxy" : {
- "type" : "string"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 1,
- "description" : "Returned values can be directly passed to the 'remote-viewer' application."
+ }
},
- "name" : "spiceproxy",
- "method" : "POST",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Console"
+ "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" : {
- "proxy" : {
- "format" : "address",
- "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,
- "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)."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "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" : "<string>"
+ },
+ "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" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "proxyto" : "node"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
"leaf" : 1,
- "text" : "spiceproxy"
+ "path" : "/nodes/{node}/qemu/{vmid}/resize",
+ "text" : "resize"
},
{
- "text" : "status",
- "leaf" : 0,
- "path" : "/nodes/{node}/qemu/{vmid}/status",
"children" : [
{
- "leaf" : 1,
- "text" : "current",
- "path" : "/nodes/{node}/qemu/{vmid}/status/current",
- "info" : {
- "GET" : {
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "object"
- },
- "name" : "vm_status",
- "method" : "GET",
- "description" : "Get virtual machine status."
- }
- }
- },
- {
- "text" : "start",
- "leaf" : 1,
- "info" : {
- "POST" : {
- "method" : "POST",
- "name" : "vm_start",
- "returns" : {
- "type" : "string"
- },
- "description" : "Start virtual machine.",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "skiplock" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option."
- },
- "machine" : {
- "type" : "string",
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
- "description" : "Specific the Qemu machine type.",
- "maxLength" : 40,
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "stateuri" : {
- "optional" : 1,
- "description" : "Some command save/restore state from this location.",
- "maxLength" : 128,
- "type" : "string"
+ "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" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ],
+ "any",
+ 1
+ ]
},
- "migratedfrom" : {
- "description" : "The cluster node name.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-node"
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
}
},
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- }
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/status/start"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
- "info" : {
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "keepActive" : {
- "type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "Do not decativate storage volumes."
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "migratedfrom" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name.",
- "optional" : 1
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "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" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "skiplock" : {
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1,
- "type" : "boolean"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
},
- "timeout" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Wait maximal timeout seconds."
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "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",
- "returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "vm_stop"
- }
- },
- "leaf" : 1,
- "text" : "stop"
- },
- {
- "info" : {
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ }
+ },
+ "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" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ],
+ "any",
+ 1
+ ]
},
- "skiplock" : {
- "type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Reset virtual machine.",
- "method" : "POST",
- "name" : "vm_reset",
- "returns" : {
- "type" : "string"
- }
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
+ "text" : "rollback"
}
- },
- "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
- "leaf" : 1,
- "text" : "reset"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
+ ],
"info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "vm_shutdown",
- "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.",
+ "DELETE" : {
+ "description" : "Delete a VM snapshot.",
+ "method" : "DELETE",
+ "name" : "delsnapshot",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "timeout" : {
+ "force" : {
+ "description" : "For removal from config file, even if removing disk snapshots fails.",
"optional" : 1,
- "description" : "Wait maximal timeout seconds.",
- "minimum" : 0,
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
- },
- "skiplock" : {
- "type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1
- },
- "forceStop" : {
- "optional" : 1,
- "description" : "Make sure the VM stops.",
- "default" : 0,
- "type" : "boolean"
+ "typetext" : "<string>"
},
- "keepActive" : {
- "type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "Do not decativate storage volumes."
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "protected" : 1
- }
- },
- "leaf" : 1,
- "text" : "shutdown"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
- "info" : {
- "POST" : {
- "description" : "Suspend virtual machine.",
- "method" : "POST",
- "name" : "vm_suspend",
- "returns" : {
- "type" : "string"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- },
- "skiplock" : {
- "type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- }
- }
- },
- "text" : "suspend",
- "leaf" : 1
- },
- {
- "text" : "resume",
- "leaf" : 1,
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
"minimum" : 1,
- "format" : "pve-vmid",
"type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "skiplock" : {
- "optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option.",
- "type" : "boolean"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "nocheck" : {
- "type" : "boolean",
- "optional" : 1
+ "typetext" : "<integer> (1 - N)"
}
}
},
"perm",
"/vms/{vmid}",
[
- "VM.PowerMgmt"
+ "VM.Snapshot"
]
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
+ "description" : "the task ID.",
"type" : "string"
- },
- "method" : "POST",
- "name" : "vm_resume",
- "description" : "Resume virtual machine."
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/status/resume"
- }
- ],
- "info" : {
- "GET" : {
- "permissions" : {
- "user" : "all"
- },
- "description" : "Directory index",
- "method" : "GET",
- "name" : "vmcmdidx",
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
}
},
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{subdir}"
- }
- ]
- }
- }
- }
- },
- {
- "leaf" : 1,
- "text" : "sendkey",
- "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
- "info" : {
- "PUT" : {
- "returns" : {
- "type" : "null"
- },
- "name" : "vm_sendkey",
- "method" : "PUT",
- "description" : "Send key event to virtual machine.",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "key" : {
- "type" : "string",
- "description" : "The key (qemu monitor encoding)."
+ "GET" : {
+ "description" : "",
+ "method" : "GET",
+ "name" : "snapshot_cmd_idx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "permissions" : {
+ "user" : "all"
},
- "skiplock" : {
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1,
- "type" : "boolean"
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cmd}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
- }
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
+ "text" : "{snapname}"
}
- }
- },
- {
- "text" : "feature",
- "leaf" : 1,
+ ],
"info" : {
"GET" : {
- "description" : "Check if feature for virtual machine is available.",
- "name" : "vm_feature",
+ "description" : "List all snapshots.",
"method" : "GET",
- "returns" : {
+ "name" : "snapshot_list",
+ "parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "nodes" : {
- "items" : {
- "type" : "string"
- },
- "type" : "array"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "hasFeature" : {
- "type" : "boolean"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "type" : "object"
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "feature" : {
- "type" : "string",
- "enum" : [
- "snapshot",
- "clone",
- "copy"
- ],
- "description" : "Feature to check."
+ "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"
+ }
},
- "snapname" : {
- "optional" : 1,
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "type" : "string",
- "format" : "pve-configid"
- }
+ "type" : "object"
},
- "additionalProperties" : 0
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/feature"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/clone",
- "info" : {
+ },
"POST" : {
- "returns" : {
- "type" : "string"
- },
- "name" : "clone_vm",
+ "description" : "Snapshot a VM.",
"method" : "POST",
- "description" : "Create a copy of virtual machine/template.",
- "proxyto" : "node",
+ "name" : "snapshot",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "snapname" : {
- "type" : "string",
- "format" : "pve-configid",
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "optional" : 1
- },
- "full" : {
- "optional" : 1,
- "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.",
- "default" : 0,
- "type" : "boolean"
- },
- "target" : {
- "description" : "Target node. Only allowed if the original VM is on shared storage.",
+ "description" : {
+ "description" : "A textual description or comment.",
"optional" : 1,
- "format" : "pve-node",
- "type" : "string"
- },
- "pool" : {
- "format" : "pve-poolid",
"type" : "string",
- "description" : "Add the new VM to the specified pool.",
- "optional" : 1
+ "typetext" : "<string>"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
- },
- "description" : {
- "description" : "Description for the new VM.",
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
- "description" : "Set a name for the new VM.",
- "optional" : 1,
- "format" : "dns-name",
- "type" : "string"
- },
- "newid" : {
- "description" : "VMID for the clone.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "type" : "string",
+ "typetext" : "<string>"
},
- "format" : {
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
"type" : "string",
- "requires" : "full",
- "enum" : [
- "raw",
- "qcow2",
- "vmdk"
- ],
- "description" : "Target format for file storage.",
- "optional" : 1
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
"format" : "pve-vmid",
- "minimum" : 1
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "storage" : {
- "description" : "Target storage for full clone.",
+ "vmstate" : {
+ "description" : "Save the vmstate",
"optional" : 1,
- "format" : "pve-storage-id",
- "requires" : "full",
- "type" : "string"
- }
- }
- },
- "protected" : 1,
- "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."
- }
- }
- },
- "leaf" : 1,
- "text" : "clone"
- },
- {
- "leaf" : 1,
- "text" : "move_disk",
- "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
- "info" : {
- "POST" : {
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
"permissions" : {
"check" : [
- "and",
- [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk"
- ]
- ],
+ "perm",
+ "/vms/{vmid}",
[
- "perm",
- "/storage/{storage}",
- [
- "Datastore.AllocateSpace"
- ]
+ "VM.Snapshot"
]
- ],
- "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" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
+ "text" : "snapshot"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Create a Template.",
+ "method" : "POST",
+ "name" : "template",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "delete" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
- "optional" : 1
- },
- "format" : {
- "type" : "string",
- "description" : "Target Format.",
- "optional" : 1,
- "enum" : [
- "raw",
- "qcow2",
- "vmdk"
- ]
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- },
- "storage" : {
- "description" : "Target storage.",
- "format" : "pve-storage-id",
- "type" : "string"
- },
"disk" : {
- "type" : "string",
- "description" : "The disk you want to move.",
+ "description" : "If you want to convert only 1 disk to base image.",
"enum" : [
"ide0",
"ide1",
"sata2",
"sata3",
"sata4",
- "sata5"
- ]
- },
- "digest" : {
- "maxLength" : 40,
+ "sata5",
+ "efidisk0"
+ ],
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"type" : "string"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "description" : "Move volume to different storage.",
- "method" : "POST",
- "name" : "move_vm_disk",
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Allocate"
+ ]
+ ],
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/template",
+ "text" : "template"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "description" : "Destroy the vm (also delete all used/owned volumes).",
+ "method" : "DELETE",
+ "name" : "destroy_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "GET" : {
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "vmdiridx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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}",
+ "text" : "{vmid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Virtual machine index (per node).",
+ "method" : "GET",
+ "name" : "vmlist",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "full" : {
+ "description" : "Determine the full status of active VMs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cpus" : {
+ "description" : "Maximum usable CPUs.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "lock" : {
+ "description" : "The current config lock, if any.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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" : [
+ {
+ "href" : "{vmid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create or restore a virtual machine.",
+ "method" : "POST",
+ "name" : "create_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "acpi" : {
+ "default" : 1,
+ "description" : "Enable/disable ACPI.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "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"
}
- }
- }
- },
- {
- "text" : "migrate",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/migrate",
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "online" : {
- "optional" : 1,
- "description" : "Use online/live migration.",
- "type" : "boolean"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "force" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Allow to migrate VMs which use local devices. Only root may use this option."
- },
- "target" : {
- "description" : "Target node.",
- "format" : "pve-node",
- "type" : "string"
- }
- }
+ },
+ "optional" : 1,
+ "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.",
+ "maxLength" : 255,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "args" : {
+ "description" : "Arbitrary arguments passed to kvm.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>",
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
+ },
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "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"
+ },
+ "bwlimit" : {
+ "default" : "restore limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "cdrom" : {
+ "description" : "This is an alias for option -ide2",
+ "format" : "pve-qm-ide",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<volume>"
+ },
+ "cicustom" : {
+ "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
+ "format" : "pve-qm-cicustom",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>]"
+ },
+ "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" : "<string>"
+ },
+ "citype" : {
+ "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
+ "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" : "<string>"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "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"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Migrate"
- ]
- ]
+ "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"
},
- "returns" : {
- "description" : "the task ID.",
+ "hidden" : {
+ "default" : 0,
+ "description" : "Do not identify as a KVM virtual machine.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "hv-vendor-id" : {
+ "description" : "The Hyper-V vendor ID. Some drivers or programs inside Windows guests need a specific ID.",
+ "format_description" : "vendor-id",
+ "optional" : 1,
+ "pattern" : "(?^:[a-zA-Z0-9]{1,12})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>]"
+ },
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (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" : "<integer> (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.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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"
},
- "name" : "migrate_vm",
- "method" : "POST",
- "description" : "Migrate virtual machine. Creates a new migration task."
- }
- }
- },
- {
- "info" : {
- "POST" : {
- "method" : "POST",
- "name" : "monitor",
- "returns" : {
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
"type" : "string"
},
- "description" : "Execute Qemu monitor commands.",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "command" : {
- "description" : "The monitor command.",
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- }
- },
- "additionalProperties" : 0
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Monitor"
- ]
- ]
+ "volume" : {
+ "alias" : "file"
}
- }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,format=<enum>] [,size=<DiskSize>]"
},
- "path" : "/nodes/{node}/qemu/{vmid}/monitor",
- "text" : "monitor",
- "leaf" : 1
- },
- {
- "leaf" : 1,
- "text" : "resize",
- "path" : "/nodes/{node}/qemu/{vmid}/resize",
- "info" : {
- "PUT" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk"
- ]
- ]
+ "force" : {
+ "description" : "Allow to overwrite existing VM.",
+ "optional" : 1,
+ "requires" : "archive",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "hookscript" : {
+ "description" : "Script that will be executed during various steps in the vms lifetime.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "hostpci[n]" : {
+ "description" : "Map host PCI devices into guest.",
+ "format" : "pve-qm-hostpci",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,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" : "<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"
},
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "size" : {
- "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
- "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "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"
- ],
- "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"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "skiplock" : {
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1,
- "type" : "boolean"
- }
- },
- "additionalProperties" : 0
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "proxyto" : "node",
- "description" : "Extend volume size.",
- "returns" : {
- "type" : "null"
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "name" : "resize_vm",
- "method" : "PUT"
- }
- }
- },
- {
- "info" : {
- "POST" : {
- "description" : "Snapshot a VM.",
- "method" : "POST",
- "name" : "snapshot",
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "description" : {
- "type" : "string",
- "description" : "A textual description or comment.",
- "optional" : 1
- },
- "vmstate" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Save the vmstate"
- },
- "snapname" : {
- "format" : "pve-configid",
- "type" : "string",
- "maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- }
- },
- "additionalProperties" : 0
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
},
- "proxyto" : "node"
- },
- "GET" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- }
- }
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "protected" : 1,
- "returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
+ "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"
],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- }
+ "optional" : 1,
+ "type" : "string"
},
- "name" : "snapshot_list",
- "method" : "GET",
- "description" : "List all snapshots."
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
- "children" : [
- {
- "children" : [
- {
- "text" : "config",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "get_snapshot_config",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "snapname" : {
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "returns" : {
- "type" : "object"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "description" : "Get snapshot configuration"
- },
- "PUT" : {
- "description" : "Update snapshot metadata.",
- "returns" : {
- "type" : "null"
- },
- "name" : "update_snapshot_config",
- "method" : "PUT",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "description" : {
- "type" : "string",
- "description" : "A textual description or comment.",
- "optional" : 1
- },
- "snapname" : {
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node"
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config"
- },
- {
- "leaf" : 1,
- "text" : "rollback",
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "snapname" : {
- "type" : "string",
- "format" : "pve-configid",
- "maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- }
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "returns" : {
- "description" : "the task ID.",
- "type" : "string"
- },
- "method" : "POST",
- "name" : "rollback",
- "description" : "Rollback VM state to specified snapshot."
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback"
- }
- ],
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
- "info" : {
- "GET" : {
- "parameters" : {
- "properties" : {
- "snapname" : {
- "format" : "pve-configid",
- "type" : "string",
- "description" : "The name of the snapshot.",
- "maxLength" : 40
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{cmd}"
- }
- ]
- },
- "name" : "snapshot_cmd_idx",
- "method" : "GET",
- "permissions" : {
- "user" : "all"
- },
- "description" : ""
- },
- "DELETE" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "force" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "For removal from config file, even if removing disk snapshots fails."
- },
- "snapname" : {
- "type" : "string",
- "format" : "pve-configid",
- "maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- }
- },
- "description" : "Delete a VM snapshot.",
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- },
- "method" : "DELETE",
- "name" : "delsnapshot"
- }
+ "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"
},
- "leaf" : 0,
- "text" : "{snapname}"
- }
- ],
- "text" : "snapshot",
- "leaf" : 0
- },
- {
- "text" : "template",
- "leaf" : 1,
- "info" : {
- "POST" : {
- "description" : "Create a Template.",
- "method" : "POST",
- "name" : "template",
- "returns" : {
- "type" : "null"
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Allocate"
- ]
+ "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"
],
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
+ "optional" : 1,
+ "type" : "string"
},
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "disk" : {
- "optional" : 1,
- "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"
- ],
- "type" : "string"
- },
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
+ "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"
+ },
+ "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"
},
- "proxyto" : "node"
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/template"
- }
- ],
- "text" : "{vmid}",
- "leaf" : 0
- }
- ],
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
- },
- "name" : "create_vm",
- "method" : "POST",
- "description" : "Create or restore a virtual machine.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "memory" : {
- "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
"optional" : 1,
- "minimum" : 16,
- "type" : "integer",
- "default" : 512
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
},
- "boot" : {
- "pattern" : "[acdn]{1,4}",
+ "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,
- "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
- "default" : "cdn",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
},
- "startup" : {
+ "ivshmem" : {
+ "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
+ "format" : {
+ "name" : {
+ "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
+ "format_description" : "string",
+ "optional" : 1,
+ "pattern" : "[a-zA-Z0-9\\-]+",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "The size of the file in MB.",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ },
"optional" : 1,
- "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.",
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
"type" : "string",
- "format" : "pve-startup-order"
+ "typetext" : "size=<integer> [,name=<string>]"
},
- "onboot" : {
- "default" : 0,
- "type" : "boolean",
+ "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,
- "description" : "Specifies whether a VM will be started during system bootup."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"localtime" : {
- "type" : "boolean",
"description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "description" : {
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
"optional" : 1,
- "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
"type" : "string"
},
- "balloon" : {
+ "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" : "<integer> (16 - N)"
+ },
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
"minimum" : 0,
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (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" : "<integer> (0 - N)"
},
"name" : {
+ "description" : "Set a name for the VM. Only used on the configuration web interface.",
"format" : "dns-name",
+ "optional" : 1,
"type" : "string",
- "description" : "Set a name for the VM. Only used on the configuration web interface.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "scsihw" : {
- "type" : "string",
- "default" : "lsi",
- "description" : "scsi controller model",
+ "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,
- "enum" : [
- "lsi",
- "lsi53c810",
- "virtio-scsi-pci",
- "virtio-scsi-single",
- "megasas",
- "pvscsi"
- ]
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "type" : "string",
+ "typetext" : "<string>"
},
- "numa[n]" : {
- "optional" : 1,
- "description" : "numa topology",
+ "net[n]" : {
+ "description" : "Specify network devices.",
"format" : {
- "cpus" : {
- "description" : "CPUs accessing this numa node.",
- "format_description" : "id[-id];...",
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "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"
},
- "memory" : {
+ "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,
- "format_description" : "mb",
- "description" : "Amount of memory this numa node provides.",
- "type" : "number"
+ "type" : "boolean"
},
- "hostnodes" : {
- "type" : "string",
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "format_description" : "id[-id];...",
+ "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,
- "description" : "host numa nodes to use"
+ "type" : "boolean"
},
- "policy" : {
+ "macaddr" : {
+ "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
"type" : "string",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "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" : [
- "preferred",
- "bind",
- "interleave"
+ "rtl8139",
+ "ne2k_pci",
+ "e1000",
+ "pcnet",
+ "virtio",
+ "ne2k_isa",
+ "i82551",
+ "i82557b",
+ "i82559er",
+ "vmxnet3",
+ "e1000-82540em",
+ "e1000-82544gc",
+ "e1000-82545em"
],
- "description" : "numa allocation policy.",
+ "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,
- "format_description" : "preferred|bind|interleave"
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "virtio" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "vmxnet3" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
}
},
- "type" : "string"
- },
- "force" : {
"optional" : 1,
- "description" : "Allow to overwrite existing VM.",
- "requires" : "archive",
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
},
- "autostart" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "numa" : {
"default" : 0,
- "type" : "boolean",
+ "description" : "Enable/disable NUMA.",
"optional" : 1,
- "description" : "Automatic restart after crash (currently ignored)."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "cpu" : {
- "optional" : 1,
- "description" : "Emulated CPU type.",
- "type" : "string",
+ "numa[n]" : {
+ "description" : "NUMA topology.",
"format" : {
- "hidden" : {
- "default" : 0,
- "type" : "boolean",
+ "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,
- "description" : "Do not identify as a KVM virtual machine."
+ "type" : "number"
},
- "cputype" : {
- "type" : "string",
- "default" : "kvm64",
+ "policy" : {
+ "description" : "NUMA allocation policy.",
"enum" : [
- "486",
- "athlon",
- "pentium",
- "pentium2",
- "pentium3",
- "coreduo",
- "core2duo",
- "kvm32",
- "kvm64",
- "qemu32",
- "qemu64",
- "phenom",
- "Conroe",
- "Penryn",
- "Nehalem",
- "Westmere",
- "SandyBridge",
- "IvyBridge",
- "Haswell",
- "Haswell-noTSX",
- "Broadwell",
- "Broadwell-noTSX",
- "Opteron_G1",
- "Opteron_G2",
- "Opteron_G3",
- "Opteron_G4",
- "Opteron_G5",
- "host"
+ "preferred",
+ "bind",
+ "interleave"
],
- "description" : "Emulated CPU type.",
- "format_description" : "cputype",
- "default_key" : 1
+ "optional" : 1,
+ "type" : "string"
}
- }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
},
- "acpi" : {
- "description" : "Enable/disable ACPI.",
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
"optional" : 1,
- "default" : 1,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "startdate" : {
+ "ostype" : {
+ "description" : "Specify guest operating system.",
+ "enum" : [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "optional" : 1,
"type" : "string",
- "default" : "now",
- "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)",
- "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'.",
+ "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" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)"
+ "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"
},
- "vga" : {
+ "pool" : {
+ "description" : "Add the VM to the specified pool.",
+ "format" : "pve-poolid",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
"optional" : 1,
- "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.",
- "enum" : [
- "std",
- "cirrus",
- "vmware",
- "qxl",
- "serial0",
- "serial1",
- "serial2",
- "serial3",
- "qxl2",
- "qxl3",
- "qxl4"
- ]
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "scsi[n]" : {
- "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+ "reboot" : {
+ "default" : 1,
+ "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
"optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "sata[n]" : {
+ "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
"format" : {
- "heads" : {
- "type" : "integer",
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count"
+ "type" : "string"
},
- "mbps_rd" : {
- "type" : "number",
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second.",
- "optional" : 1
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "secs" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "count"
+ "type" : "integer"
},
- "cyls" : {
- "type" : "integer",
- "format_description" : "count",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count."
+ "type" : "integer"
},
- "mbps_wr" : {
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "integer"
},
- "detect_zeroes" : {
+ "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,
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean"
+ "type" : "integer"
},
- "iops_wr" : {
- "type" : "integer",
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second."
+ "type" : "integer"
},
- "media" : {
+ "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" : [
- "cdrom",
- "disk"
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
- "format_description" : "cdrom|disk",
"optional" : 1,
- "description" : "The drive's media type.",
- "type" : "string",
- "default" : "disk"
+ "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",
"vmdk",
"cloop"
],
- "format_description" : "drive format",
- "description" : "The drive's backing file's data format.",
"optional" : 1,
"type" : "string"
},
- "bps_rd" : {
- "type" : "integer",
- "description" : "Maximum read speed speed in bytes per second.",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
"optional" : 1,
- "format_description" : "bps"
+ "type" : "integer"
},
- "backup" : {
- "description" : "Whether the drive should be included when making backups.",
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "on|off",
- "type" : "boolean"
+ "type" : "integer"
},
"iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
"format_description" : "iops",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
"type" : "integer"
},
- "mbps_rd_max" : {
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number"
+ "type" : "integer"
},
- "aio" : {
- "type" : "string",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
- "enum" : [
- "native",
- "threads"
- ]
+ "type" : "integer"
},
- "queues" : {
- "minimum" : 2,
- "type" : "integer",
- "format_description" : "nbqueues",
+ "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,
- "description" : "Number of queues."
+ "type" : "integer"
},
- "iops_wr_max" : {
- "type" : "integer",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "iops"
+ "type" : "integer"
},
- "size" : {
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect.",
- "format" : "disk-size",
- "type" : "string"
+ "type" : "integer"
},
- "iothread" : {
- "type" : "boolean",
- "description" : "Whether to use iothreads for this drive",
- "format_description" : "off|on",
- "optional" : 1
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
},
- "mbps" : {
- "type" : "number",
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "integer"
},
- "bps_wr" : {
- "description" : "Maximum write speed speed in bytes per second.",
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "bps",
"type" : "integer"
},
- "iops" : {
- "format_description" : "iops",
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "integer"
+ "type" : "number"
},
"mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "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"
},
- "serial" : {
- "type" : "string",
- "format" : "urlencoded",
- "format_description" : "serial",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "maxLength" : 60,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long."
+ "type" : "number"
},
- "discard" : {
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
"enum" : [
- "ignore",
- "on"
+ "cdrom",
+ "disk"
],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"optional" : 1,
- "format_description" : "ignore|on",
"type" : "string"
},
- "file" : {
- "format" : "pve-volume-id-or-qm-path",
- "type" : "string",
- "format_description" : "volume",
- "description" : "The drive's backing volume.",
- "default_key" : 1
- },
- "iops_rd" : {
- "type" : "integer",
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "boolean"
},
- "werror" : {
+ "rerror" : {
+ "description" : "Read error action.",
"enum" : [
- "enospc",
"ignore",
"report",
"stop"
],
"optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
- "description" : "Write error action.",
- "type" : "string"
- },
- "trans" : {
- "format_description" : "none|lba|auto",
- "optional" : 1,
- "description" : "Force disk geometry bios translation mode.",
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
"type" : "string"
},
- "volume" : {
- "alias" : "file"
- },
- "iops_rd_max" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
- },
- "cache" : {
- "type" : "string",
- "optional" : 1,
- "description" : "The drive's cache mode",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
- },
- "snapshot" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off",
- "optional" : 1
- },
- "mbps_wr_max" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "bps" : {
- "format_description" : "bps",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second.",
"type" : "integer"
- }
- },
- "type" : "string"
- },
- "shares" : {
- "optional" : 1,
- "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",
- "minimum" : 0,
- "maximum" : 50000,
- "default" : 1000,
- "type" : "integer"
- },
- "smbios1" : {
- "description" : "Specify SMBIOS type 1 fields.",
- "optional" : 1,
- "maxLength" : 256,
- "type" : "string",
- "format" : "pve-qm-smbios1"
- },
- "cores" : {
- "type" : "integer",
- "default" : 1,
- "minimum" : 1,
- "description" : "The number of cores per socket.",
- "optional" : 1
- },
- "migrate_downtime" : {
- "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
- "optional" : 1,
- "minimum" : 0,
- "default" : 0.1,
- "type" : "number"
- },
- "keyboard" : {
- "type" : "string",
- "default" : "en-us",
- "enum" : [
- "en-gb",
- "de-ch",
- "en-us",
- "mk",
- "fr-be",
- "de",
- "pt-br",
- "sv",
- "fr-ch",
- "no",
- "pt",
- "hu",
- "sl",
- "lt",
- "fi",
- "it",
- "nl",
- "is",
- "da",
- "fr-ca",
- "pl",
- "fr",
- "es",
- "ja",
- "tr"
- ],
- "optional" : 1,
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file."
- },
- "freeze" : {
- "type" : "boolean",
- "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
- "optional" : 1
- },
- "net[n]" : {
- "format" : "pve-qm-net",
- "type" : "string",
- "optional" : 1,
- "description" : "Specify network devices.\n\nMODEL is one of: e1000 e1000-82540em e1000-82544gc e1000-82545em i82551 i82557b i82559er ne2k_isa ne2k_pci pcnet rtl8139 virtio vmxnet3\n\nXX:XX:XX:XX:XX:XX should be an unique MAC address. This is\nautomatically generated if not specified.\n\nThe bridge parameter can be used to automatically add the interface to a bridge device. The Proxmox VE standard bridge is called 'vmbr0'.\n\nOption 'rate' is used to limit traffic bandwidth from and to this interface. It is specified as floating point number, unit is 'Megabytes per second'.\n\nIf you specify no bridge, we create a kvm 'user' (NATed) network device, which provides DHCP and DNS services. The following addresses are used:\n\n10.0.2.2 Gateway\n10.0.2.3 DNS Server\n10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n\n"
- },
- "vcpus" : {
- "minimum" : 1,
- "default" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Number of hotplugged vcpus."
- },
- "pool" : {
- "optional" : 1,
- "description" : "Add the VM to the specified pool.",
- "format" : "pve-poolid",
- "type" : "string"
- },
- "archive" : {
- "maxLength" : 255,
- "optional" : 1,
- "description" : "The backup file.",
- "type" : "string"
- },
- "hostpci[n]" : {
- "description" : "Map host pci devices. HOSTPCIDEVICE syntax is:\n\n'bus:dev.func' (hexadecimal numbers)\n\nYou can us the 'lspci' command to list existing pci devices.\n\nThe 'rombar' option determines whether or not the device's ROM will be visible in the guest's memory map (default is 'on').\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\nExperimental: user reported problems with this option.\n",
- "optional" : 1,
- "format" : "pve-qm-hostpci",
- "type" : "string"
- },
- "kvm" : {
- "default" : 1,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable KVM hardware virtualization."
- },
- "ostype" : {
- "type" : "string",
- "enum" : [
- "other",
- "wxp",
- "w2k",
- "w2k3",
- "w2k8",
- "wvista",
- "win7",
- "win8",
- "l24",
- "l26",
- "solaris"
- ],
- "description" : "Used to enable special optimization/features for specific\noperating systems:\n\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\nother|l24|l26|solaris ... no special behaviour\nwxp|w2k|w2k3|w2k8|wvista|win7|win8 ... use --localtime switch\n",
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
- "description" : "Reference to unused volumes.",
- "optional" : 1
- },
- "watchdog" : {
- "type" : "string",
- "format" : "pve-qm-watchdog",
- "optional" : 1,
- "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)"
- },
- "template" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable Template.",
- "optional" : 1
- },
- "reboot" : {
- "optional" : 1,
- "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
- "type" : "boolean",
- "default" : 1
- },
- "machine" : {
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
- "description" : "Specific the Qemu machine type.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string"
- },
- "hotplug" : {
- "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'.",
- "optional" : 1,
- "type" : "string",
- "default" : "network,disk,usb",
- "format" : "pve-hotplug-features"
- },
- "protection" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Sets the protection flag of the VM. This will prevent the remove operation.",
- "optional" : 1
- },
- "args" : {
- "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
- "optional" : 1,
- "type" : "string"
- },
- "migrate_speed" : {
- "minimum" : 0,
- "default" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit."
- },
- "bootdisk" : {
- "pattern" : "(ide|sata|scsi|virtio)\\d+",
- "optional" : 1,
- "description" : "Enable booting from specified disk.",
- "type" : "string",
- "format" : "pve-qm-bootdisk"
- },
- "sata[n]" : {
- "type" : "string",
- "format" : {
- "bps" : {
- "description" : "Maximum r/w speed speed in bytes per second.",
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
"optional" : 1,
- "format_description" : "bps",
- "type" : "integer"
+ "type" : "string"
},
- "mbps_wr_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
"optional" : 1,
- "type" : "number"
+ "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!"
},
- "cache" : {
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
"type" : "string"
},
"snapshot" : {
- "format_description" : "on|off",
+ "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,
- "description" : "Whether the drive should be included when making snapshots.",
"type" : "boolean"
},
- "rerror" : {
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
- "format_description" : "ignore|report|stop",
- "description" : "Read error action.",
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
"optional" : 1,
- "type" : "string"
+ "type" : "boolean"
},
"trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
- "description" : "Force disk geometry bios translation mode.",
- "format_description" : "none|lba|auto",
"optional" : 1,
"type" : "string"
},
"volume" : {
"alias" : "file"
},
- "iops_rd_max" : {
- "type" : "integer",
- "format_description" : "iops",
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "optional" : 1
- },
"werror" : {
- "format_description" : "enospc|ignore|report|stop",
"description" : "Write error action.",
- "optional" : 1,
"enum" : [
"enospc",
"ignore",
"report",
"stop"
],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+ },
+ "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"
},
- "iops_rd" : {
+ "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,
- "description" : "Maximum read I/O speed in operations per second.",
- "format_description" : "iops",
"type" : "integer"
},
- "serial" : {
- "format" : "urlencoded",
- "type" : "string",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "serial",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "maxLength" : 60
+ "type" : "integer"
},
- "mbps_max" : {
- "type" : "number",
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "integer"
},
- "discard" : {
+ "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,
- "format_description" : "ignore|on",
+ "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" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
"default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
"format_description" : "volume",
- "description" : "The drive's backing volume."
+ "type" : "string"
},
- "mbps" : {
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
"optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "string"
},
- "bps_wr" : {
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
+ "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 speed in operations per second.",
+ "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"
},
- "size" : {
- "type" : "string",
- "format" : "disk-size",
+ "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,
- "description" : "Disk size. This is purely informational and has no effect."
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
},
"iops_wr_max" : {
- "type" : "integer",
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
"format_description" : "iops",
"optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second."
+ "type" : "integer"
},
- "mbps_rd_max" : {
+ "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",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "optional" : 1,
"type" : "number"
},
- "aio" : {
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
- "enum" : [
- "native",
- "threads"
- ],
- "type" : "string"
+ "type" : "number"
},
- "iops_max" : {
- "type" : "integer",
- "format_description" : "iops",
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second."
+ "type" : "number"
},
- "backup" : {
- "type" : "boolean",
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making backups.",
- "optional" : 1
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "bps_rd" : {
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "type" : "integer"
+ "type" : "number"
},
- "format" : {
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "description" : "The drive's backing file's data format.",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "drive format",
- "type" : "string"
+ "type" : "number"
},
"media" : {
- "type" : "string",
"default" : "disk",
+ "description" : "The drive's media type.",
"enum" : [
"cdrom",
"disk"
],
- "description" : "The drive's media type.",
"optional" : 1,
- "format_description" : "cdrom|disk"
+ "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"
},
- "detect_zeroes" : {
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
"type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
+ "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!"
},
- "iops_wr" : {
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second.",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "type" : "integer"
+ "type" : "string"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
+ "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,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "boolean"
},
- "cyls" : {
- "format_description" : "count",
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "type" : "integer"
+ "type" : "boolean"
},
- "secs" : {
- "type" : "integer",
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count"
+ "type" : "string"
},
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "format_description" : "count",
- "type" : "integer"
+ "type" : "string"
},
- "mbps_rd" : {
- "type" : "number",
- "format_description" : "mbps",
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second."
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
}
},
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
- "optional" : 1
- },
- "cdrom" : {
- "description" : "This is an alias for option -ide2",
- "typetext" : "volume",
"optional" : 1,
"type" : "string",
- "format" : "pve-qm-drive"
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
},
- "tdf" : {
- "description" : "Enable/disable time drift fix.",
+ "scsihw" : {
+ "default" : "lsi",
+ "description" : "SCSI controller model",
+ "enum" : [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
"optional" : 1,
- "type" : "boolean",
- "default" : 0
+ "type" : "string"
},
- "serial[n]" : {
+ "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" : "<string>"
+ },
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3)",
+ "optional" : 1,
"pattern" : "(/dev/.+|socket)",
- "description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0), or create a unix socket on the host 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\nExperimental: user reported problems with this option.\n",
- "optional" : 1
+ "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" : "<integer> (0 - 50000)"
+ },
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
+ },
+ "smp" : {
+ "default" : 1,
+ "description" : "The number of CPUs. Please use option -sockets instead.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
"sockets" : {
+ "default" : 1,
"description" : "The number of CPU sockets.",
+ "minimum" : 1,
"optional" : 1,
"type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "sshkeys" : {
+ "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+ "format" : "urlencoded",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "default" : 0,
+ "description" : "Start VM after it was created successfully.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "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+] "
+ },
+ "storage" : {
+ "description" : "Default storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tablet" : {
"default" : 1,
- "minimum" : 1
+ "description" : "Enable/disable the USB tablet device.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<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)."
},
- "ide[n]" : {
+ "tdf" : {
+ "default" : 0,
+ "description" : "Enable/disable time drift fix.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "unique" : {
+ "description" : "Assign a unique random ethernet address.",
+ "optional" : 1,
+ "requires" : "archive",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "usb[n]" : {
+ "description" : "Configure an USB device (n is 0 to 4).",
"format" : {
- "bps_rd" : {
+ "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=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
+ },
+ "vcpus" : {
+ "default" : 0,
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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,
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
"type" : "integer"
},
- "backup" : {
+ "type" : {
+ "default" : "std",
+ "default_key" : 1,
+ "description" : "Select the VGA type.",
+ "enum" : [
+ "cirrus",
+ "qxl",
+ "qxl2",
+ "qxl3",
+ "qxl4",
+ "none",
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3",
+ "std",
+ "virtio",
+ "vmware"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+ "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,
- "format_description" : "on|off",
+ "type" : "string"
+ },
+ "backup" : {
"description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
"type" : "boolean"
},
- "model" : {
- "type" : "string",
- "format" : "urlencoded",
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "maxLength" : 120,
- "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
- "format_description" : "model"
+ "type" : "integer"
},
- "media" : {
- "type" : "string",
- "default" : "disk",
+ "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" : [
- "cdrom",
- "disk"
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
- "format_description" : "cdrom|disk",
"optional" : 1,
- "description" : "The drive's media type."
+ "type" : "string"
},
- "iops_wr" : {
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second.",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
"type" : "integer"
},
"detect_zeroes" : {
- "type" : "boolean",
"description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
+ "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" : {
- "type" : "string",
+ "description" : "The drive's backing file's data format.",
"enum" : [
"raw",
"cow",
"vmdk",
"cloop"
],
- "description" : "The drive's backing file's data format.",
- "format_description" : "drive format",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "cyls" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
"optional" : 1,
"type" : "integer"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps",
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "number"
+ "type" : "integer"
},
- "heads" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific head count.",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
"type" : "integer"
},
- "mbps_rd" : {
- "type" : "number",
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps",
- "optional" : 1
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "secs" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "count"
+ "type" : "integer"
},
- "bps" : {
- "description" : "Maximum r/w speed speed in bytes per second.",
+ "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,
- "format_description" : "bps",
"type" : "integer"
},
- "mbps_wr_max" : {
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "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"
},
- "snapshot" : {
- "format_description" : "on|off",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean"
+ "type" : "number"
},
- "cache" : {
- "type" : "string",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
+ "type" : "number"
},
- "werror" : {
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
- "description" : "Write error action.",
+ "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" : [
- "enospc",
- "ignore",
- "report",
- "stop"
+ "cdrom",
+ "disk"
],
+ "optional" : 1,
"type" : "string"
},
- "iops_rd" : {
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second.",
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
"optional" : 1,
- "type" : "integer"
+ "type" : "boolean"
},
"rerror" : {
- "type" : "string",
"description" : "Read error action.",
- "optional" : 1,
- "format_description" : "ignore|report|stop",
"enum" : [
"ignore",
"report",
"stop"
- ]
- },
- "trans" : {
- "enum" : [
- "none",
- "lba",
- "auto"
],
"optional" : 1,
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
"type" : "string"
},
- "volume" : {
- "alias" : "file"
- },
- "iops_rd_max" : {
- "type" : "integer",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum unthrottled read I/O pool speed in operations per second."
+ "type" : "integer"
},
- "mbps" : {
- "format_description" : "mbps",
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
"optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "type" : "number"
+ "type" : "string"
},
- "bps_wr" : {
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
"optional" : 1,
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps",
- "type" : "integer"
+ "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!"
},
- "iops" : {
- "type" : "integer",
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "format_description" : "iops"
+ "type" : "string"
},
- "serial" : {
- "format" : "urlencoded",
- "type" : "string",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
+ "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,
- "maxLength" : 60
+ "type" : "boolean"
},
- "discard" : {
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
- "ignore",
- "on"
+ "none",
+ "lba",
+ "auto"
],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"optional" : 1,
- "format_description" : "ignore|on",
"type" : "string"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+ },
+ "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" : "<integer> (1 - N)"
+ },
+ "vmstatestorage" : {
+ "description" : "Default storage for VM state volumes/files.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "watchdog" : {
+ "description" : "Create a virtual hardware watchdog device.",
+ "format" : "pve-qm-watchdog",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
+ "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" : {
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore (option 'archive'), it is enough if the user has 'VM.Backup' permission and the VM already exists. If you create disks you need 'Datastore.AllocateSpace' on any used storage.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu",
+ "text" : "qemu"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get container configuration.",
+ "method" : "GET",
+ "name" : "vm_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapshot" : {
+ "description" : "Fetch config values from given snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "default_key" : 1,
- "format_description" : "volume",
- "description" : "The drive's backing volume."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "mbps_rd_max" : {
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "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"
+ },
+ "hookscript" : {
+ "description" : "Script that will be exectued during various steps in the containers lifetime.",
+ "format" : "pve-volume-id",
+ "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" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "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/<ostype>.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+] "
+ },
+ "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"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Set container options.",
+ "method" : "PUT",
+ "name" : "update_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "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",
+ "typetext" : "<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",
+ "typetext" : "<integer> (1 - 128)"
+ },
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - 128)"
+ },
+ "cpuunits" : {
+ "default" : 1024,
+ "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
+ "maximum" : 500000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 500000)"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "description" : {
+ "description" : "Container description. Only used on the configuration web interface.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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",
+ "typetext" : "[fuse=<1|0>] [,keyctl=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
+ },
+ "hookscript" : {
+ "description" : "Script that will be exectued during various steps in the containers lifetime.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "hostname" : {
+ "description" : "Set a host name for the container.",
+ "format" : "dns-name",
+ "maxLength" : 255,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "backup",
+ "disk",
+ "migrate",
+ "mounted",
+ "rollback",
+ "snapshot",
+ "snapshot-delete"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB.",
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - N)"
+ },
+ "mp[n]" : {
+ "description" : "Use volume as container mount point.",
+ "format" : {
+ "acl" : {
+ "description" : "Explicitly enable or disable ACL support.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "backup" : {
+ "description" : "Whether to include the mount point in backups.",
+ "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",
+ "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
+ },
+ "nameserver" : {
+ "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
+ "format" : "address-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "ip" : {
+ "description" : "IPv4 address in CIDR format.",
+ "format" : "pve-ipv4-config",
+ "format_description" : "(IPv4/CIDR|dhcp|manual)",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ip6" : {
+ "description" : "IPv6 address in CIDR format.",
+ "format" : "pve-ipv6-config",
+ "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mtu" : {
+ "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
+ "minimum" : 64,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
+ "format_description" : "string",
+ "pattern" : "[-_.\\w\\d]+",
+ "type" : "string"
+ },
+ "rate" : {
+ "description" : "Apply rate limiting to the interface",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "tag" : {
+ "description" : "VLAN tag for this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "trunks" : {
+ "description" : "VLAN ids to pass through the interface",
+ "format_description" : "vlanid[;vlanid...]",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:;\\d+)*)",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Network interface type.",
+ "enum" : [
+ "veth"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<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/<ostype>.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",
+ "typetext" : "<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",
+ "typetext" : "[volume=]<volume> [,acl=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
+ },
+ "searchdomain" : {
+ "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
+ "format" : "dns-name-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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+] "
+ },
+ "swap" : {
+ "default" : 512,
+ "description" : "Amount of SWAP for the VM in MB.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "tty" : {
+ "default" : 2,
+ "description" : "Specify the number of tty available to the container",
+ "maximum" : 6,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 6)"
+ },
+ "unprivileged" : {
+ "default" : 0,
+ "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "aio" : {
- "optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "enum" : [
- "native",
- "threads"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk",
+ "VM.Config.CPU",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.Options"
+ ],
+ "any",
+ 1
],
- "type" : "string"
- },
- "iops_max" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops"
- },
- "size" : {
- "type" : "string",
- "format" : "disk-size",
- "description" : "Disk size. This is purely informational and has no effect.",
- "optional" : 1
+ "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
},
- "iops_wr_max" : {
- "format_description" : "iops",
- "optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "type" : "integer"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
- },
- "type" : "string",
- "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
- "optional" : 1
- },
- "cpuunits" : {
- "optional" : 1,
- "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.",
- "minimum" : 0,
- "type" : "integer",
- "default" : 1000,
- "maximum" : 500000
- },
- "cpulimit" : {
- "optional" : 1,
- "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.",
- "minimum" : 0,
- "default" : 0,
- "type" : "number",
- "maximum" : 128
- },
- "storage" : {
- "optional" : 1,
- "description" : "Default storage.",
- "format" : "pve-storage-id",
- "type" : "string"
- },
- "unique" : {
- "type" : "boolean",
- "requires" : "archive",
- "description" : "Assign a unique random ethernet address.",
- "optional" : 1
- },
- "numa" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Enable/disable NUMA.",
- "optional" : 1
- },
- "lock" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Lock/unlock the VM.",
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ]
- },
- "agent" : {
- "optional" : 1,
- "description" : "Enable/disable Qemu GuestAgent.",
- "type" : "boolean",
- "default" : 0
+ }
},
- "virtio[n]" : {
- "type" : "string",
- "format" : {
- "secs" : {
- "type" : "integer",
- "format_description" : "count",
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count."
- },
- "heads" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count"
- },
- "mbps_rd" : {
- "type" : "number",
- "format_description" : "mbps",
- "optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second."
- },
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "cyls" : {
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "format_description" : "count",
- "type" : "integer"
- },
- "format" : {
- "type" : "string",
- "description" : "The drive's backing file's data format.",
- "optional" : 1,
- "format_description" : "drive format",
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ]
- },
- "media" : {
- "optional" : 1,
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "default" : "disk",
- "type" : "string"
- },
- "iops_wr" : {
- "format_description" : "iops",
- "optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "type" : "integer"
- },
- "detect_zeroes" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
- },
- "backup" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off",
- "optional" : 1
- },
- "bps_rd" : {
- "type" : "integer",
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "optional" : 1
- },
- "size" : {
- "type" : "string",
- "format" : "disk-size",
- "optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
- },
- "iothread" : {
- "description" : "Whether to use iothreads for this drive",
- "optional" : 1,
- "format_description" : "off|on",
- "type" : "boolean"
- },
- "iops_wr_max" : {
- "type" : "integer",
- "format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "optional" : 1
- },
- "mbps_rd_max" : {
- "type" : "number",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "format_description" : "mbps",
- "optional" : 1
- },
- "aio" : {
- "type" : "string",
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
- "optional" : 1,
- "enum" : [
- "native",
- "threads"
- ]
- },
- "iops_max" : {
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops",
- "optional" : 1,
- "type" : "integer"
- },
- "discard" : {
- "optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "format_description" : "ignore|on",
- "enum" : [
- "ignore",
- "on"
- ],
- "type" : "string"
- },
- "serial" : {
- "format_description" : "serial",
- "optional" : 1,
- "maxLength" : 60,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format" : "urlencoded",
- "type" : "string"
- },
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "default_key" : 1,
- "description" : "The drive's backing volume.",
- "format_description" : "volume"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/config",
+ "text" : "config"
+ },
+ {
+ "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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "cpus" : {
+ "description" : "Maximum usable CPUs.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "ha" : {
+ "description" : "HA manager service status.",
+ "type" : "object"
+ },
+ "lock" : {
+ "description" : "The current config lock, if any.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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"
+ }
+ }
},
- "bps_wr" : {
- "format_description" : "bps",
- "optional" : 1,
- "description" : "Maximum write speed speed in bytes per second.",
- "type" : "integer"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/current",
+ "text" : "current"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Start the container.",
+ "method" : "POST",
+ "name" : "vm_start",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
},
- "mbps" : {
- "type" : "number",
- "format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "optional" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/start",
+ "text" : "start"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Stop the container. This will abruptly stop all processes running in the container.",
+ "method" : "POST",
+ "name" : "vm_stop",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
},
- "iops" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
+ "text" : "stop"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
+ "method" : "POST",
+ "name" : "vm_shutdown",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "forceStop" : {
+ "default" : 0,
+ "description" : "Make sure the Container stops.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeout" : {
+ "default" : 60,
+ "description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
},
- "rerror" : {
- "description" : "Read error action.",
- "optional" : 1,
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
+ "text" : "shutdown"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Suspend the container.",
+ "method" : "POST",
+ "name" : "vm_suspend",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
},
- "trans" : {
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
- "optional" : 1,
- "type" : "string"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
+ "text" : "suspend"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Resume the container.",
+ "method" : "POST",
+ "name" : "vm_resume",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
},
- "volume" : {
- "alias" : "file"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
+ "text" : "resume"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "vmcmdidx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "optional" : 1,
- "format_description" : "iops",
- "type" : "integer"
+ "permissions" : {
+ "user" : "all"
},
- "werror" : {
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
],
- "description" : "Write error action.",
- "format_description" : "enospc|ignore|report|stop",
- "optional" : 1,
- "type" : "string"
- },
- "iops_rd" : {
- "description" : "Maximum read I/O speed in operations per second.",
- "format_description" : "iops",
- "optional" : 1,
- "type" : "integer"
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/status",
+ "text" : "status"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Rollback LXC state to specified snapshot.",
+ "method" : "POST",
+ "name" : "rollback",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
+ "text" : "rollback"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get snapshot configuration",
+ "method" : "GET",
+ "name" : "get_snapshot_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
+ "text" : "config"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "description" : "Delete a LXC snapshot.",
+ "method" : "DELETE",
+ "name" : "delsnapshot",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "description" : "For removal from config file, even if removing disk snapshots fails.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cmd}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
},
- "mbps_wr_max" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
+ "text" : "{snapname}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List all snapshots.",
+ "method" : "GET",
+ "name" : "list",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "bps" : {
- "type" : "integer",
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
- "optional" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "cache" : {
- "type" : "string",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
+ "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"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
],
- "description" : "The drive's cache mode",
- "optional" : 1,
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
- },
- "snapshot" : {
- "optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean"
+ "type" : "array"
}
},
- "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
- "optional" : 1
- },
- "bios" : {
- "optional" : 1,
- "description" : "Select BIOS implementation.",
- "enum" : [
- "seabios",
- "ovmf"
- ],
- "default" : "seabios",
- "type" : "string"
- },
- "parallel[n]" : {
- "optional" : 1,
- "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\nExperimental: user reported problems with this option.\n",
- "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
- "type" : "string"
- },
- "usb[n]" : {
- "format" : {
- "usb3" : {
- "description" : "Specifies whether if given host option is a USB3 device or port",
- "optional" : 1,
- "format_description" : "yes|no",
- "type" : "boolean"
+ "POST" : {
+ "description" : "Snapshot a container.",
+ "method" : "POST",
+ "name" : "snapshot",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "description" : {
+ "description" : "A textual description or comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "host" : {
- "description" : "The Host USB device or port or the value spice",
- "format_description" : "HOSTUSBDEVICE|spice",
- "default_key" : 1,
- "format" : "pve-qm-usb-device",
- "type" : "string"
- }
- },
- "type" : "string",
- "optional" : 1,
- "description" : "Configure an USB device (n is 0 to 4). This can be used to\npass-through usb devices to the guest. 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\nThe 'usb3' option determines whether the device is a USB3 device or not (this does currently not work reliably with spice redirection and is then ignored).\n\n"
- },
- "smp" : {
- "minimum" : 1,
- "default" : 1,
- "type" : "integer",
- "description" : "The number of CPUs. Please use option -sockets instead.",
- "optional" : 1
- },
- "tablet" : {
- "optional" : 1,
- "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).",
- "default" : 1,
- "type" : "boolean"
- }
- }
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "user" : "all",
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore (option 'archive'), it is enough if the user has 'VM.Backup' permission and the VM already exists. If you create disks you need 'Datastore.AllocateSpace' on any used storage."
- }
- },
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "full" : {
- "optional" : 1,
- "description" : "Determine the full status of active VMs.",
- "type" : "boolean"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- }
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
- "user" : "all"
- },
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{vmid}"
- }
- ],
- "items" : {
- "properties" : {},
- "type" : "object"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
+ "text" : "snapshot"
},
- "type" : "array"
- },
- "name" : "vmlist",
- "method" : "GET",
- "description" : "Virtual machine index (per node)."
- }
- }
- },
- {
- "children" : [
- {
- "leaf" : 0,
- "text" : "{vmid}",
- "children" : [
{
- "leaf" : 1,
- "text" : "config",
- "path" : "/nodes/{node}/lxc/{vmid}/config",
- "info" : {
- "PUT" : {
- "parameters" : {
- "properties" : {
- "console" : {
- "default" : 1,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Attach a console device (/dev/console) to the container."
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Delete rule.",
+ "method" : "DELETE",
+ "name" : "delete_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "cpulimit" : {
- "minimum" : 0,
- "maximum" : 128,
- "type" : "number",
- "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.",
- "optional" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
+ "text" : "{pos}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "cpuunits" : {
- "minimum" : 0,
- "type" : "integer",
- "default" : 1024,
- "maximum" : 500000,
- "optional" : 1,
- "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."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "net[n]" : {
- "description" : "Specifies network interfaces for the container.",
- "optional" : 1,
- "format" : {
- "ip6" : {
- "format" : "pve-ipv6-config",
+ "proxyto" : null,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new rule.",
+ "method" : "POST",
+ "name" : "create_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 0,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
"type" : "string",
- "description" : "IPv6 address in CIDR format.",
+ "typetext" : "<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",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
"optional" : 1,
- "format_description" : "IPv6Format/CIDR"
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
+ "text" : "rules"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
+ "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" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "firewall" : {
- "type" : "boolean",
- "optional" : 1,
- "format_description" : "[1|0]",
- "description" : "Controls whether this interface's firewall rules should be used."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
},
- "mtu" : {
- "type" : "integer",
- "minimum" : 64,
- "format_description" : "Number",
- "optional" : 1,
- "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read alias.",
+ "method" : "GET",
+ "name" : "read_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "gw6" : {
- "optional" : 1,
- "format_description" : "GatewayIPv6",
- "description" : "Default gateway for IPv6 traffic.",
- "format" : "ipv6",
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "hwaddr" : {
- "type" : "string",
- "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})",
- "description" : "Bridge to attach the network device to. (lxc.network.hwaddr)",
- "optional" : 1,
- "format_description" : "MAC"
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rename" : {
+ "description" : "Rename an existing alias.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "gw" : {
- "format_description" : "GatewayIPv4",
- "description" : "Default gateway for IPv4 traffic.",
- "optional" : 1,
- "type" : "string",
- "format" : "ipv4"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
},
- "ip" : {
- "format" : "pve-ipv4-config",
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List aliases",
+ "method" : "GET",
+ "name" : "get_aliases",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "IPv4 address in CIDR format.",
- "format_description" : "IPv4Format/CIDR",
- "optional" : 1
+ "typetext" : "<string>"
},
- "tag" : {
- "optional" : 1,
- "description" : "VLAN tag for this interface.",
- "format_description" : "VlanNo",
- "minimum" : "2",
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "maximum" : "4094"
- },
- "rate" : {
- "type" : "number",
- "description" : "Apply rate limiting to the interface",
- "format_description" : "mbps",
- "optional" : 1
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ }
},
- "name" : {
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create IP or Network Alias.",
+ "method" : "POST",
+ "name" : "create_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
"type" : "string",
- "pattern" : "[-_.\\w\\d]+",
- "format_description" : "String",
- "description" : "Name of the network device as seen from inside the container. (lxc.network.name)"
+ "typetext" : "<string>"
},
- "bridge" : {
- "pattern" : "[-_.\\w\\d]+",
+ "comment" : {
"optional" : 1,
- "description" : "Bridge to attach the network device to.",
- "format_description" : "vmbr<Number>",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
- "trunks" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "optional" : 1,
- "description" : "VLAN ids to pass through the interface",
- "format_description" : "vlanid[;vlanid...]",
- "pattern" : "(?^:\\d+(?:;\\d+)*)"
+ "typetext" : "<string>"
},
- "type" : {
- "description" : "Network interface type.",
- "optional" : 1,
- "enum" : [
- "veth"
- ],
- "type" : "string"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "type" : "string"
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "type" : "string"
- },
- "lock" : {
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ],
- "optional" : 1,
- "description" : "Lock/unlock the VM.",
- "type" : "string"
- },
- "swap" : {
- "minimum" : 0,
- "type" : "integer",
- "default" : 512,
- "description" : "Amount of SWAP for the VM in MB.",
- "optional" : 1
- },
- "description" : {
- "description" : "Container description. Only used on the configuration web interface.",
- "optional" : 1,
- "type" : "string"
- },
- "onboot" : {
- "description" : "Specifies whether a VM will be started during system bootup.",
- "optional" : 1,
- "default" : 0,
- "type" : "boolean"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "ostype" : {
- "type" : "string",
- "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
- "optional" : 1,
- "enum" : [
- "debian",
- "ubuntu",
- "centos",
- "fedora",
- "opensuse",
- "archlinux",
- "alpine",
- "unmanaged"
- ]
- },
- "tty" : {
- "minimum" : 0,
- "default" : 2,
- "maximum" : 6,
- "type" : "integer",
- "description" : "Specify the number of tty available to the container",
- "optional" : 1
- },
- "hostname" : {
- "description" : "Set a host name for the container.",
- "optional" : 1,
- "maxLength" : 255,
- "type" : "string",
- "format" : "dns-name"
- },
- "startup" : {
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
- "optional" : 1,
- "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",
- "type" : "string"
- },
- "memory" : {
- "description" : "Amount of RAM for the VM in MB.",
- "optional" : 1,
- "type" : "integer",
- "default" : 512,
- "minimum" : 16
+ }
},
- "cmode" : {
- "type" : "string",
- "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).",
- "optional" : 1,
- "enum" : [
- "shell",
- "console",
- "tty"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
]
},
- "mp[n]" : {
- "optional" : 1,
- "description" : "Use volume as container mount point (experimental feature).",
- "type" : "string",
- "format" : {
- "acl" : {
- "type" : "boolean",
- "optional" : 1,
- "format_description" : "acl",
- "description" : "Explicitly enable or disable ACL support."
- },
- "ro" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "format_description" : "ro"
- },
- "mp" : {
- "format" : "pve-lxc-mp-string",
- "type" : "string",
- "format_description" : "Path",
- "description" : "Path to the mountpoint as seen from inside the container."
- },
- "backup" : {
- "optional" : 1,
- "description" : "Whether to include the mountpoint in backups.",
- "format_description" : "[1|0]",
- "type" : "boolean"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
+ "text" : "aliases"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Remove IP or Network from IPSet.",
+ "method" : "DELETE",
+ "name" : "remove_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read IP or Network settings from IPSet.",
+ "method" : "GET",
+ "name" : "read_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update IP or Network settings",
+ "method" : "PUT",
+ "name" : "update_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "volume" : {
- "description" : "Volume, device or directory to mount into the container.",
- "format_description" : "volume",
- "default_key" : 1,
- "format" : "pve-lxc-mp-string",
- "type" : "string"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
+ "text" : "{cidr}"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "description" : "Delete IPSet",
+ "method" : "DELETE",
+ "name" : "delete_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "size" : {
- "description" : "Volume size (read only value).",
- "optional" : 1,
- "format_description" : "DiskSize",
- "format" : "disk-size",
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
},
- "quota" : {
- "type" : "boolean",
- "format_description" : "[0|1]",
- "optional" : 1,
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
- }
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- },
- "template" : {
- "type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "Enable/disable Template."
- },
- "nameserver" : {
- "type" : "string",
- "format" : "address-list",
- "optional" : 1,
- "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."
- },
- "arch" : {
- "type" : "string",
- "default" : "amd64",
- "optional" : 1,
- "description" : "OS architecture type.",
- "enum" : [
- "amd64",
- "i386"
- ]
- },
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
- "description" : "Reference to unused volumes.",
- "optional" : 1
- },
- "protection" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
- "optional" : 1
- },
- "rootfs" : {
- "type" : "string",
- "format" : {
- "backup" : {
- "type" : "boolean",
- "description" : "Whether to include the mountpoint in backups.",
- "optional" : 1,
- "format_description" : "[1|0]"
- },
- "volume" : {
- "description" : "Volume, device or directory to mount into the container.",
- "format_description" : "volume",
- "default_key" : 1,
- "format" : "pve-lxc-mp-string",
- "type" : "string"
+ },
+ "GET" : {
+ "description" : "List IPSet content",
+ "method" : "GET",
+ "name" : "get_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "size" : {
- "optional" : 1,
- "description" : "Volume size (read only value).",
- "format_description" : "DiskSize",
- "type" : "string",
- "format" : "disk-size"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "quota" : {
- "format_description" : "[0|1]",
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
- "optional" : 1,
- "type" : "boolean"
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cidr}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Add IP or Network to IPSet.",
+ "method" : "POST",
+ "name" : "create_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "acl" : {
- "description" : "Explicitly enable or disable ACL support.",
- "format_description" : "acl",
- "optional" : 1,
- "type" : "boolean"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
},
- "ro" : {
- "type" : "boolean",
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "optional" : 1,
- "format_description" : "ro"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
- },
- "optional" : 1,
- "description" : "Use volume as container root."
- },
- "unprivileged" : {
- "optional" : 1,
- "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
- "type" : "boolean",
- "default" : 0
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "format" : "pve-configid-list",
- "type" : "string"
- },
- "searchdomain" : {
- "format" : "dns-name-list",
- "type" : "string",
- "optional" : 1,
- "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk",
- "VM.Config.CPU",
- "VM.Config.Memory",
- "VM.Config.Network",
- "VM.Config.Options"
- ],
- "any",
- 1
- ]
- },
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT",
- "name" : "update_vm",
- "description" : "Set container options."
- },
- "GET" : {
- "method" : "GET",
- "name" : "vm_config",
- "returns" : {
- "type" : "object",
- "properties" : {
- "digest" : {
- "type" : "string",
- "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications."
- }
- }
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ }
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
+ "text" : "{name}"
}
- },
- "description" : "Get container configuration.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- }
- }
- }
- },
- {
- "path" : "/nodes/{node}/lxc/{vmid}/status",
- "children" : [
- {
+ ],
"info" : {
"GET" : {
- "protected" : 1,
+ "description" : "List IPSets",
+ "method" : "GET",
+ "name" : "ipset_index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new IPSet",
+ "method" : "POST",
+ "name" : "create_ipset",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "rename" : {
+ "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "description" : "Get virtual machine status.",
- "method" : "GET",
- "name" : "vm_status",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
"returns" : {
- "type" : "object"
+ "type" : "null"
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/status/current",
- "leaf" : 1,
- "text" : "current"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
+ "text" : "ipset"
},
- {
- "text" : "start",
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/status/start",
+ {
"info" : {
- "POST" : {
- "name" : "vm_start",
- "method" : "POST",
- "returns" : {
- "type" : "string"
- },
- "description" : "Start the container.",
- "proxyto" : "node",
+ "GET" : {
+ "description" : "Get VM firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "skiplock" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option."
- },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
"perm",
"/vms/{vmid}",
[
- "VM.PowerMgmt"
+ "VM.Audit"
]
]
},
- "protected" : 1
- }
- }
- },
- {
- "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
- "info" : {
- "POST" : {
- "method" : "POST",
- "name" : "vm_stop",
- "returns" : {
- "type" : "string"
- },
- "description" : "Stop the container. This will abruptly stop all processes running in the container.",
"proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "dhcp" : {
+ "description" : "Enable DHCP.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "enable" : {
+ "description" : "Enable/disable firewall rules.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ipfilter" : {
+ "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macfilter" : {
+ "description" : "Enable/disable MAC address filter.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ndp" : {
+ "description" : "Enable NDP.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Set Firewall options.",
+ "method" : "PUT",
+ "name" : "set_options",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dhcp" : {
+ "description" : "Enable DHCP.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "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" : "<string>"
+ },
+ "enable" : {
+ "description" : "Enable/disable firewall rules.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ipfilter" : {
+ "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macfilter" : {
+ "description" : "Enable/disable MAC address filter.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ndp" : {
+ "description" : "Enable NDP.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "skiplock" : {
- "type" : "boolean",
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
"optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.PowerMgmt"
+ "VM.Config.Network"
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
"leaf" : 1,
- "text" : "stop"
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
+ "text" : "options"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
"info" : {
- "POST" : {
- "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
- "name" : "vm_shutdown",
- "method" : "POST",
- "returns" : {
- "type" : "string"
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "proxyto" : "node",
+ "GET" : {
+ "description" : "Read firewall log",
+ "method" : "GET",
+ "name" : "log",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "timeout" : {
- "description" : "Wait maximal timeout seconds.",
+ "limit" : {
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "default" : 60,
- "minimum" : 0
+ "typetext" : "<integer> (0 - N)"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "forceStop" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Make sure the Container stops.",
- "optional" : 1
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
- }
- }
- },
- "leaf" : 1,
- "text" : "shutdown"
- },
- {
- "info" : {
- "POST" : {
- "protected" : 1,
+ },
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.PowerMgmt"
+ "VM.Console"
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- }
- }
- },
- "description" : "Suspend the container.",
"returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "vm_suspend"
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
- "text" : "suspend",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
+ "text" : "log"
},
{
"info" : {
- "POST" : {
+ "GET" : {
+ "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
+ "method" : "GET",
+ "name" : "refs",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Only list references of specified type.",
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "optional" : 1,
"type" : "string"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "format" : "pve-vmid"
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.PowerMgmt"
+ "VM.Audit"
]
]
},
- "protected" : 1,
"returns" : {
- "type" : "string"
- },
- "name" : "vm_resume",
- "method" : "POST",
- "description" : "Resume the container."
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
- "text" : "resume",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
+ "text" : "refs"
}
],
"info" : {
"GET" : {
- "description" : "Directory index",
- "permissions" : {
- "user" : "all"
- },
- "name" : "vmcmdidx",
+ "description" : "Directory index.",
"method" : "GET",
- "proxyto" : "node",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "format" : "pve-vmid"
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
"returns" : {
"items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- }
+ "properties" : {},
+ "type" : "object"
},
- "type" : "array",
"links" : [
{
- "href" : "{subdir}",
+ "href" : "{name}",
"rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
}
},
"leaf" : 0,
- "text" : "status"
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall",
+ "text" : "firewall"
},
{
"info" : {
- "POST" : {
- "description" : "Snapshot a container.",
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- },
- "name" : "snapshot",
- "method" : "POST",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
+ "GET" : {
+ "description" : "Read VM RRD statistics (returns PNG)",
+ "method" : "GET",
+ "name" : "rrd",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "snapname" : {
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "format" : "pve-configid",
+ "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" : "<string>"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "description" : {
- "optional" : 1,
- "description" : "A textual description or comment.",
+ "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" : "<integer> (1 - N)"
}
}
},
- "proxyto" : "node"
- },
- "GET" : {
- "name" : "list",
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
]
},
- "description" : "List all snapshots.",
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/rrd",
+ "text" : "rrd"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Read VM RRD statistics",
+ "method" : "GET",
+ "name" : "rrddata",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "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.",
- "type" : "integer",
"format" : "pve-vmid",
- "minimum" : 1
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"VM.Audit"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "force" : {
- "description" : "For removal from config file, even if removing disk snapshots fails.",
- "optional" : 1,
- "type" : "boolean"
- },
- "snapname" : {
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
+ "text" : "rrddata"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Creates a TCP VNC proxy connections.",
+ "method" : "POST",
+ "name" : "vncproxy",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "height" : {
+ "description" : "sets the height of the console in pixels.",
+ "maximum" : 2160,
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - 2160)"
},
- "description" : "Delete a LXC snapshot.",
- "name" : "delsnapshot",
- "method" : "DELETE",
- "returns" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "the task ID."
- }
- },
- "GET" : {
- "description" : "",
- "permissions" : {
- "user" : "all"
- },
- "method" : "GET",
- "name" : "snapshot_cmd_idx",
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{cmd}"
- }
- ],
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "snapname" : {
- "format" : "pve-configid",
- "type" : "string",
- "maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- }
- }
- },
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
- "children" : [
- {
- "leaf" : 1,
- "text" : "rollback",
- "info" : {
- "POST" : {
- "description" : "Rollback LXC state to specified snapshot.",
- "name" : "rollback",
- "method" : "POST",
- "returns" : {
- "description" : "the task ID.",
- "type" : "string"
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "snapname" : {
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "format" : "pve-configid",
- "type" : "string"
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node"
- }
+ "typetext" : "<string>"
},
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback"
- },
- {
- "leaf" : 1,
- "text" : "config",
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "description" : "Get snapshot configuration",
- "method" : "GET",
- "name" : "get_snapshot_config",
- "returns" : {
- "type" : "object"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "snapname" : {
- "format" : "pve-configid",
- "type" : "string",
- "maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- }
- }
- },
- "proxyto" : "node"
- },
- "PUT" : {
- "description" : "Update snapshot metadata.",
- "name" : "update_snapshot_config",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "snapname" : {
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
- },
- "description" : {
- "type" : "string",
- "description" : "A textual description or comment.",
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- }
- }
- },
- "proxyto" : "node"
- }
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "websocket" : {
+ "description" : "use websocket instead of standard VNC.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config"
+ "width" : {
+ "description" : "sets the width of the console in pixels.",
+ "maximum" : 4096,
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - 4096)"
+ }
}
- ],
- "leaf" : 0,
- "text" : "{snapname}"
+ },
+ "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"
+ }
+ }
+ }
}
- ],
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
- "text" : "snapshot",
- "leaf" : 0
- },
- {
- "children" : [
- {
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
- "children" : [
- {
- "info" : {
- "PUT" : {
- "description" : "Modify rule data.",
- "returns" : {
- "type" : "null"
- },
- "name" : "update_rule",
- "method" : "PUT",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "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.",
- "optional" : 1
- },
- "action" : {
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "optional" : 1,
- "maxLength" : 20,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- },
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "iface" : {
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "maxLength" : 20,
- "optional" : 1,
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "source" : {
- "optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "type" : "string",
- "format" : "pve-fw-addr-spec"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "macro" : {
- "type" : "string",
- "maxLength" : 128,
- "optional" : 1
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "enable" : {
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "moveto" : {
- "optional" : 1,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
- "type" : "integer",
- "minimum" : 0
- },
- "dport" : {
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "format" : "pve-fw-dport-spec",
- "type" : "string"
- },
- "proto" : {
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-protocol-spec"
- },
- "sport" : {
- "optional" : 1,
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "format" : "pve-fw-sport-spec",
- "type" : "string"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
- }
- }
- },
- "proxyto" : null
- },
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "proxyto" : null,
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "method" : "DELETE",
- "name" : "delete_rule",
- "returns" : {
- "type" : "null"
- },
- "description" : "Delete rule."
- },
- "GET" : {
- "description" : "Get single rule data.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "method" : "GET",
- "name" : "get_rule"
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
+ "text" : "vncproxy"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Creates a TCP proxy connection.",
+ "method" : "POST",
+ "name" : "termproxy",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
- "leaf" : 1,
- "text" : "{pos}"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
}
- ],
- "info" : {
- "POST" : {
- "description" : "Create new rule.",
- "method" : "POST",
- "name" : "create_rule",
- "returns" : {
- "type" : "null"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "port" : {
+ "type" : "integer"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "ticket" : {
+ "type" : "string"
},
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "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.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-addr-spec"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "action" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "optional" : 0,
- "maxLength" : 20,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name."
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 0
- },
- "macro" : {
- "type" : "string",
- "maxLength" : 128,
- "optional" : 1
- },
- "dport" : {
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "format" : "pve-fw-dport-spec",
- "type" : "string"
- },
- "enable" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- },
- "digest" : {
- "optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
- },
- "iface" : {
- "type" : "string",
- "format" : "pve-iface",
- "minLength" : 2,
- "maxLength" : 20,
- "optional" : 1,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings."
- },
- "proto" : {
- "type" : "string",
- "format" : "pve-fw-protocol-spec",
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
- },
- "sport" : {
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-sport-spec"
- },
- "source" : {
- "optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "format" : "pve-fw-addr-spec",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "upid" : {
+ "type" : "string"
+ },
+ "user" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
+ "text" : "termproxy"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Opens a weksocket for VNC traffic.",
+ "method" : "GET",
+ "name" : "vncwebsocket",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "port" : {
+ "description" : "Port number returned by previous vncproxy call.",
+ "maximum" : 5999,
+ "minimum" : 5900,
+ "type" : "integer",
+ "typetext" : "<integer> (5900 - 5999)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vncticket" : {
+ "description" : "Ticket from previous call to vncproxy.",
+ "maxLength" : 512,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ],
+ "description" : "You also need to pass a valid ticket (vncticket)."
+ },
+ "returns" : {
+ "properties" : {
+ "port" : {
+ "type" : "string"
}
},
- "GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{pos}"
- }
- ]
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
+ "text" : "vncwebsocket"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Returns a SPICE configuration to connect to the CT.",
+ "method" : "POST",
+ "name" : "spiceproxy",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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"
},
- "proxyto" : null,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- }
- }
+ "password" : {
+ "type" : "string"
},
- "method" : "GET",
- "name" : "get_rules",
- "description" : "List rules.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "proxy" : {
+ "type" : "string"
+ },
+ "tls-port" : {
+ "type" : "integer"
+ },
+ "type" : {
+ "type" : "string"
}
}
- },
- "leaf" : 0,
- "text" : "rules"
- },
- {
- "leaf" : 0,
- "text" : "aliases",
- "info" : {
- "POST" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Alias name."
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDR",
- "description" : "Network/IP specification in CIDR format."
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
+ "text" : "spiceproxy"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Migrate the container to another node. Creates a new migration task.",
+ "method" : "POST",
+ "name" : "migrate_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bwlimit" : {
+ "default" : "migrate limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
},
- "returns" : {
- "type" : "null"
+ "force" : {
+ "description" : "Force migration despite local bind / device mounts. NOTE: deprecated, use 'shared' property of mount point instead.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "method" : "POST",
- "name" : "create_alias",
- "description" : "Create IP or Network Alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "online" : {
+ "description" : "Use online/live migration.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "description" : "List aliases",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "restart" : {
+ "description" : "Use restart migration",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "cidr" : {
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "name" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ]
+ "target" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeout" : {
+ "default" : 180,
+ "description" : "Timeout in seconds for shutdown for restart migration",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Migrate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/migrate",
+ "text" : "migrate"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "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" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "hasFeature" : {
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/feature",
+ "text" : "feature"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Create a Template.",
+ "method" : "POST",
+ "name" : "template",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "name" : "get_aliases",
- "method" : "GET"
- }
- },
- "children" : [
- {
- "text" : "{name}",
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
- "info" : {
- "DELETE" : {
- "description" : "Remove IP or Network alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "protected" : 1,
- "parameters" : {
- "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"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "Alias name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE",
- "name" : "remove_alias"
- },
- "GET" : {
- "description" : "Read alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "returns" : {
- "type" : "object"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- },
- "name" : {
- "description" : "Alias name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "read_alias",
- "method" : "GET"
- },
- "PUT" : {
- "name" : "update_alias",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Alias name.",
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "maxLength" : 40
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "rename" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Rename an existing alias.",
- "optional" : 1
- },
- "cidr" : {
- "format" : "IPorCIDR",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
- }
- }
- },
- "protected" : 1,
- "description" : "Update IP or Network alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- }
- }
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
- ],
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases"
- },
- {
- "text" : "ipset",
- "leaf" : 0,
- "info" : {
- "POST" : {
- "name" : "create_ipset",
- "method" : "POST",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "maxLength" : 40,
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "rename" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "optional" : 1,
- "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet."
- }
- },
- "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Allocate"
+ ]
+ ],
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/template",
+ "text" : "template"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Create a container clone/copy",
+ "method" : "POST",
+ "name" : "clone_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bwlimit" : {
+ "default" : "clone limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
+ },
+ "description" : {
+ "description" : "Description for the new CT.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "full" : {
+ "description" : "Create a full copy of all disks. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "returns" : {
- "type" : "null"
+ "hostname" : {
+ "description" : "Set a hostname for the new CT.",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "newid" : {
+ "description" : "VMID for the clone.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "description" : "Create new IPSet",
- "protected" : 1
- },
- "GET" : {
- "description" : "List IPSets",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- }
- }
+ "pool" : {
+ "description" : "Add the new CT to the specified pool.",
+ "format" : "pve-poolid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0
- }
- }
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ]
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "method" : "GET",
- "name" : "ipset_index"
- }
- },
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
- "children" : [
- {
- "text" : "{name}",
- "leaf" : 0,
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Remove IP or Network from IPSet.",
- "protected" : 1,
- "name" : "remove_ip",
- "method" : "DELETE",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDRorAlias",
- "description" : "Network/IP specification in CIDR format."
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "digest" : {
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "type" : "string"
- },
- "name" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 64,
- "description" : "IP set name."
- },
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- }
- },
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "Read IP or Network settings from IPSet.",
- "protected" : 1,
- "name" : "read_ip",
- "method" : "GET",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDRorAlias"
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "maxLength" : 64,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "object"
- }
- },
- "PUT" : {
- "method" : "PUT",
- "name" : "update_ip",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- }
- }
- },
- "protected" : 1,
- "description" : "Update IP or Network settings",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- }
- }
- },
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
- "leaf" : 1,
- "text" : "{cidr}"
- }
+ "storage" : {
+ "description" : "Target storage for full clone.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target" : {
+ "description" : "Target node. Only allowed if the original VM is on shared storage.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "and",
+ [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Clone"
+ ]
],
- "info" : {
- "GET" : {
- "name" : "get_ipset",
- "method" : "GET",
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{cidr}"
- }
- ],
- "items" : {
- "properties" : {
- "cidr" : {
- "type" : "string"
- },
- "digest" : {
- "maxLength" : 40,
- "optional" : 0,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "description" : "IP set name.",
- "maxLength" : 64,
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "List IPSet content"
- },
- "DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Delete IPSet",
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "name" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "description" : "IP set name.",
- "maxLength" : 64,
- "type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE",
- "name" : "delete_ipset"
- },
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "type" : "string",
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- },
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDRorAlias",
- "description" : "Network/IP specification in CIDR format."
- },
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- },
- "method" : "POST",
- "name" : "create_ip",
- "protected" : 1,
- "description" : "Add IP or Network to IPSet.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- }
- }
+ [
+ "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}/lxc/{vmid}/clone",
+ "text" : "clone"
+ },
+ {
+ "info" : {
+ "PUT" : {
+ "description" : "Resize a container mount point.",
+ "method" : "PUT",
+ "name" : "resize_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disk" : {
+ "description" : "The disk you want to resize.",
+ "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"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "size" : {
+ "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
+ "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/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" : {
+ "bwlimit" : {
+ "default" : "clone limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
+ },
+ "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" : "<boolean>"
+ },
+ "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" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "Target Storage.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (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" : {
+ "DELETE" : {
+ "description" : "Destroy the container (also delete all uses files).",
+ "method" : "DELETE",
+ "name" : "destroy_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Allocate"
]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "GET" : {
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "vmdiridx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}",
+ "text" : "{vmid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "LXC container index (per node).",
+ "method" : "GET",
+ "name" : "vmlist",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cpus" : {
+ "description" : "Maximum usable CPUs.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "lock" : {
+ "description" : "The current config lock, if any.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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" : [
+ {
+ "href" : "{vmid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create or restore a container.",
+ "method" : "POST",
+ "name" : "create_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "arch" : {
+ "default" : "amd64",
+ "description" : "OS architecture type.",
+ "enum" : [
+ "amd64",
+ "i386",
+ "arm64",
+ "armhf"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bwlimit" : {
+ "default" : "restore limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
+ },
+ "cmode" : {
+ "default" : "tty",
+ "description" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login).",
+ "enum" : [
+ "shell",
+ "console",
+ "tty"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "console" : {
+ "default" : 1,
+ "description" : "Attach a console device (/dev/console) to the container.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<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",
+ "typetext" : "<integer> (1 - 128)"
+ },
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - 128)"
+ },
+ "cpuunits" : {
+ "default" : 1024,
+ "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
+ "maximum" : 500000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 500000)"
+ },
+ "description" : {
+ "description" : "Container description. Only used on the configuration web interface.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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",
+ "typetext" : "[fuse=<1|0>] [,keyctl=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
+ },
+ "force" : {
+ "description" : "Allow to overwrite existing container.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "hookscript" : {
+ "description" : "Script that will be exectued during various steps in the containers lifetime.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "hostname" : {
+ "description" : "Set a host name for the container.",
+ "format" : "dns-name",
+ "maxLength" : 255,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ignore-unpack-errors" : {
+ "description" : "Ignore errors when extracting the template.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "backup",
+ "disk",
+ "migrate",
+ "mounted",
+ "rollback",
+ "snapshot",
+ "snapshot-delete"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB.",
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - N)"
+ },
+ "mp[n]" : {
+ "description" : "Use volume as container mount point.",
+ "format" : {
+ "acl" : {
+ "description" : "Explicitly enable or disable ACL support.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "backup" : {
+ "description" : "Whether to include the mount point in backups.",
+ "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",
+ "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
+ },
+ "nameserver" : {
+ "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
+ "format" : "address-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "ip" : {
+ "description" : "IPv4 address in CIDR format.",
+ "format" : "pve-ipv4-config",
+ "format_description" : "(IPv4/CIDR|dhcp|manual)",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ip6" : {
+ "description" : "IPv6 address in CIDR format.",
+ "format" : "pve-ipv6-config",
+ "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mtu" : {
+ "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
+ "minimum" : 64,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
+ "format_description" : "string",
+ "pattern" : "[-_.\\w\\d]+",
+ "type" : "string"
+ },
+ "rate" : {
+ "description" : "Apply rate limiting to the interface",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "tag" : {
+ "description" : "VLAN tag for this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "trunks" : {
+ "description" : "VLAN ids to pass through the interface",
+ "format_description" : "vlanid[;vlanid...]",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:;\\d+)*)",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Network interface type.",
+ "enum" : [
+ "veth"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ostemplate" : {
+ "description" : "The OS template or backup file.",
+ "maxLength" : 255,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ostype" : {
+ "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
+ "enum" : [
+ "debian",
+ "ubuntu",
+ "centos",
+ "fedora",
+ "opensuse",
+ "archlinux",
+ "alpine",
+ "gentoo",
+ "unmanaged"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "password" : {
+ "description" : "Sets root password inside container.",
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pool" : {
+ "description" : "Add the VM to the specified pool.",
+ "format" : "pve-poolid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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",
+ "typetext" : "<boolean>"
+ },
+ "restore" : {
+ "description" : "Mark this as restore task.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<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"
+ }
},
- {
- "leaf" : 1,
- "text" : "options",
- "info" : {
- "PUT" : {
- "name" : "set_options",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "description" : "Set Firewall options.",
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "policy_out" : {
- "type" : "string",
- "description" : "Output policy.",
- "optional" : 1,
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
- },
- "macfilter" : {
- "description" : "Enable/disable MAC address filter.",
- "optional" : 1,
- "type" : "boolean"
- },
- "policy_in" : {
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "optional" : 1,
- "description" : "Input policy.",
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- },
- "dhcp" : {
- "optional" : 1,
- "description" : "Enable DHCP.",
- "type" : "boolean"
- },
- "ndp" : {
- "type" : "boolean",
- "description" : "Enable NDP.",
- "optional" : 1
- },
- "ipfilter" : {
- "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
- "optional" : 1,
- "type" : "boolean"
- },
- "log_level_in" : {
- "optional" : 1,
- "description" : "Log level for incoming traffic.",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "type" : "string"
- },
- "enable" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable firewall rules."
- },
- "digest" : {
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "type" : "string"
- },
- "log_level_out" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[volume=]<volume> [,acl=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
+ },
+ "searchdomain" : {
+ "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
+ "format" : "dns-name-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ssh-public-keys" : {
+ "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "default" : 0,
+ "description" : "Start the CT after its creation finished successfully.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "startup" : {
+ "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
+ "format" : "pve-startup-order",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
+ },
+ "storage" : {
+ "default" : "local",
+ "description" : "Default Storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "swap" : {
+ "default" : 512,
+ "description" : "Amount of SWAP for the VM in MB.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "tty" : {
+ "default" : 2,
+ "description" : "Specify the number of tty available to the container",
+ "maximum" : 6,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 6)"
+ },
+ "unique" : {
+ "description" : "Assign a unique random ethernet address.",
+ "optional" : 1,
+ "requires" : "restore",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "unprivileged" : {
+ "default" : 0,
+ "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore, it is enough if the user has 'VM.Backup' permission and the VM already exists. You also need 'Datastore.AllocateSpace' permissions on the storage.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc",
+ "text" : "lxc"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "description" : "ceph osd in",
+ "method" : "POST",
+ "name" : "in",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "description" : "Log level for outgoing traffic.",
- "optional" : 1
- },
- "radv" : {
- "description" : "Allow sending Router Advertisement.",
- "optional" : 1,
- "type" : "boolean"
+ "typetext" : "<string>"
},
- "delete" : {
- "type" : "string",
- "format" : "pve-configid-list",
- "optional" : 1,
- "description" : "A list of settings you want to delete."
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/",
[
- "VM.Config.Network"
+ "Sys.Modify"
]
]
},
- "protected" : 1
- },
- "GET" : {
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
+ "text" : "in"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "ceph osd out",
+ "method" : "POST",
+ "name" : "out",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/",
[
- "VM.Audit"
+ "Sys.Modify"
]
]
},
- "description" : "Get VM firewall options.",
- "method" : "GET",
- "name" : "get_options",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "properties" : {
- "policy_out" : {
- "optional" : 1,
- "description" : "Output policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "type" : "string"
- },
- "ipfilter" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added."
- },
- "dhcp" : {
- "description" : "Enable DHCP.",
- "optional" : 1,
- "type" : "boolean"
- },
- "ndp" : {
- "optional" : 1,
- "description" : "Enable NDP.",
- "type" : "boolean"
- },
- "policy_in" : {
- "type" : "string",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "description" : "Input policy.",
- "optional" : 1
- },
- "macfilter" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable MAC address filter."
- },
- "enable" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable firewall rules."
- },
- "log_level_in" : {
- "type" : "string",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "description" : "Log level for incoming traffic.",
- "optional" : 1
- },
- "radv" : {
- "optional" : 1,
- "description" : "Allow sending Router Advertisement.",
- "type" : "boolean"
- },
- "log_level_out" : {
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "optional" : 1,
- "description" : "Log level for outgoing traffic.",
- "type" : "string"
- }
- },
- "type" : "object"
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
+ "text" : "out"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "description" : "Destroy OSD",
+ "method" : "DELETE",
+ "name" : "destroyosd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cleanup" : {
+ "default" : 0,
+ "description" : "If set, we remove partition table entries.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}",
+ "text" : "{osdid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Get Ceph osd list/tree.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "description" : "Create OSD",
+ "method" : "POST",
+ "name" : "createosd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bluestore" : {
+ "default" : 1,
+ "description" : "Use bluestore instead of filestore. This is the default.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "dev" : {
+ "description" : "Block device name.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "fstype" : {
+ "default" : "xfs",
+ "description" : "File system type (filestore only).",
+ "enum" : [
+ "xfs",
+ "ext4"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "journal_dev" : {
+ "description" : "Block device name for journal (filestore) or block.db (bluestore).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "wal_dev" : {
+ "description" : "Block device name for block.wal (bluestore only).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "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"
},
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/options"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
},
- {
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
- "info" : {
- "GET" : {
- "name" : "log",
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "t" : {
- "description" : "Line text",
- "type" : "string"
- },
- "n" : {
- "description" : "Line number",
- "type" : "integer"
- }
- }
- }
+ "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" : "<boolean>"
},
- "description" : "Read firewall log",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "limit" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
- },
- "start" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- }
- }
+ "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"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "text" : "log",
- "leaf" : 1
- },
- {
- "text" : "refs",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
- "method" : "GET",
- "name" : "refs",
- "parameters" : {
- "properties" : {
- "type" : {
- "type" : "string",
- "enum" : [
- "alias",
- "ipset"
- ],
- "description" : "Only list references of specified type.",
- "optional" : 1
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "name" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "alias",
- "ipset"
- ]
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- }
- }
- }
+ "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" : "<string>"
+ }
+ }
+ },
+ "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"
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs"
- }
- ],
- "path" : "/nodes/{node}/lxc/{vmid}/firewall",
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/mds",
+ "text" : "mds"
+ },
+ {
+ "children" : [
+ {
"info" : {
- "GET" : {
- "permissions" : {
- "user" : "all"
- },
- "description" : "Directory index.",
- "method" : "GET",
- "name" : "index",
+ "DELETE" : {
+ "description" : "Destroy Ceph Manager.",
+ "method" : "DELETE",
+ "name" : "destroymgr",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "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"
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
+ "type" : "string",
+ "typetext" : "<string>"
}
- ],
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
}
- }
- }
- },
- "text" : "firewall",
- "leaf" : 0
- },
- {
- "text" : "rrd",
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/rrd",
- "info" : {
- "GET" : {
- "protected" : 1,
+ },
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/",
[
- "VM.Audit"
+ "Sys.Modify"
]
]
},
- "description" : "Read VM RRD statistics (returns PNG)",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "object",
- "properties" : {
- "filename" : {
- "type" : "string"
- }
- }
+ "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" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/mgr",
+ "text" : "mgr"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Destroy Ceph Monitor and Manager.",
+ "method" : "DELETE",
+ "name" : "destroymon",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "cf" : {
+ "exclude-manager" : {
+ "default" : 0,
+ "description" : "When set, removes only the monitor, not the manager",
"optional" : 1,
- "description" : "The RRD consolidation function",
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "timeframe" : {
- "description" : "Specify the time frame you are interested in.",
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ],
+ "monid" : {
+ "description" : "Monitor ID",
+ "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
"type" : "string"
},
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
- },
- "ds" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "The list of datasources you want to display."
+ "typetext" : "<string>"
}
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/mon/{monid}",
+ "text" : "{monid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Get Ceph monitor list.",
+ "method" : "GET",
+ "name" : "listmon",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "addr" : {
+ "type" : "string"
},
- "additionalProperties" : 0
+ "name" : {
+ "type" : "string"
+ }
},
- "method" : "GET",
- "name" : "rrd"
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create Ceph Monitor and Manager",
+ "method" : "POST",
+ "name" : "createmon",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "exclude-manager" : {
+ "default" : 0,
+ "description" : "When set, only a monitor will be created.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "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" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
- },
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/mon",
+ "text" : "mon"
+ },
+ {
+ "children" : [
{
- "text" : "rrddata",
- "leaf" : 1,
"info" : {
- "GET" : {
+ "POST" : {
+ "description" : "Create a Ceph filesystem",
+ "method" : "POST",
+ "name" : "createfs",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "timeframe" : {
- "description" : "Specify the time frame you are interested in.",
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ],
- "type" : "string"
- },
- "cf" : {
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
+ "add-storage" : {
+ "default" : 0,
+ "description" : "Configure the created CephFS as storage for this cluster.",
"optional" : 1,
- "description" : "The RRD consolidation function",
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
+ "name" : {
+ "default" : "cephfs",
+ "description" : "The ceph filesystem name.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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" : "<integer> (8 - 32768)"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
}
},
- "method" : "GET",
- "name" : "rrddata",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "Read VM RRD statistics",
- "protected" : 1
- }
- },
- "path" : "/nodes/{node}/lxc/{vmid}/rrddata"
- },
- {
- "info" : {
- "POST" : {
- "description" : "Creates a TCP VNC proxy connections.",
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/",
[
- "VM.Console"
+ "Sys.Modify"
]
]
},
"protected" : 1,
- "name" : "vncproxy",
- "method" : "POST",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "websocket" : {
- "description" : "use websocket instead of standard VNC.",
- "optional" : 1,
- "type" : "boolean"
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
+ "proxyto" : "node",
"returns" : {
- "properties" : {
- "upid" : {
- "type" : "string"
- },
- "ticket" : {
- "type" : "string"
- },
- "user" : {
- "type" : "string"
- },
- "cert" : {
- "type" : "string"
- },
- "port" : {
- "type" : "integer"
- }
- },
- "additionalProperties" : 0
+ "type" : "string"
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
"leaf" : 1,
- "text" : "vncproxy"
- },
- {
- "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ],
- "description" : "You also need to pass a valid ticket (vncticket)."
- },
- "description" : "Opens a weksocket for VNC traffic.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "port" : {
- "maximum" : 5999,
- "type" : "integer",
- "minimum" : 5900,
- "description" : "Port number returned by previous vncproxy call."
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "vncticket" : {
- "description" : "Ticket from previous call to vncproxy.",
- "maxLength" : 512,
- "type" : "string"
- }
+ "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" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "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"
}
},
- "returns" : {
- "type" : "object",
- "properties" : {
- "port" : {
- "type" : "string"
- }
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/fs",
+ "text" : "fs"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "List local disks.",
+ "method" : "GET",
+ "name" : "disks",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Only list specific types of disks.",
+ "enum" : [
+ "unused",
+ "journal_disks"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "dev" : {
+ "type" : "string"
+ },
+ "gpt" : {
+ "type" : "boolean"
+ },
+ "model" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "osdid" : {
+ "type" : "integer"
+ },
+ "serial" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "size" : {
+ "type" : "integer"
+ },
+ "used" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vendor" : {
+ "optional" : 1,
+ "type" : "string"
}
},
- "method" : "GET",
- "name" : "vncwebsocket"
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/disks",
+ "text" : "disks"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get Ceph configuration.",
+ "method" : "GET",
+ "name" : "config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "text" : "vncwebsocket",
- "leaf" : 1
- },
- {
- "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "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).",
- "optional" : 1,
- "type" : "string",
- "format" : "address"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/config",
+ "text" : "config"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Create initial ceph default configuration and setup symlinks.",
+ "method" : "POST",
+ "name" : "init",
+ "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" : "<string>"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
+ "disable_cephx" : {
+ "default" : 0,
+ "description" : "Disable cephx authentification.\n\nWARNING: cephx is a security feature protecting against man-in-the-middle attacks. Only consider disabling cephx if your network is private!",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "returns" : {
- "properties" : {
- "type" : {
- "type" : "string"
- },
- "password" : {
- "type" : "string"
- },
- "proxy" : {
- "type" : "string"
- },
- "host" : {
- "type" : "string"
- },
- "tls-port" : {
- "type" : "integer"
- }
- },
- "additionalProperties" : 1,
- "description" : "Returned values can be directly passed to the 'remote-viewer' application."
+ "min_size" : {
+ "default" : 2,
+ "description" : "Minimum number of available replicas per object to allow I/O",
+ "maximum" : 7,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 7)"
},
- "method" : "POST",
- "name" : "spiceproxy",
- "description" : "Returns a SPICE configuration to connect to the CT."
+ "network" : {
+ "description" : "Use specific network for all ceph related traffic",
+ "format" : "CIDR",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pg_bits" : {
+ "default" : 6,
+ "description" : "Placement group bits, used to specify the default number of placement groups.\n\nNOTE: 'osd pool default pg num' does not work for default pools.",
+ "maximum" : 14,
+ "minimum" : 6,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (6 - 14)"
+ },
+ "size" : {
+ "default" : 3,
+ "description" : "Targeted number of replicas per object",
+ "maximum" : 7,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 7)"
+ }
}
},
- "text" : "spiceproxy",
- "leaf" : 1
- },
- {
- "text" : "migrate",
- "leaf" : 1,
- "info" : {
- "POST" : {
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "online" : {
- "optional" : 1,
- "description" : "Use online/live migration.",
- "type" : "boolean"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "force" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Force migration despite local bind / device mounts. WARNING: identical bind / device mounts need to be available on the target node."
- },
- "target" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "Target node."
- }
- },
- "additionalProperties" : 0
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/init",
+ "text" : "init"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Stop ceph services.",
+ "method" : "POST",
+ "name" : "stop",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Migrate"
- ]
- ]
+ "service" : {
+ "default" : "ceph.target",
+ "description" : "Ceph service name.",
+ "optional" : 1,
+ "pattern" : "(ceph|mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/stop",
+ "text" : "stop"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Start ceph services.",
+ "method" : "POST",
+ "name" : "start",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1,
- "returns" : {
- "description" : "the task ID.",
+ "service" : {
+ "default" : "ceph.target",
+ "description" : "Ceph service name.",
+ "optional" : 1,
+ "pattern" : "(ceph|mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}",
"type" : "string"
- },
- "name" : "migrate_vm",
- "method" : "POST",
- "description" : "Migrate the container to another node. Creates a new migration task."
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/migrate"
- },
- {
- "text" : "feature",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "vm_feature",
- "returns" : {
- "properties" : {
- "hasFeature" : {
- "type" : "boolean"
- }
- },
- "type" : "object"
- },
- "description" : "Check if feature for virtual machine is available.",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "snapname" : {
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid"
- },
- "feature" : {
- "description" : "Feature to check.",
- "enum" : [
- "snapshot"
- ],
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "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" : "<string>"
},
- "protected" : 1
+ "service" : {
+ "default" : "ceph.target",
+ "description" : "Ceph service name.",
+ "optional" : 1,
+ "pattern" : "(mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}",
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/feature"
- },
- {
- "path" : "/nodes/{node}/lxc/{vmid}/template",
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "name" : "template",
- "method" : "POST",
- "description" : "Create a Template.",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- },
- "experimental" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "The template feature is experimental, set this flag if you know what you are doing."
- }
- }
- },
- "protected" : 1,
- "permissions" : {
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}",
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Allocate"
- ]
- ]
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/restart",
+ "text" : "restart"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get ceph status.",
+ "method" : "GET",
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "leaf" : 1,
- "text" : "template"
- },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/status",
+ "text" : "status"
+ },
+ {
+ "children" : [
{
- "leaf" : 1,
- "text" : "clone",
- "path" : "/nodes/{node}/lxc/{vmid}/clone",
"info" : {
- "POST" : {
- "description" : "Create a container clone/copy",
- "name" : "clone_vm",
- "method" : "POST",
- "returns" : {
- "type" : "string"
- },
- "permissions" : {
- "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.",
- "check" : [
- "and",
- [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Clone"
- ]
- ],
- [
- "or",
- [
- "perm",
- "/vms/{newid}",
- [
- "VM.Allocate"
- ]
- ],
- [
- "perm",
- "/pool/{pool}",
- [
- "VM.Allocate"
- ],
- "require_param",
- "pool"
- ]
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
+ "DELETE" : {
+ "description" : "Destroy pool",
+ "method" : "DELETE",
+ "name" : "destroypool",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "storage" : {
- "requires" : "full",
- "type" : "string",
- "format" : "pve-storage-id",
- "description" : "Target storage for full clone.",
- "optional" : 1
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "newid" : {
- "description" : "VMID for the clone.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "experimental" : {
- "description" : "The clone feature is experimental, set this flag if you know what you are doing.",
- "type" : "boolean",
- "default" : 0
- },
- "description" : {
+ "force" : {
+ "default" : 0,
+ "description" : "If true, destroys pool even if in use",
"optional" : 1,
- "description" : "Description for the new CT.",
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "hostname" : {
- "description" : "Set a hostname for the new CT.",
- "optional" : 1,
+ "name" : {
+ "description" : "The name of the pool. It must be unique.",
"type" : "string",
- "format" : "dns-name"
+ "typetext" : "<string>"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
- },
- "pool" : {
- "optional" : 1,
- "description" : "Add the new CT to the specified pool.",
- "format" : "pve-poolid",
- "type" : "string"
- },
- "snapname" : {
- "optional" : 1,
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
"type" : "string",
- "format" : "pve-configid"
+ "typetext" : "<string>"
},
- "full" : {
- "optional" : 1,
- "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.",
+ "remove_storages" : {
"default" : 0,
- "type" : "boolean"
+ "description" : "Remove all pveceph-managed storages configured for this pool",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/pools/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List all pools.",
+ "method" : "GET",
+ "name" : "lspools",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pool" : {
+ "type" : "integer"
+ },
+ "pool_name" : {
+ "type" : "string"
+ },
+ "size" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pool_name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
+ "POST" : {
+ "description" : "Create POOL",
+ "method" : "POST",
+ "name" : "createpool",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "add_storages" : {
+ "description" : "Configure VM and CT storage using the new pool.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "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" : "<string>"
+ },
+ "min_size" : {
+ "default" : 2,
+ "description" : "Minimum number of replicas per object",
+ "maximum" : 7,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 7)"
+ },
+ "name" : {
+ "description" : "The name of the pool. It must be unique.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pg_num" : {
+ "default" : 128,
+ "description" : "Number of placement groups.",
+ "maximum" : 32768,
+ "minimum" : 8,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (8 - 32768)"
+ },
+ "size" : {
+ "default" : 3,
+ "description" : "Number of replicas per object",
+ "maximum" : 7,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 7)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/pools",
+ "text" : "pools"
+ },
+ {
+ "children" : [
{
- "text" : "resize",
- "leaf" : 1,
"info" : {
- "PUT" : {
- "description" : "Resize a container mountpoint.",
- "returns" : {
- "description" : "the task ID.",
- "type" : "string"
+ "DELETE" : {
+ "description" : "Unset a ceph flag",
+ "method" : "DELETE",
+ "name" : "unset_flag",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "flag" : {
+ "description" : "The ceph flag to set/unset",
+ "enum" : [
+ "full",
+ "pause",
+ "noup",
+ "nodown",
+ "noout",
+ "noin",
+ "nobackfill",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "nodeep-scrub",
+ "notieragent"
+ ],
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "method" : "PUT",
- "name" : "resize_vm",
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/",
[
- "VM.Config.Disk"
- ],
- "any",
- 1
+ "Sys.Modify"
+ ]
]
},
"protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "POST" : {
+ "description" : "Set a ceph flag",
+ "method" : "POST",
+ "name" : "set_flag",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "size" : {
- "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
- "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.",
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "disk" : {
- "type" : "string",
- "enum" : [
- "rootfs",
- "mp0",
- "mp1",
- "mp2",
- "mp3",
- "mp4",
- "mp5",
- "mp6",
- "mp7",
- "mp8",
- "mp9"
+ "flag" : {
+ "description" : "The ceph flag to set/unset",
+ "enum" : [
+ "full",
+ "pause",
+ "noup",
+ "nodown",
+ "noout",
+ "noin",
+ "nobackfill",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "nodeep-scrub",
+ "notieragent"
],
- "description" : "The disk you want to resize."
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "proxyto" : "node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/resize"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/flags/{flag}",
+ "text" : "{flag}"
}
],
"info" : {
- "DELETE" : {
- "name" : "destroy_vm",
- "method" : "DELETE",
+ "GET" : {
+ "description" : "get all set ceph flags",
+ "method" : "GET",
+ "name" : "get_flags",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/flags",
+ "text" : "flags"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get OSD crush map",
+ "method" : "GET",
+ "name" : "crush",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "description" : "Destroy the container (also delete all uses files).",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/crush",
+ "text" : "crush"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Read ceph log",
+ "method" : "GET",
+ "name" : "log",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (0 - N)"
},
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/nodes/{node}",
[
- "VM.Allocate"
+ "Sys.Syslog"
]
]
- }
- },
- "GET" : {
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
- "subdir" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
"type" : "string"
}
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/log",
+ "text" : "log"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "List ceph rules.",
+ "method" : "GET",
+ "name" : "rules",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
},
"links" : [
{
- "href" : "{subdir}",
+ "href" : "{name}",
"rel" : "child"
}
- ]
- },
- "proxyto" : "node",
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/rules",
+ "text" : "rules"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph",
+ "text" : "ceph"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Extract configuration from vzdump backup archive.",
+ "method" : "GET",
+ "name" : "extractconfig",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "volume" : {
+ "description" : "Volume identifier",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "GET",
- "name" : "vmdiridx",
- "description" : "Directory index",
"permissions" : {
+ "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
"user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/vzdump/extractconfig",
+ "text" : "extractconfig"
}
],
- "path" : "/nodes/{node}/lxc",
"info" : {
- "GET" : {
- "permissions" : {
- "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
- "user" : "all"
- },
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "LXC container index (per node).",
- "method" : "GET",
- "name" : "vmlist",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{vmid}"
- }
- ]
- }
- },
"POST" : {
- "protected" : 1,
- "permissions" : {
- "user" : "all",
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore, it is enough if the user has 'VM.Backup' permission and the VM already exists. You also need 'Datastore.AllocateSpace' permissions on the storage."
- },
+ "description" : "Create backup.",
+ "method" : "POST",
+ "name" : "vzdump",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "net[n]" : {
- "format" : {
- "gw6" : {
- "type" : "string",
- "format" : "ipv6",
- "description" : "Default gateway for IPv6 traffic.",
- "format_description" : "GatewayIPv6",
- "optional" : 1
- },
- "hwaddr" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Bridge to attach the network device to. (lxc.network.hwaddr)",
- "format_description" : "MAC",
- "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})"
- },
- "gw" : {
- "type" : "string",
- "format" : "ipv4",
- "format_description" : "GatewayIPv4",
- "optional" : 1,
- "description" : "Default gateway for IPv4 traffic."
- },
- "ip" : {
- "format_description" : "IPv4Format/CIDR",
- "optional" : 1,
- "description" : "IPv4 address in CIDR format.",
- "type" : "string",
- "format" : "pve-ipv4-config"
- },
- "rate" : {
- "type" : "number",
- "format_description" : "mbps",
- "description" : "Apply rate limiting to the interface",
- "optional" : 1
- },
- "tag" : {
- "type" : "integer",
- "maximum" : "4094",
- "minimum" : "2",
- "format_description" : "VlanNo",
- "description" : "VLAN tag for this interface.",
- "optional" : 1
- },
- "name" : {
- "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
- "format_description" : "String",
- "pattern" : "[-_.\\w\\d]+",
- "type" : "string"
- },
- "bridge" : {
- "type" : "string",
- "format_description" : "vmbr<Number>",
- "description" : "Bridge to attach the network device to.",
- "optional" : 1,
- "pattern" : "[-_.\\w\\d]+"
- },
- "trunks" : {
- "type" : "string",
- "format_description" : "vlanid[;vlanid...]",
- "description" : "VLAN ids to pass through the interface",
- "optional" : 1,
- "pattern" : "(?^:\\d+(?:;\\d+)*)"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "veth"
- ],
- "optional" : 1,
- "description" : "Network interface type."
- },
- "ip6" : {
- "format_description" : "IPv6Format/CIDR",
- "optional" : 1,
- "description" : "IPv6 address in CIDR format.",
- "format" : "pve-ipv6-config",
- "type" : "string"
- },
- "firewall" : {
- "format_description" : "[1|0]",
- "optional" : 1,
- "description" : "Controls whether this interface's firewall rules should be used.",
- "type" : "boolean"
- },
- "mtu" : {
- "type" : "integer",
- "minimum" : 64,
- "format_description" : "Number",
- "optional" : 1,
- "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)"
- }
- },
- "type" : "string",
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
"optional" : 1,
- "description" : "Specifies network interfaces for the container."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "swap" : {
- "type" : "integer",
- "default" : 512,
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (KBytes per second).",
"minimum" : 0,
"optional" : 1,
- "description" : "Amount of SWAP for the VM in MB."
- },
- "pool" : {
- "optional" : 1,
- "description" : "Add the VM to the specified pool.",
- "format" : "pve-poolid",
- "type" : "string"
- },
- "mp[n]" : {
- "optional" : 1,
- "description" : "Use volume as container mount point (experimental feature).",
- "format" : {
- "quota" : {
- "type" : "boolean",
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
- "format_description" : "[0|1]",
- "optional" : 1
- },
- "size" : {
- "format" : "disk-size",
- "type" : "string",
- "description" : "Volume size (read only value).",
- "format_description" : "DiskSize",
- "optional" : 1
- },
- "backup" : {
- "type" : "boolean",
- "description" : "Whether to include the mountpoint in backups.",
- "format_description" : "[1|0]",
- "optional" : 1
- },
- "volume" : {
- "format" : "pve-lxc-mp-string",
- "type" : "string",
- "format_description" : "volume",
- "description" : "Volume, device or directory to mount into the container.",
- "default_key" : 1
- },
- "mp" : {
- "description" : "Path to the mountpoint as seen from inside the container.",
- "format_description" : "Path",
- "type" : "string",
- "format" : "pve-lxc-mp-string"
- },
- "ro" : {
- "type" : "boolean",
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "optional" : 1,
- "format_description" : "ro"
- },
- "acl" : {
- "type" : "boolean",
- "optional" : 1,
- "format_description" : "acl",
- "description" : "Explicitly enable or disable ACL support."
- }
- },
- "type" : "string"
- },
- "vmid" : {
"type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (0 - N)"
},
- "description" : {
- "description" : "Container description. Only used on the configuration web interface.",
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo"
+ ],
"optional" : 1,
"type" : "string"
},
- "tty" : {
- "minimum" : 0,
- "maximum" : 6,
- "type" : "integer",
- "default" : 2,
- "description" : "Specify the number of tty available to the container",
- "optional" : 1
- },
- "onboot" : {
- "default" : 0,
- "type" : "boolean",
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
"optional" : 1,
- "description" : "Specifies whether a VM will be started during system bootup."
- },
- "ostemplate" : {
"type" : "string",
- "description" : "The OS template or backup file.",
- "maxLength" : 255
+ "typetext" : "<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.",
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
"optional" : 1,
"type" : "string",
- "format" : "pve-startup-order"
- },
- "memory" : {
- "default" : 512,
- "type" : "integer",
- "minimum" : 16,
- "optional" : 1,
- "description" : "Amount of RAM for the VM in MB."
+ "typetext" : "<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.",
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs).",
+ "format" : "string-alist",
"optional" : 1,
"type" : "string",
- "format" : "dns-name-list"
- },
- "ignore-unpack-errors" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Ignore errors when extracting the template."
- },
- "force" : {
- "optional" : 1,
- "description" : "Allow to overwrite existing container.",
- "type" : "boolean"
- },
- "restore" : {
- "optional" : 1,
- "description" : "Mark this as restore task.",
- "type" : "boolean"
+ "typetext" : "<string>"
},
- "unprivileged" : {
+ "ionice" : {
+ "default" : 7,
+ "description" : "Set CFQ ionice priority.",
+ "maximum" : 8,
+ "minimum" : 0,
"optional" : 1,
- "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
- "default" : 0,
- "type" : "boolean"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 8)"
},
- "cpulimit" : {
- "default" : 0,
- "type" : "number",
- "maximum" : 128,
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
"minimum" : 0,
"optional" : 1,
- "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."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "storage" : {
- "type" : "string",
- "default" : "local",
- "format" : "pve-storage-id",
- "description" : "Default Storage.",
- "optional" : 1
+ "mailnotification" : {
+ "default" : "always",
+ "description" : "Specify when to send an email",
+ "enum" : [
+ "always",
+ "failure"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "cpuunits" : {
+ "mailto" : {
+ "description" : "Comma-separated list of email addresses that should receive email notifications.",
+ "format" : "string-list",
"optional" : 1,
- "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.",
- "minimum" : 0,
- "default" : 1024,
- "type" : "integer",
- "maximum" : 500000
+ "type" : "string",
+ "typetext" : "<string>"
},
- "console" : {
- "description" : "Attach a console device (/dev/console) to the container.",
+ "maxfiles" : {
+ "default" : 1,
+ "description" : "Maximal number of backup files per guest system.",
+ "minimum" : 1,
"optional" : 1,
- "type" : "boolean",
- "default" : 1
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "lock" : {
+ "mode" : {
+ "default" : "snapshot",
+ "description" : "Backup mode.",
"enum" : [
- "migrate",
- "backup",
"snapshot",
- "rollback"
+ "suspend",
+ "stop"
],
- "description" : "Lock/unlock the VM.",
"optional" : 1,
"type" : "string"
},
- "template" : {
+ "node" : {
+ "description" : "Only run if executed on this node.",
+ "format" : "pve-node",
"optional" : 1,
- "description" : "Enable/disable Template.",
- "default" : 0,
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "password" : {
- "minLength" : 5,
+ "pigz" : {
+ "default" : 0,
+ "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
"optional" : 1,
- "description" : "Sets root password inside container.",
- "type" : "string"
+ "type" : "integer",
+ "typetext" : "<integer>"
},
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
"optional" : 1,
- "description" : "Reference to unused volumes."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "arch" : {
- "enum" : [
- "amd64",
- "i386"
- ],
- "description" : "OS architecture type.",
+ "remove" : {
+ "default" : 1,
+ "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
"optional" : 1,
- "type" : "string",
- "default" : "amd64"
- },
- "nameserver" : {
- "type" : "string",
- "format" : "address-list",
- "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.",
- "optional" : 1
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "ostype" : {
- "enum" : [
- "debian",
- "ubuntu",
- "centos",
- "fedora",
- "opensuse",
- "archlinux",
- "alpine",
- "unmanaged"
- ],
- "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
+ "script" : {
+ "description" : "Use specified hook script.",
"optional" : 1,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "hostname" : {
- "format" : "dns-name",
- "type" : "string",
+ "size" : {
+ "default" : 1024,
+ "description" : "Unused, will be removed in a future release.",
+ "minimum" : 500,
"optional" : 1,
- "maxLength" : 255,
- "description" : "Set a host name for the container."
+ "type" : "integer",
+ "typetext" : "<integer> (500 - N)"
},
- "ssh-public-keys" : {
- "type" : "string",
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
"optional" : 1,
- "description" : "Setup public SSH keys (one key per line, OpenSSH format)."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "cmode" : {
- "default" : "tty",
- "type" : "string",
- "enum" : [
- "shell",
- "console",
- "tty"
- ],
+ "stdout" : {
+ "description" : "Write tar to stdout, not to a file.",
"optional" : 1,
- "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)."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protection" : {
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop runnig backup jobs on this host.",
"optional" : 1,
- "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
"type" : "boolean",
- "default" : 0
+ "typetext" : "<boolean>"
},
- "rootfs" : {
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
"optional" : 1,
- "description" : "Use volume as container root.",
"type" : "string",
- "format" : {
- "ro" : {
- "optional" : 1,
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "format_description" : "ro",
- "type" : "boolean"
- },
- "acl" : {
- "format_description" : "acl",
- "description" : "Explicitly enable or disable ACL support.",
- "optional" : 1,
- "type" : "boolean"
- },
- "volume" : {
- "default_key" : 1,
- "description" : "Volume, device or directory to mount into the container.",
- "format_description" : "volume",
- "type" : "string",
- "format" : "pve-lxc-mp-string"
- },
- "backup" : {
- "format_description" : "[1|0]",
- "description" : "Whether to include the mountpoint in backups.",
- "optional" : 1,
- "type" : "boolean"
- },
- "size" : {
- "format_description" : "DiskSize",
- "description" : "Volume size (read only value).",
- "optional" : 1,
- "type" : "string",
- "format" : "disk-size"
- },
- "quota" : {
- "type" : "boolean",
- "format_description" : "[0|1]",
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
- "optional" : 1
- }
- }
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "Create or restore a container.",
- "method" : "POST",
- "name" : "create_vm",
- "returns" : {
- "type" : "string"
- }
- }
- },
- "text" : "lxc",
- "leaf" : 0
- },
- {
- "text" : "ceph",
- "leaf" : 0,
- "children" : [
- {
- "leaf" : 0,
- "text" : "osd",
- "children" : [
- {
- "text" : "{osdid}",
- "leaf" : 0,
- "children" : [
- {
- "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "method" : "POST",
- "name" : "in",
- "description" : "ceph osd in",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "osdid" : {
- "type" : "integer",
- "description" : "OSD ID"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- }
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- }
- }
- },
- "leaf" : 1,
- "text" : "in"
- },
- {
- "text" : "out",
- "leaf" : 1,
- "info" : {
- "POST" : {
- "description" : "ceph osd out",
- "returns" : {
- "type" : "null"
- },
- "method" : "POST",
- "name" : "out",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "osdid" : {
- "type" : "integer",
- "description" : "OSD ID"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- }
- }
- },
- "path" : "/nodes/{node}/ceph/osd/{osdid}/out"
- }
- ],
+ "typetext" : "<string>"
+ },
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'maxfiles', 'tmpdir', 'dumpdir', 'script', 'bwlimit' and 'ionice' parameters are restricted to the 'root@pam' user.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/vzdump",
+ "text" : "vzdump"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
"info" : {
- "DELETE" : {
- "protected" : 1,
- "description" : "Destroy OSD",
- "returns" : {
- "type" : "string"
- },
+ "GET" : {
+ "description" : "Read service properties",
+ "method" : "GET",
+ "name" : "service_state",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
- },
- "cleanup" : {
- "type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "If set, we remove partition table entries."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "osdid" : {
- "type" : "integer",
- "description" : "OSD ID"
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "pveproxy",
+ "pvedaemon",
+ "spiceproxy",
+ "pvestatd",
+ "pve-cluster",
+ "corosync",
+ "pve-firewall",
+ "pvefw-logger",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "sshd",
+ "syslog",
+ "cron",
+ "postfix",
+ "ksmtuned",
+ "systemd-timesyncd"
+ ],
+ "type" : "string"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
"proxyto" : "node",
- "name" : "destroyosd",
- "method" : "DELETE"
- }
- },
- "path" : "/nodes/{node}/ceph/osd/{osdid}"
- }
- ],
- "path" : "/nodes/{node}/ceph/osd",
- "info" : {
- "GET" : {
- "name" : "index",
- "method" : "GET",
- "returns" : {
- "type" : "object"
- },
- "description" : "Get Ceph osd list/tree.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "returns" : {
+ "type" : "object"
}
}
},
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- }
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/state",
+ "text" : "state"
},
- "POST" : {
- "protected" : 1,
- "description" : "Create OSD",
- "returns" : {
- "type" : "string"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "fstype" : {
- "type" : "string",
- "default" : "xfs",
- "enum" : [
- "xfs",
- "ext4",
- "btrfs"
- ],
- "optional" : 1,
- "description" : "File system type."
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "dev" : {
- "type" : "string",
- "description" : "Block device name."
- },
- "journal_dev" : {
- "description" : "Block device name for journal.",
- "optional" : 1,
- "type" : "string"
- }
- }
- },
- "proxyto" : "node",
- "method" : "POST",
- "name" : "createosd"
- }
- }
- },
- {
- "path" : "/nodes/{node}/ceph/disks",
- "info" : {
- "GET" : {
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "type" : {
- "type" : "string",
- "description" : "Only list specific types of disks.",
- "optional" : 1,
- "enum" : [
- "unused",
- "journal_disks"
- ]
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "used" : {
- "optional" : 1,
- "type" : "string"
- },
- "size" : {
- "type" : "integer"
- },
- "vendor" : {
- "type" : "string",
- "optional" : 1
- },
- "gpt" : {
- "type" : "boolean"
- },
- "model" : {
- "type" : "string",
- "optional" : 1
- },
- "serial" : {
- "type" : "string",
- "optional" : 1
- },
- "osdid" : {
- "type" : "integer"
- },
- "dev" : {
- "type" : "string"
- }
- }
- },
- "type" : "array"
- },
- "method" : "GET",
- "name" : "disks",
- "description" : "List local disks."
- }
- },
- "leaf" : 1,
- "text" : "disks"
- },
- {
- "path" : "/nodes/{node}/ceph/config",
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
- "description" : "Get Ceph configuration.",
- "returns" : {
- "type" : "string"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Start service.",
+ "method" : "POST",
+ "name" : "service_start",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "pveproxy",
+ "pvedaemon",
+ "spiceproxy",
+ "pvestatd",
+ "pve-cluster",
+ "corosync",
+ "pve-firewall",
+ "pvefw-logger",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "sshd",
+ "syslog",
+ "cron",
+ "postfix",
+ "ksmtuned",
+ "systemd-timesyncd"
+ ],
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "method" : "GET",
- "name" : "config"
- }
- },
- "leaf" : 1,
- "text" : "config"
- },
- {
- "info" : {
- "POST" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ }
},
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/start",
+ "text" : "start"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Stop service.",
+ "method" : "POST",
+ "name" : "service_stop",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "pveproxy",
+ "pvedaemon",
+ "spiceproxy",
+ "pvestatd",
+ "pve-cluster",
+ "corosync",
+ "pve-firewall",
+ "pvefw-logger",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "sshd",
+ "syslog",
+ "cron",
+ "postfix",
+ "ksmtuned",
+ "systemd-timesyncd"
+ ],
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "description" : "Create Ceph Monitor",
- "method" : "POST",
- "name" : "createmon",
- "returns" : {
- "type" : "string"
- }
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/stop",
+ "text" : "stop"
},
- "GET" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Restart service.",
+ "method" : "POST",
+ "name" : "service_restart",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "pveproxy",
+ "pvedaemon",
+ "spiceproxy",
+ "pvestatd",
+ "pve-cluster",
+ "corosync",
+ "pve-firewall",
+ "pvefw-logger",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "sshd",
+ "syslog",
+ "cron",
+ "postfix",
+ "ksmtuned",
+ "systemd-timesyncd"
+ ],
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
},
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
- "protected" : 1,
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "name" : {
- "type" : "string"
- },
- "addr" : {
- "type" : "string"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/restart",
+ "text" : "restart"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Reload service.",
+ "method" : "POST",
+ "name" : "service_reload",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "pveproxy",
+ "pvedaemon",
+ "spiceproxy",
+ "pvestatd",
+ "pve-cluster",
+ "corosync",
+ "pve-firewall",
+ "pvefw-logger",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "sshd",
+ "syslog",
+ "cron",
+ "postfix",
+ "ksmtuned",
+ "systemd-timesyncd"
+ ],
+ "type" : "string"
+ }
}
- }
- }
- },
- "method" : "GET",
- "name" : "listmon",
- "description" : "Get Ceph monitor list."
- }
- },
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "protected" : 1,
+ },
"permissions" : {
"check" : [
"perm",
- "/",
+ "/nodes/{node}",
[
"Sys.Modify"
]
]
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "monid" : {
- "description" : "Monitor ID",
- "type" : "integer"
- }
- }
- },
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Destroy Ceph monitor.",
- "name" : "destroymon",
- "method" : "DELETE",
"returns" : {
"type" : "string"
}
}
},
- "path" : "/nodes/{node}/ceph/mon/{monid}",
- "text" : "{monid}",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/reload",
+ "text" : "reload"
}
],
- "path" : "/nodes/{node}/ceph/mon",
- "leaf" : 0,
- "text" : "mon"
- },
- {
- "text" : "init",
- "leaf" : 1,
"info" : {
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "name" : "init",
- "method" : "POST",
- "description" : "Create initial ceph default configuration and setup symlinks.",
+ "GET" : {
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "srvcmdidx",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
- },
- "pg_bits" : {
- "optional" : 1,
- "description" : "Placement group bits, used to specify the default number of placement groups.\n\nNOTE: 'osd pool default pg num' does not work for default pools.",
- "minimum" : 6,
- "maximum" : 14,
- "default" : 6,
- "type" : "integer"
- },
- "size" : {
- "description" : "Number of replicas per object",
- "optional" : 1,
- "minimum" : 1,
- "maximum" : 3,
- "type" : "integer",
- "default" : 2
+ "type" : "string",
+ "typetext" : "<string>"
},
- "network" : {
- "optional" : 1,
- "maxLength" : 128,
- "description" : "Use specific network for all ceph related traffic",
- "format" : "CIDR",
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "pveproxy",
+ "pvedaemon",
+ "spiceproxy",
+ "pvestatd",
+ "pve-cluster",
+ "corosync",
+ "pve-firewall",
+ "pvefw-logger",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "sshd",
+ "syslog",
+ "cron",
+ "postfix",
+ "ksmtuned",
+ "systemd-timesyncd"
+ ],
"type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- }
- }
- },
- "path" : "/nodes/{node}/ceph/init"
- },
- {
- "path" : "/nodes/{node}/ceph/stop",
- "info" : {
- "POST" : {
- "description" : "Stop ceph services.",
- "returns" : {
- "type" : "string"
+ }
},
- "method" : "POST",
- "name" : "stop",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/",
+ "/nodes/{node}",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
},
- "service" : {
- "type" : "string",
- "description" : "Ceph service name.",
- "optional" : 1,
- "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}"
- }
+ "type" : "object"
},
- "additionalProperties" : 0
- },
- "proxyto" : "node"
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
},
- "leaf" : 1,
- "text" : "stop"
- },
- {
- "leaf" : 1,
- "text" : "start",
- "path" : "/nodes/{node}/ceph/start",
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
- },
- "name" : "start",
- "method" : "POST",
- "description" : "Start ceph services.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "service" : {
- "optional" : 1,
- "description" : "Ceph service name.",
- "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}",
- "type" : "string"
- }
- }
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "leaf" : 0,
+ "path" : "/nodes/{node}/services/{service}",
+ "text" : "{service}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Service list.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{service}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/services",
+ "text" : "services"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Read subscription info.",
+ "method" : "GET",
+ "name" : "get",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
}
},
- {
- "path" : "/nodes/{node}/ceph/status",
- "info" : {
- "GET" : {
- "description" : "Get ceph status.",
- "name" : "status",
- "method" : "GET",
- "returns" : {
- "type" : "object"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
+ "POST" : {
+ "description" : "Update subscription info.",
+ "method" : "POST",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "default" : 0,
+ "description" : "Always connect to server, even if we have up to date info inside local cache.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "text" : "status",
- "leaf" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
},
- {
- "text" : "pools",
- "leaf" : 0,
- "children" : [
- {
- "text" : "{name}",
- "leaf" : 1,
- "info" : {
- "DELETE" : {
- "description" : "Destroy pool",
- "name" : "destroypool",
- "method" : "DELETE",
- "returns" : {
- "type" : "null"
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "name" : {
- "description" : "The name of the pool. It must be unique.",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node"
- }
+ "PUT" : {
+ "description" : "Set subscription key.",
+ "method" : "PUT",
+ "name" : "set",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "key" : {
+ "description" : "Proxmox VE subscription key",
+ "maxLength" : 32,
+ "pattern" : "pve([1248])([cbsp])-[0-9a-f]{10}",
+ "type" : "string"
},
- "path" : "/nodes/{node}/ceph/pools/{name}"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
- ],
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/subscription",
+ "text" : "subscription"
+ },
+ {
+ "children" : [
+ {
"info" : {
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
+ "DELETE" : {
+ "description" : "Delete network device configuration",
+ "method" : "DELETE",
+ "name" : "delete_network",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "pg_num" : {
- "description" : "Number of placement groups.",
- "optional" : 1,
- "minimum" : 8,
- "maximum" : 32768,
- "type" : "integer",
- "default" : 64
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
- },
- "crush_ruleset" : {
- "optional" : 1,
- "description" : "The ruleset to use for mapping object placement in the cluster.",
- "default" : 0,
- "type" : "integer",
- "maximum" : 32768,
- "minimum" : 0
- },
- "min_size" : {
- "minimum" : 1,
- "maximum" : 3,
- "default" : 1,
- "type" : "integer",
- "description" : "Minimum number of replicas per object",
- "optional" : 1
- },
- "size" : {
- "maximum" : 3,
- "default" : 2,
- "type" : "integer",
- "minimum" : 1,
- "optional" : 1,
- "description" : "Number of replicas per object"
- },
- "name" : {
- "description" : "The name of the pool. It must be unique.",
- "type" : "string"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Create POOL",
- "name" : "createpool",
- "method" : "POST",
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/",
+ "/nodes/{node}",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Modify"
+ ]
]
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "List all pools.",
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{pool_name}"
- }
- ],
- "type" : "array",
- "items" : {
- "properties" : {
- "pool_name" : {
- "type" : "string"
- },
- "pool" : {
- "type" : "integer"
- },
- "size" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- }
- },
- "method" : "GET",
- "name" : "lspools"
- }
- },
- "path" : "/nodes/{node}/ceph/pools"
- },
- {
- "text" : "crush",
- "leaf" : 1,
- "path" : "/nodes/{node}/ceph/crush",
- "info" : {
- "GET" : {
+ },
+ "protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read network device configuration",
+ "method" : "GET",
+ "name" : "network_config",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/nodes/{node}",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Audit"
+ ]
]
},
- "protected" : 1,
- "method" : "GET",
- "name" : "crush",
- "returns" : {
- "type" : "string"
- },
- "description" : "Get OSD crush map"
- }
- }
- },
- {
- "leaf" : 1,
- "text" : "log",
- "path" : "/nodes/{node}/ceph/log",
- "info" : {
- "GET" : {
- "name" : "log",
- "method" : "GET",
+ "proxyto" : "node",
"returns" : {
- "items" : {
- "properties" : {
- "n" : {
- "description" : "Line number",
- "type" : "integer"
- },
- "t" : {
- "type" : "string",
- "description" : "Line text"
- }
+ "properties" : {
+ "method" : {
+ "type" : "string"
},
- "type" : "object"
+ "type" : {
+ "type" : "string"
+ }
},
- "type" : "array"
- },
- "description" : "Read ceph log",
- "proxyto" : "node",
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update network device configuration",
+ "method" : "PUT",
+ "name" : "update_network",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "address" : {
+ "description" : "IP address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "requires" : "netmask",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "address6" : {
+ "description" : "IP address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "requires" : "netmask6",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "autostart" : {
+ "description" : "Automatically start interface on boot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bond_mode" : {
+ "description" : "Bonding mode.",
+ "enum" : [
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bond_xmit_hash_policy" : {
+ "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
+ "enum" : [
+ "layer2",
+ "layer2+3",
+ "layer3+4"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bridge_ports" : {
+ "description" : "Specify the iterfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "bridge_vlan_aware" : {
+ "description" : "Enable bridge vlan support.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "comments" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comments6" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "gateway" : {
+ "description" : "Default gateway address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "gateway6" : {
+ "description" : "Default ipv6 gateway address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "netmask" : {
+ "description" : "Network mask.",
+ "format" : "ipv4mask",
+ "optional" : 1,
+ "requires" : "address",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "netmask6" : {
+ "description" : "Network mask.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "requires" : "address6",
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 128)"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "limit" : {
+ "ovs_bonds" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
- "start" : {
+ "ovs_bridge" : {
+ "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_options" : {
+ "description" : "OVS interface options.",
+ "maxLength" : 1024,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_ports" : {
+ "description" : "Specify the iterfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_tag" : {
+ "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
"type" : "integer",
- "minimum" : 0,
- "optional" : 1
+ "typetext" : "<integer> (1 - 4094)"
+ },
+ "slaves" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Network interface type",
+ "enum" : [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "unknown"
+ ],
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/nodes/{node}",
[
- "Sys.Syslog"
+ "Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/network/{iface}",
+ "text" : "{iface}"
}
],
- "path" : "/nodes/{node}/ceph",
"info" : {
- "GET" : {
+ "DELETE" : {
+ "description" : "Revert network configuration changes.",
+ "method" : "DELETE",
+ "name" : "revert_network_changes",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
- "/",
+ "/nodes/{node}",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Modify"
+ ]
]
},
- "description" : "Directory index.",
- "name" : "index",
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "List available networks",
"method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Only list specific interface types.",
+ "enum" : [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "any_bridge"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
}
},
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
"returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
"links" : [
{
- "href" : "{name}",
+ "href" : "{iface}",
"rel" : "child"
}
],
- "items" : {
- "properties" : {},
- "type" : "object"
- },
"type" : "array"
}
- }
- }
- },
- {
- "info" : {
+ },
"POST" : {
- "protected" : 1,
- "permissions" : {
- "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage.",
- "user" : "all"
- },
- "proxyto" : "node",
+ "description" : "Create network device configuration",
+ "method" : "POST",
+ "name" : "create_network",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "mailnotification" : {
- "default" : "always",
- "type" : "string",
- "optional" : 1,
- "description" : "Specify when to send an email",
- "enum" : [
- "always",
- "failure"
- ]
- },
- "stdexcludes" : {
- "default" : 1,
- "type" : "boolean",
+ "address" : {
+ "description" : "IP address.",
+ "format" : "ipv4",
"optional" : 1,
- "description" : "Exclude temporary files and logs."
+ "requires" : "netmask",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "pigz" : {
- "default" : 0,
- "type" : "integer",
+ "address6" : {
+ "description" : "IP address.",
+ "format" : "ipv6",
"optional" : 1,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count."
+ "requires" : "netmask6",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "maxfiles" : {
+ "autostart" : {
+ "description" : "Automatically start interface on boot.",
"optional" : 1,
- "description" : "Maximal number of backup files per guest system.",
- "minimum" : 1,
- "type" : "integer",
- "default" : 1
- },
- "lockwait" : {
- "minimum" : 0,
- "default" : 180,
- "type" : "integer",
- "description" : "Maximal time to wait for the global lock (minutes).",
- "optional" : 1
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "vmid" : {
+ "bond_mode" : {
+ "description" : "Bonding mode.",
+ "enum" : [
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
"optional" : 1,
- "description" : "The ID of the guest system you want to backup.",
- "format" : "pve-vmid-list",
"type" : "string"
},
- "dumpdir" : {
- "description" : "Store resulting files to specified directory.",
+ "bond_xmit_hash_policy" : {
+ "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
+ "enum" : [
+ "layer2",
+ "layer2+3",
+ "layer3+4"
+ ],
"optional" : 1,
"type" : "string"
},
- "ionice" : {
- "maximum" : 8,
- "type" : "integer",
- "default" : 7,
- "minimum" : 0,
- "description" : "Set CFQ ionice priority.",
- "optional" : 1
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "optional" : 1,
- "description" : "Only run if executed on this node."
- },
- "quiet" : {
- "description" : "Be quiet.",
+ "bridge_ports" : {
+ "description" : "Specify the iterfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
"optional" : 1,
- "default" : 0,
- "type" : "boolean"
- },
- "mailto" : {
- "format" : "string-list",
"type" : "string",
- "description" : "Comma-separated list of email addresses that should receive email notifications.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "mode" : {
- "default" : "snapshot",
- "type" : "string",
- "description" : "Backup mode.",
+ "bridge_vlan_aware" : {
+ "description" : "Enable bridge vlan support.",
"optional" : 1,
- "enum" : [
- "snapshot",
- "suspend",
- "stop"
- ]
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "exclude" : {
- "description" : "Exclude specified guest systems (assumes --all)",
+ "comments" : {
+ "description" : "Comments",
"optional" : 1,
- "format" : "pve-vmid-list",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "stopwait" : {
- "default" : 10,
- "type" : "integer",
- "minimum" : 0,
+ "comments6" : {
+ "description" : "Comments",
"optional" : 1,
- "description" : "Maximal time to wait until a guest system is stopped (minutes)."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "exclude-path" : {
- "description" : "Exclude certain files/directories (shell globs).",
+ "gateway" : {
+ "description" : "Default gateway address.",
+ "format" : "ipv4",
"optional" : 1,
- "format" : "string-alist",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "all" : {
- "default" : 0,
- "type" : "boolean",
+ "gateway6" : {
+ "description" : "Default ipv6 gateway address.",
+ "format" : "ipv6",
"optional" : 1,
- "description" : "Backup all known guest systems on this host."
- },
- "remove" : {
- "type" : "boolean",
- "default" : 1,
- "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
- "optional" : 1
- },
- "storage" : {
"type" : "string",
- "format" : "pve-storage-id",
- "optional" : 1,
- "description" : "Store resulting file to this storage."
+ "typetext" : "<string>"
},
- "stdout" : {
- "optional" : 1,
- "description" : "Write tar to stdout, not to a file.",
- "type" : "boolean"
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "compress" : {
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo"
- ],
- "description" : "Compress dump file.",
+ "netmask" : {
+ "description" : "Network mask.",
+ "format" : "ipv4mask",
"optional" : 1,
- "default" : "0",
- "type" : "string"
+ "requires" : "address",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "size" : {
+ "netmask6" : {
+ "description" : "Network mask.",
+ "maximum" : 128,
+ "minimum" : 0,
"optional" : 1,
- "description" : "Unused, will be removed in a future release.",
- "minimum" : 500,
+ "requires" : "address6",
"type" : "integer",
- "default" : 1024
+ "typetext" : "<integer> (0 - 128)"
},
- "bwlimit" : {
- "minimum" : 0,
- "default" : 0,
- "type" : "integer",
- "description" : "Limit I/O bandwidth (KBytes per second).",
- "optional" : 1
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_bonds" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "tmpdir" : {
+ "ovs_bridge" : {
+ "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
+ "format" : "pve-iface",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_options" : {
+ "description" : "OVS interface options.",
+ "maxLength" : 1024,
"optional" : 1,
- "description" : "Store temporary files to specified directory."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "stop" : {
- "default" : 0,
- "type" : "boolean",
+ "ovs_ports" : {
+ "description" : "Specify the iterfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_tag" : {
+ "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
+ "maximum" : 4094,
+ "minimum" : 1,
"optional" : 1,
- "description" : "Stop runnig backup jobs on this host."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 4094)"
},
- "script" : {
- "description" : "Use specified hook script.",
+ "slaves" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
"optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Network interface type",
+ "enum" : [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "unknown"
+ ],
"type" : "string"
}
}
},
- "description" : "Create backup.",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "string"
+ "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" : "<string>"
+ }
+ }
},
- "name" : "vzdump",
- "method" : "POST"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/vzdump",
- "leaf" : 1,
- "text" : "vzdump"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/network",
+ "text" : "network"
},
{
- "path" : "/nodes/{node}/services",
"children" : [
{
"children" : [
{
- "leaf" : 1,
- "text" : "state",
- "path" : "/nodes/{node}/services/{service}/state",
"info" : {
"GET" : {
- "name" : "service_state",
- "method" : "GET",
- "returns" : {
- "type" : "object",
- "properties" : {}
- },
- "description" : "Read service properties",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "service" : {
- "description" : "Service ID",
- "enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
- ],
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- }
- }
- }
- },
- {
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "service" : {
- "enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
- ],
- "description" : "Service ID",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "string"
- },
- "name" : "service_start",
- "method" : "POST",
- "description" : "Start service."
- }
- },
- "path" : "/nodes/{node}/services/{service}/start",
- "text" : "start",
- "leaf" : 1
- },
- {
- "text" : "stop",
- "leaf" : 1,
- "path" : "/nodes/{node}/services/{service}/stop",
- "info" : {
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "service" : {
- "type" : "string",
- "description" : "Service ID",
- "enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
- ]
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "description" : "Stop service.",
- "returns" : {
- "type" : "string"
- },
- "name" : "service_stop",
- "method" : "POST"
- }
- }
- },
- {
- "path" : "/nodes/{node}/services/{service}/restart",
- "info" : {
- "POST" : {
+ "description" : "Read task log.",
+ "method" : "GET",
+ "name" : "read_task_log",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "limit" : {
+ "default" : 50,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "service" : {
+ "start" : {
+ "default" : 0,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "upid" : {
"type" : "string",
- "description" : "Service ID",
- "enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
- ]
+ "typetext" : "<string>"
}
}
},
- "proxyto" : "node",
"permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
+ "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if the task does not belong to him.",
+ "user" : "all"
},
"protected" : 1,
- "name" : "service_restart",
- "method" : "POST",
+ "proxyto" : "node",
"returns" : {
- "type" : "string"
- },
- "description" : "Restart service."
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
"leaf" : 1,
- "text" : "restart"
+ "path" : "/nodes/{node}/tasks/{upid}/log",
+ "text" : "log"
},
{
- "leaf" : 1,
- "text" : "reload",
- "path" : "/nodes/{node}/services/{service}/reload",
"info" : {
- "POST" : {
- "name" : "service_reload",
- "method" : "POST",
- "returns" : {
- "type" : "string"
- },
- "description" : "Reload service.",
- "proxyto" : "node",
+ "GET" : {
+ "description" : "Read task status.",
+ "method" : "GET",
+ "name" : "read_task_status",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "service" : {
+ "upid" : {
"type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if the task does not belong to him.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "pid" : {
+ "type" : "integer"
+ },
+ "status" : {
"enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
+ "running",
+ "stopped"
],
- "description" : "Service ID"
+ "type" : "string"
}
},
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
+ "type" : "object"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/tasks/{upid}/status",
+ "text" : "status"
}
],
"info" : {
- "GET" : {
+ "DELETE" : {
+ "description" : "Stop a task.",
+ "method" : "DELETE",
+ "name" : "stop_task",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "service" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
- ],
- "description" : "Service ID"
+ "typetext" : "<string>"
},
+ "upid" : {
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if the task does not belong to him.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "",
+ "method" : "GET",
+ "name" : "upid_index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "upid" : {
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
"items" : {
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- },
+ "properties" : {},
"type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{subdir}"
+ "href" : "{name}",
+ "rel" : "child"
}
- ]
- },
- "method" : "GET",
- "name" : "srvcmdidx",
- "description" : "Directory index",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- }
- }
- },
- "path" : "/nodes/{node}/services/{service}",
- "leaf" : 0,
- "text" : "{service}"
- }
- ],
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- },
- "proxyto" : "node",
- "description" : "Service list.",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{service}"
+ ],
+ "type" : "array"
}
- ]
- },
- "method" : "GET",
- "name" : "index"
- }
- },
- "leaf" : 0,
- "text" : "services"
- },
- {
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/tasks/{upid}",
+ "text" : "{upid}"
+ }
+ ],
"info" : {
"GET" : {
- "permissions" : {
- "user" : "all"
- },
- "description" : "Read subscription info.",
- "proxyto" : "node",
+ "description" : "Read task list for one node (finished tasks).",
+ "method" : "GET",
+ "name" : "node_tasks",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "errors" : {
+ "default" : 0,
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "limit" : {
+ "default" : 50,
+ "description" : "Only list this amount of tasks.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "default" : "archive",
+ "description" : "List archived, active or all tasks.",
+ "enum" : [
+ "archive",
+ "active",
+ "all"
+ ],
+ "optional" : 1,
"type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "object"
- },
- "method" : "GET",
- "name" : "get"
- },
- "POST" : {
- "method" : "POST",
- "name" : "update",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "force" : {
+ },
+ "start" : {
"default" : 0,
- "type" : "boolean",
+ "description" : "List tasks beginning from this offset.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Always connect to server, even if we have up to date info inside local cache."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "node" : {
+ "typefilter" : {
+ "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "userfilter" : {
+ "description" : "Only list tasks from this user.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "Only list tasks for this VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
- "description" : "Update subscription info.",
- "protected" : 1
- },
- "PUT" : {
- "returns" : {
- "type" : "null"
+ "permissions" : {
+ "description" : "List task associated with the current user, or all task the user has 'Sys.Audit' permissions on /nodes/<node> (the <node> the task runs on).",
+ "user" : "all"
},
"proxyto" : "node",
- "parameters" : {
- "properties" : {
- "key" : {
- "type" : "string",
- "description" : "Proxmox VE subscription key"
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "endtime" : {
+ "optional" : 1,
+ "title" : "Endtime",
+ "type" : "integer"
+ },
+ "id" : {
+ "title" : "ID",
+ "type" : "string"
+ },
+ "node" : {
+ "title" : "Node",
+ "type" : "string"
+ },
+ "pid" : {
+ "title" : "PID",
+ "type" : "integer"
+ },
+ "pstart" : {
+ "type" : "integer"
+ },
+ "starttime" : {
+ "title" : "Starttime",
+ "type" : "integer"
+ },
+ "status" : {
+ "optional" : 1,
+ "title" : "Status",
+ "type" : "string"
+ },
+ "type" : {
+ "title" : "Type",
+ "type" : "string"
+ },
+ "upid" : {
+ "title" : "UPID",
+ "type" : "string"
+ },
+ "user" : {
+ "title" : "User",
+ "type" : "string"
+ }
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
+ "type" : "object"
},
- "additionalProperties" : 0
- },
- "method" : "PUT",
- "name" : "set",
- "protected" : 1,
- "description" : "Set subscription key."
+ "links" : [
+ {
+ "href" : "{upid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
},
- "path" : "/nodes/{node}/subscription",
- "leaf" : 1,
- "text" : "subscription"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/tasks",
+ "text" : "tasks"
},
{
- "leaf" : 0,
- "text" : "network",
- "path" : "/nodes/{node}/network",
"children" : [
{
- "leaf" : 1,
- "text" : "{iface}",
- "path" : "/nodes/{node}/network/{iface}",
"info" : {
- "PUT" : {
- "method" : "PUT",
- "name" : "update_network",
- "returns" : {
- "type" : "null"
- },
- "description" : "Update network device configuration",
- "proxyto" : "node",
+ "GET" : {
+ "description" : "Scan zfs pool list on local node.",
+ "method" : "GET",
+ "name" : "zfsscan",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "ovs_tag" : {
- "minimum" : 1,
- "type" : "integer",
- "maximum" : 4094,
- "optional" : 1,
- "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)"
- },
- "ovs_bonds" : {
- "format" : "pve-iface-list",
- "type" : "string",
- "optional" : 1,
- "description" : "Specify the interfaces used by the bonding device."
- },
- "gateway6" : {
- "description" : "Default ipv6 gateway address.",
- "optional" : 1,
- "format" : "ipv6",
- "type" : "string"
- },
- "type" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "unknown"
- ],
- "description" : "Network interface type"
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pool" : {
+ "description" : "ZFS pool name.",
+ "type" : "string"
+ }
},
- "comments6" : {
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/zfs",
+ "text" : "zfs"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Scan remote NFS server.",
+ "method" : "GET",
+ "name" : "nfsscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "Comments",
- "optional" : 1
+ "typetext" : "<string>"
},
- "iface" : {
+ "server" : {
+ "description" : "The server address (name or IP).",
+ "format" : "pve-storage-server",
"type" : "string",
- "format" : "pve-iface",
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Network interface name."
- },
- "bond_xmit_hash_policy" : {
- "optional" : 1,
- "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
- "enum" : [
- "layer2",
- "layer2+3",
- "layer3+4"
- ],
- "type" : "string"
- },
- "slaves" : {
- "optional" : 1,
- "description" : "Specify the interfaces used by the bonding device.",
- "format" : "pve-iface-list",
- "type" : "string"
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "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"
+ }
},
- "netmask" : {
- "description" : "Network mask.",
+ "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,
- "requires" : "address",
"type" : "string",
- "format" : "ipv4mask"
+ "typetext" : "<string>"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "address" : {
+ "password" : {
+ "description" : "User password.",
"optional" : 1,
- "description" : "IP address.",
- "requires" : "netmask",
"type" : "string",
- "format" : "ipv4"
+ "typetext" : "<string>"
},
- "bridge_ports" : {
- "format" : "pve-iface-list",
+ "server" : {
+ "description" : "The server address (name or IP).",
+ "format" : "pve-storage-server",
"type" : "string",
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "comments" : {
- "description" : "Comments",
+ "username" : {
+ "description" : "User name.",
"optional" : 1,
- "type" : "string"
- },
- "bond_mode" : {
"type" : "string",
- "enum" : [
- "balance-rr",
- "active-backup",
- "balance-xor",
- "broadcast",
- "802.3ad",
- "balance-tlb",
- "balance-alb",
- "balance-slb",
- "lacp-balance-slb",
- "lacp-balance-tcp"
- ],
- "description" : "Bonding mode.",
- "optional" : 1
- },
- "bridge_vlan_aware" : {
- "type" : "boolean",
- "description" : "Enable bridge vlan support.",
- "optional" : 1
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "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"
+ }
},
- "autostart" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Automatically start interface on boot."
+ "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" : "<string>"
},
- "ovs_bridge" : {
- "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
- "optional" : 1,
+ "server" : {
+ "description" : "The server address (name or IP).",
+ "format" : "pve-storage-server",
"type" : "string",
- "format" : "pve-iface"
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "volname" : {
+ "description" : "The volume name.",
+ "type" : "string"
+ }
},
- "address6" : {
- "optional" : 1,
- "description" : "IP address.",
- "requires" : "netmask6",
+ "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",
- "format" : "ipv6"
+ "typetext" : "<string>"
},
- "delete" : {
- "optional" : 1,
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "type" : "string"
+ "portal" : {
+ "description" : "The iSCSI portal (IP or DNS name with optional port).",
+ "format" : "pve-storage-portal-dns",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "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"
+ }
},
- "ovs_options" : {
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/iscsi",
+ "text" : "iscsi"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "List local LVM volume groups.",
+ "method" : "GET",
+ "name" : "lvmscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "OVS interface options.",
- "maxLength" : 1024,
- "optional" : 1
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "vg" : {
+ "description" : "The LVM logical volume group name.",
+ "type" : "string"
+ }
},
- "ovs_ports" : {
- "optional" : 1,
- "description" : "Specify the iterfaces you want to add to your bridge.",
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/lvm",
+ "text" : "lvm"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "List local LVM Thin Pools.",
+ "method" : "GET",
+ "name" : "lvmthinscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-iface-list"
+ "typetext" : "<string>"
},
- "gateway" : {
- "description" : "Default gateway address.",
- "optional" : 1,
- "format" : "ipv4",
+ "vg" : {
+ "maxLength" : 100,
+ "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
"type" : "string"
- },
- "netmask6" : {
- "description" : "Network mask.",
- "optional" : 1,
- "minimum" : 0,
- "maximum" : 128,
- "requires" : "address6",
- "type" : "integer"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/nodes/{node}",
+ "/storage",
[
- "Sys.Modify"
+ "Datastore.Allocate"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "lv" : {
+ "description" : "The LVM Thin Pool name (LVM logical volume).",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
- },
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/lvmthin",
+ "text" : "lvmthin"
+ },
+ {
+ "info" : {
"GET" : {
+ "description" : "List local USB devices.",
+ "method" : "GET",
+ "name" : "usbscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
- "/nodes/{node}",
+ "/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
- "description" : "Read network device configuration",
- "method" : "GET",
- "name" : "network_config",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "object",
- "properties" : {
- "method" : {
- "type" : "string"
+ "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" : {
- "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" : "<string>"
+ }
+ }
+ },
+ "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" : "<string>"
+ },
+ "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" : "<string>"
+ },
+ "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"
}
}
},
- "proxyto" : "node",
+ "leaf" : 0,
+ "path" : "/nodes/{node}/hardware/pci/{pciid}",
+ "text" : "{pciid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List local PCI devices.",
+ "method" : "GET",
+ "name" : "pciscan",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "iface" : {
- "minLength" : 2,
- "description" : "Network interface name.",
- "maxLength" : 20,
- "type" : "string",
- "format" : "pve-iface"
+ "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" : "<boolean>"
}
- },
- "additionalProperties" : 0
- }
- },
- "DELETE" : {
- "description" : "Delete network device configuration",
- "method" : "DELETE",
- "name" : "delete_network",
- "returns" : {
- "type" : "null"
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/nodes/{node}",
+ "/",
[
"Sys.Modify"
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "iface" : {
- "description" : "Network interface name.",
- "maxLength" : 20,
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- }
- }
- }
- }
- ],
- "info" : {
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "method" : "DELETE",
- "name" : "revert_network_changes",
- "returns" : {
- "type" : "null"
- },
- "description" : "Revert network configuration changes."
- },
- "GET" : {
- "description" : "List available networks",
- "permissions" : {
- "user" : "all"
- },
- "name" : "index",
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "links" : [
- {
- "href" : "{iface}",
- "rel" : "child"
- }
- ]
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "type" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Only list specific interface types.",
- "enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "any_bridge"
- ]
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- }
- },
- "POST" : {
- "method" : "POST",
- "name" : "create_network",
- "returns" : {
- "type" : "null"
- },
- "description" : "Create network device configuration",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "slaves" : {
- "format" : "pve-iface-list",
- "type" : "string",
- "description" : "Specify the interfaces used by the bonding device.",
- "optional" : 1
- },
- "bond_xmit_hash_policy" : {
- "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
- "optional" : 1,
- "enum" : [
- "layer2",
- "layer2+3",
- "layer3+4"
- ],
- "type" : "string"
- },
- "comments6" : {
- "description" : "Comments",
- "optional" : 1,
- "type" : "string"
- },
- "iface" : {
- "type" : "string",
- "format" : "pve-iface",
- "minLength" : 2,
- "description" : "Network interface name.",
- "maxLength" : 20
- },
- "type" : {
- "type" : "string",
- "description" : "Network interface type",
- "enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "unknown"
- ]
- },
- "ovs_tag" : {
- "minimum" : 1,
- "type" : "integer",
- "maximum" : 4094,
- "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
- "optional" : 1
- },
- "ovs_bonds" : {
- "description" : "Specify the interfaces used by the bonding device.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-iface-list"
- },
- "gateway6" : {
- "type" : "string",
- "format" : "ipv6",
- "optional" : 1,
- "description" : "Default ipv6 gateway address."
- },
- "ovs_options" : {
- "type" : "string",
- "description" : "OVS interface options.",
- "optional" : 1,
- "maxLength" : 1024
- },
- "address6" : {
- "format" : "ipv6",
- "requires" : "netmask6",
- "type" : "string",
- "description" : "IP address.",
- "optional" : 1
- },
- "netmask6" : {
- "minimum" : 0,
- "type" : "integer",
- "requires" : "address6",
- "maximum" : 128,
- "description" : "Network mask.",
- "optional" : 1
- },
- "ovs_ports" : {
- "format" : "pve-iface-list",
- "type" : "string",
- "optional" : 1,
- "description" : "Specify the iterfaces you want to add to your bridge."
- },
- "gateway" : {
- "format" : "ipv4",
- "type" : "string",
- "description" : "Default gateway address.",
- "optional" : 1
- },
- "ovs_bridge" : {
- "optional" : 1,
- "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
- "format" : "pve-iface",
- "type" : "string"
- },
- "autostart" : {
- "description" : "Automatically start interface on boot.",
- "optional" : 1,
- "type" : "boolean"
- },
- "bond_mode" : {
- "type" : "string",
- "enum" : [
- "balance-rr",
- "active-backup",
- "balance-xor",
- "broadcast",
- "802.3ad",
- "balance-tlb",
- "balance-alb",
- "balance-slb",
- "lacp-balance-slb",
- "lacp-balance-tcp"
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "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"
+ }
],
- "description" : "Bonding mode.",
- "optional" : 1
- },
- "bridge_vlan_aware" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable bridge vlan support."
- },
- "comments" : {
- "type" : "string",
- "description" : "Comments",
- "optional" : 1
- },
+ "type" : "array"
+ }
+ }
+ },
+ "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",
- "format" : "pve-node"
- },
- "netmask" : {
- "type" : "string",
- "requires" : "address",
- "format" : "ipv4mask",
- "description" : "Network mask.",
- "optional" : 1
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "type" : {
+ "type" : "string"
+ }
},
- "bridge_ports" : {
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-iface-list"
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{type}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/hardware",
+ "text" : "hardware"
+ },
+ {
+ "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" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "volume" : {
+ "description" : "Volume identifier",
+ "type" : "string",
+ "typetext" : "<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"
+ },
+ "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" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "volume" : {
+ "description" : "Volume identifier",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "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" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target" : {
+ "description" : "Target volume identifier",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target_node" : {
+ "description" : "Target node. Default is local node.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "volume" : {
+ "description" : "Source volume identifier",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "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" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "Only list images for this VM",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Audit",
+ "Datastore.AllocateSpace"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "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"
+ }
+ },
+ "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" : "<string>"
+ },
+ "format" : {
+ "enum" : [
+ "raw",
+ "qcow2",
+ "subvol"
+ ],
+ "optional" : 1,
+ "requires" : "size",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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" : "<string>"
+ },
+ "vmid" : {
+ "description" : "Specify owner VM",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.AllocateSpace"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Volume identifier",
+ "type" : "string"
+ }
+ }
},
- "address" : {
- "optional" : 1,
- "description" : "IP address.",
- "format" : "ipv4",
- "requires" : "netmask",
- "type" : "string"
- }
+ "leaf" : 0,
+ "path" : "/nodes/{node}/storage/{storage}/content",
+ "text" : "content"
},
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- }
- }
- }
- },
- {
- "leaf" : 0,
- "text" : "tasks",
- "info" : {
- "GET" : {
- "permissions" : {
- "user" : "all",
- "description" : "List task associated with the current user, or all task the user has 'Sys.Audit' permissions on /nodes/<node> (the <node> the task runs on)."
- },
- "description" : "Read task list for one node (finished tasks).",
- "method" : "GET",
- "name" : "node_tasks",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "limit" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "errors" : {
- "type" : "boolean",
- "optional" : 1
- },
- "start" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- },
- "vmid" : {
- "description" : "Only list tasks for this VM.",
- "optional" : 1,
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "userfilter" : {
- "type" : "string",
- "optional" : 1
- }
- }
- },
- "proxyto" : "node",
- "returns" : {
- "items" : {
- "properties" : {
- "upid" : {
- "type" : "string"
+ {
+ "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" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "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"
},
- "type" : "array",
- "links" : [
- {
- "href" : "{upid}",
- "rel" : "child"
- }
- ]
- }
- }
- },
- "path" : "/nodes/{node}/tasks",
- "children" : [
- {
- "text" : "{upid}",
- "leaf" : 0,
- "children" : [
{
- "text" : "log",
- "leaf" : 1,
- "path" : "/nodes/{node}/tasks/{upid}/log",
"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" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeframe" : {
+ "description" : "Specify the time frame you are interested in.",
+ "enum" : [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
- "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if the task does not belong to him.",
- "user" : "all"
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Audit",
+ "Datastore.AllocateSpace"
+ ],
+ "any",
+ 1
+ ]
},
"protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "type" : "string"
+ }
+ },
+ "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" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
- },
- "limit" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "type" : "string",
+ "typetext" : "<string>"
},
- "start" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "upid" : {
+ "timeframe" : {
+ "description" : "Specify the time frame you are interested in.",
+ "enum" : [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Read task log.",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Audit",
+ "Datastore.AllocateSpace"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
- "properties" : {
- "n" : {
- "type" : "integer",
- "description" : "Line number"
- },
- "t" : {
- "description" : "Line text",
- "type" : "string"
- }
- }
+ "properties" : {},
+ "type" : "object"
},
"type" : "array"
- },
- "method" : "GET",
- "name" : "read_task_log"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/rrddata",
+ "text" : "rrddata"
},
{
- "text" : "status",
- "leaf" : 1,
"info" : {
- "GET" : {
- "proxyto" : "node",
+ "POST" : {
+ "description" : "Upload templates and ISO images.",
+ "method" : "POST",
+ "name" : "upload",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "upid" : {
- "type" : "string"
+ "content" : {
+ "description" : "Content type.",
+ "format" : "pve-storage-content",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "filename" : {
+ "description" : "The name of the file to create.",
+ "type" : "string",
+ "typetext" : "<string>"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tmpfilename" : {
+ "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trustet port on localhost.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
"permissions" : {
- "user" : "all",
- "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if the task does not belong to him."
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.AllocateTemplate"
+ ]
+ ]
},
- "method" : "GET",
- "name" : "read_task_status",
+ "protected" : 1,
"returns" : {
- "type" : "object",
- "properties" : {
- "status" : {
- "enum" : [
- "running",
- "stopped"
- ],
- "type" : "string"
- },
- "pid" : {
- "type" : "integer"
- }
- }
- },
- "description" : "Read task status."
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/tasks/{upid}/status"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/upload",
+ "text" : "upload"
}
],
"info" : {
"GET" : {
"description" : "",
- "permissions" : {
- "user" : "all"
- },
- "name" : "upid_index",
"method" : "GET",
+ "name" : "diridx",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "upid" : {
- "type" : "string"
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Audit",
+ "Datastore.AllocateSpace"
+ ],
+ "any",
+ 1
+ ]
+ },
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
- "properties" : {}
+ "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" : "<string>"
+ },
+ "enabled" : {
+ "default" : 0,
+ "description" : "Only list stores which are enabled (not disabled in config).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "format" : {
+ "default" : 0,
+ "description" : "Include information about formats",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "Only list status for specified storage",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<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"
},
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ]
- }
- },
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "upid" : {
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
+ "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"
}
},
- "proxyto" : "node",
- "permissions" : {
- "user" : "all",
- "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if the task does not belong to him."
- },
- "protected" : 1,
- "method" : "DELETE",
- "name" : "stop_task",
- "returns" : {
- "type" : "null"
- },
- "description" : "Stop a task."
- }
- },
- "path" : "/nodes/{node}/tasks/{upid}"
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{storage}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
- ]
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/storage",
+ "text" : "storage"
},
{
- "text" : "scan",
- "leaf" : 0,
- "path" : "/nodes/{node}/scan",
"children" : [
{
- "text" : "zfs",
- "leaf" : 1,
- "path" : "/nodes/{node}/scan/zfs",
"info" : {
"GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "pool" : {
- "type" : "string"
- }
- },
- "type" : "object"
- }
- },
- "name" : "zfsscan",
+ "description" : "List LVM Volume Groups",
"method" : "GET",
- "description" : "Scan zfs pool list on local node.",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
- "/storage",
+ "/",
[
- "Datastore.Allocate"
- ]
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
]
},
- "protected" : 1
- }
- }
- },
- {
- "path" : "/nodes/{node}/scan/nfs",
- "info" : {
- "GET" : {
- "description" : "Scan remote NFS server.",
- "method" : "GET",
- "name" : "nfsscan",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "path" : {
- "type" : "string"
- },
- "options" : {
- "type" : "string"
- }
- }
- },
- "type" : "array"
- },
"protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
"proxyto" : "node",
- "parameters" : {
+ "returns" : {
"properties" : {
- "server" : {
- "type" : "string",
- "format" : "pve-storage-server"
+ "children" : {
+ "items" : {
+ "properties" : {
+ "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"
+ },
+ "type" : "array"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "leaf" : {
+ "type" : "boolean"
}
},
- "additionalProperties" : 0
+ "type" : "object"
}
- }
- },
- "leaf" : 1,
- "text" : "nfs"
- },
- {
- "path" : "/nodes/{node}/scan/glusterfs",
- "info" : {
- "GET" : {
- "proxyto" : "node",
+ },
+ "POST" : {
+ "description" : "Create an LVM Volume Group",
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "server" : {
- "format" : "pve-storage-server",
- "type" : "string"
+ "add_storage" : {
+ "default" : 0,
+ "description" : "Configure storage using the Volume Group",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "node" : {
+ "device" : {
+ "description" : "The block device you want to create the volume group on",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/storage",
+ "/",
[
+ "Sys.Modify",
"Datastore.Allocate"
]
]
},
- "name" : "glusterfsscan",
- "method" : "GET",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "volname" : {
- "type" : "string"
- }
- }
- }
- },
- "description" : "Scan remote GlusterFS server."
+ "type" : "string"
+ }
}
},
- "text" : "glusterfs",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/lvm",
+ "text" : "lvm"
},
{
- "path" : "/nodes/{node}/scan/iscsi",
"info" : {
"GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "target" : {
- "type" : "string"
- },
- "portal" : {
- "type" : "string"
- }
- },
- "type" : "object"
- }
- },
+ "description" : "List LVM thinpools",
"method" : "GET",
- "name" : "iscsiscan",
- "description" : "Scan remote iSCSI server.",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "portal" : {
- "type" : "string",
- "format" : "pve-storage-portal-dns"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/storage",
+ "/",
[
- "Datastore.Allocate"
- ]
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
]
- }
- }
- },
- "text" : "iscsi",
- "leaf" : 1
- },
- {
- "path" : "/nodes/{node}/scan/lvm",
- "info" : {
- "GET" : {
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
- "vg" : {
+ "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"
}
- }
+ },
+ "type" : "object"
},
"type" : "array"
- },
- "name" : "lvmscan",
- "method" : "GET",
- "description" : "List local LVM volume groups.",
+ }
+ },
+ "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" : "<boolean>"
+ },
+ "device" : {
+ "description" : "The block device you want to create the thinpool on.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
- "/storage",
+ "/",
[
+ "Sys.Modify",
"Datastore.Allocate"
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
"leaf" : 1,
- "text" : "lvm"
+ "path" : "/nodes/{node}/disks/lvmthin",
+ "text" : "lvmthin"
},
{
- "leaf" : 1,
- "text" : "lvmthin",
"info" : {
"GET" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
+ "description" : "PVE Managed Directory storages.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
- },
- "vg" : {
"type" : "string",
- "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
- "maxLength" : 100
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "List local LVM Thin Pools.",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "lv" : {
- "type" : "string"
- }
- },
- "type" : "object"
}
},
- "method" : "GET",
- "name" : "lvmthinscan"
- }
- },
- "path" : "/nodes/{node}/scan/lvmthin"
- },
- {
- "text" : "usb",
- "leaf" : 1,
- "path" : "/nodes/{node}/scan/usb",
- "info" : {
- "GET" : {
- "description" : "List local USB devices.",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
"properties" : {
- "port" : {
- "type" : "integer"
- },
- "prodid" : {
- "type" : "string"
- },
- "manufacturer" : {
- "optional" : 1,
+ "device" : {
+ "description" : "The mounted device.",
"type" : "string"
},
- "product" : {
- "optional" : 1,
+ "options" : {
+ "description" : "The mount options.",
"type" : "string"
},
- "class" : {
- "type" : "integer"
- },
- "devnum" : {
- "type" : "integer"
- },
- "level" : {
- "type" : "integer"
- },
- "vendid" : {
+ "path" : {
+ "description" : "The mount path.",
"type" : "string"
},
- "usbpath" : {
- "type" : "string",
- "optional" : 1
- },
- "busnum" : {
- "type" : "integer"
- },
- "serial" : {
- "optional" : 1,
+ "type" : {
+ "description" : "The filesystem type.",
"type" : "string"
},
- "speed" : {
+ "unitfile" : {
+ "description" : "The path of the mount unit.",
"type" : "string"
}
},
"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" : "<boolean>"
+ },
+ "device" : {
+ "description" : "The block device you want to create the filesystem on.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "name" : "usbscan",
- "method" : "GET",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Modify",
+ "Datastore.Allocate"
]
]
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "proxyto" : "node"
- }
- }
- }
- ],
- "info" : {
- "GET" : {
- "description" : "Index of available scan methods",
- "permissions" : {
- "user" : "all"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "method" : {
- "type" : "string"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/directory",
+ "text" : "directory"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get details about a zpool.",
+ "method" : "GET",
+ "name" : "detail",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "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"
+ }
}
},
- "type" : "object"
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{method}"
- }
- ]
- },
- "method" : "GET",
- "name" : "index"
- }
- }
- },
- {
- "text" : "storage",
- "leaf" : 0,
- "children" : [
- {
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/zfs/{name}",
+ "text" : "{name}"
+ }
+ ],
"info" : {
"GET" : {
- "description" : "",
+ "description" : "List Zpools.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
- "/storage/{storage}",
+ "/",
[
- "Datastore.Audit",
- "Datastore.AllocateSpace"
+ "Sys.Audit",
+ "Datastore.Audit"
],
"any",
1
]
},
- "method" : "GET",
- "name" : "diridx",
- "parameters" : {
- "properties" : {
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier."
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
+ "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"
},
- "type" : "array",
"links" : [
{
- "href" : "{subdir}",
+ "href" : "{name}",
"rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
- }
- },
- "children" : [
- {
- "children" : [
- {
- "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
- "info" : {
- "DELETE" : {
- "protected" : 1,
- "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"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "storage" : {
- "optional" : 1,
- "description" : "The storage identifier.",
- "format" : "pve-storage-id",
- "type" : "string"
- },
- "volume" : {
- "description" : "Volume identifier",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "Delete volume",
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE",
- "name" : "delete"
- },
- "GET" : {
- "returns" : {
- "type" : "object"
- },
- "name" : "info",
- "method" : "GET",
- "description" : "Get volume attributes",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "storage" : {
- "optional" : 1,
- "description" : "The storage identifier.",
- "format" : "pve-storage-id",
- "type" : "string"
- },
- "volume" : {
- "description" : "Volume identifier",
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- },
- "protected" : 1,
- "permissions" : {
- "user" : "all",
- "description" : "You need read access for the volume."
- }
- },
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "target" : {
- "description" : "Target volume identifier",
- "type" : "string"
- },
- "volume" : {
- "type" : "string",
- "description" : "Source volume identifier"
- },
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier.",
- "optional" : 1
- },
- "target_node" : {
- "format" : "pve-node",
- "type" : "string",
- "optional" : 1,
- "description" : "Target node. Default is local node."
- }
- }
- },
- "returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "copy",
- "description" : "Copy a volume. This is experimental code - do not use.",
- "protected" : 1
- }
+ },
+ "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" : "<boolean>"
},
- "text" : "{volume}",
- "leaf" : 1
- }
- ],
- "info" : {
- "GET" : {
- "returns" : {
- "items" : {
- "properties" : {
- "volid" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{volid}"
- }
- ]
+ "ashift" : {
+ "default" : 12,
+ "description" : "Pool sector size exponent.",
+ "maximum" : 16,
+ "minimum" : 9,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (9 - 16)"
},
- "method" : "GET",
- "name" : "index",
- "description" : "List storage content.",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "optional" : 1,
- "description" : "Only list images for this VM",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "content" : {
- "description" : "Only list content of this type.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-storage-content"
- }
- },
- "additionalProperties" : 0
+ "compression" : {
+ "default" : "on",
+ "description" : "The compression algorithm to use.",
+ "enum" : [
+ "on",
+ "off",
+ "gzip",
+ "lz4",
+ "lzjb",
+ "zle"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
+ "devices" : {
+ "description" : "The block devices you want to create the zpool on.",
+ "format" : "string-list",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1
- },
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.AllocateSpace"
- ]
- ]
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier."
- },
- "format" : {
- "type" : "string",
- "requires" : "size",
- "enum" : [
- "raw",
- "qcow2",
- "subvol"
- ],
- "optional" : 1
- },
- "vmid" : {
- "description" : "Specify owner VM",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- },
- "size" : {
- "type" : "string",
- "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
- "pattern" : "\\d+[MG]?"
- },
- "filename" : {
- "description" : "The name of the file to create.",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- }
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxyto" : "node",
- "description" : "Allocate disk images.",
- "name" : "create",
- "method" : "POST",
- "returns" : {
- "description" : "Volume identifier",
+ "raidlevel" : {
+ "description" : "The RAID level to use.",
+ "enum" : [
+ "single",
+ "mirror",
+ "raid10",
+ "raidz",
+ "raidz2",
+ "raidz3"
+ ],
"type" : "string"
}
}
},
- "path" : "/nodes/{node}/storage/{storage}/content",
- "text" : "content",
- "leaf" : 0
- },
- {
- "text" : "status",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "read_status",
- "returns" : {
- "properties" : {},
- "type" : "object"
+ "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" : {
+ "description" : "List local disks.",
+ "method" : "GET",
+ "name" : "list",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "description" : "Read storage status.",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "skipsmart" : {
+ "default" : 0,
+ "description" : "Skip smart checks.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
+ "type" : {
+ "description" : "Only list specific types of disks.",
+ "enum" : [
+ "unused",
+ "journal_disks"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
}
},
- "path" : "/nodes/{node}/storage/{storage}/status"
- },
- {
- "path" : "/nodes/{node}/storage/{storage}/rrd",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "rrd",
- "returns" : {
- "type" : "object",
- "properties" : {
- "filename" : {
- "type" : "string"
- }
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "devpath" : {
+ "description" : "The device path",
+ "type" : "string"
+ },
+ "gpt" : {
+ "type" : "boolean"
+ },
+ "health" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "model" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "osdid" : {
+ "type" : "integer"
+ },
+ "serial" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "size" : {
+ "type" : "integer"
+ },
+ "used" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vendor" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "optional" : 1,
+ "type" : "string"
}
},
- "description" : "Read storage RRD statistics (returns PNG).",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "cf" : {
- "optional" : 1,
- "description" : "The RRD consolidation function",
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "type" : "string"
- },
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
- },
- "timeframe" : {
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ],
- "description" : "Specify the time frame you are interested in.",
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "ds" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "The list of datasources you want to display."
- }
- }
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/list",
+ "text" : "list"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get SMART Health of a disk.",
+ "method" : "GET",
+ "name" : "smart",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "disk" : {
+ "description" : "Block device name",
+ "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
+ "type" : "string"
},
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
+ "healthonly" : {
+ "description" : "If true returns only the health status",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protected" : 1
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "leaf" : 1,
- "text" : "rrd"
- },
- {
- "text" : "rrddata",
- "leaf" : 1,
- "path" : "/nodes/{node}/storage/{storage}/rrddata",
- "info" : {
- "GET" : {
- "description" : "Read storage RRD statistics.",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- }
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "attributes" : {
+ "optional" : 1,
+ "type" : "array"
},
- "method" : "GET",
- "name" : "rrddata",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
+ "health" : {
+ "type" : "string"
},
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "timeframe" : {
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ],
- "description" : "Specify the time frame you are interested in.",
- "type" : "string"
- },
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier."
- },
- "cf" : {
- "type" : "string",
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "optional" : 1,
- "description" : "The RRD consolidation function"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- }
+ "text" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "optional" : 1,
+ "type" : "string"
}
- }
+ },
+ "type" : "object"
}
- },
- {
- "text" : "upload",
- "leaf" : 1,
- "path" : "/nodes/{node}/storage/{storage}/upload",
- "info" : {
- "POST" : {
- "method" : "POST",
- "name" : "upload",
- "returns" : {
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/smart",
+ "text" : "smart"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Initialize Disk with GPT",
+ "method" : "POST",
+ "name" : "initgpt",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "disk" : {
+ "description" : "Block device name",
+ "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
"type" : "string"
},
- "parameters" : {
- "properties" : {
- "storage" : {
- "description" : "The storage identifier.",
- "format" : "pve-storage-id",
- "type" : "string"
- },
- "tmpfilename" : {
- "optional" : 1,
- "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.",
- "type" : "string"
- },
- "content" : {
- "format" : "pve-storage-content",
- "type" : "string",
- "description" : "Content type."
- },
- "filename" : {
- "description" : "The name of the file to create.",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1,
- "description" : "Upload templates and ISO images.",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.AllocateTemplate"
- ]
- ]
+ "uuid" : {
+ "description" : "UUID for the GPT table",
+ "maxLength" : 36,
+ "optional" : 1,
+ "pattern" : "[a-fA-F0-9\\-]+",
+ "type" : "string"
}
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
- ],
- "path" : "/nodes/{node}/storage/{storage}",
- "text" : "{storage}",
- "leaf" : 0
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/initgpt",
+ "text" : "initgpt"
}
],
- "path" : "/nodes/{node}/storage",
"info" : {
"GET" : {
- "description" : "Get status for all datastores.",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "storage" : {
- "type" : "string"
- }
- }
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{storage}"
- }
- ]
- },
- "name" : "index",
+ "description" : "Node index.",
"method" : "GET",
- "permissions" : {
- "user" : "all",
- "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'"
- },
- "protected" : 1,
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "content" : {
- "type" : "string",
- "format" : "pve-storage-content-list",
- "description" : "Only list stores which support this content type.",
- "optional" : 1
- },
- "target" : {
- "optional" : 1,
- "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
- },
- "enabled" : {
- "optional" : 1,
- "description" : "Only list stores which are enabled (not disabled in config).",
- "default" : 0,
- "type" : "boolean"
- },
- "storage" : {
- "format" : "pve-storage-id",
"type" : "string",
- "optional" : 1,
- "description" : "Only list status for specified storage"
+ "typetext" : "<string>"
}
}
},
- "proxyto" : "node"
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/disks",
+ "text" : "disks"
},
{
- "text" : "apt",
- "leaf" : 0,
"children" : [
{
"info" : {
- "POST" : {
- "proxyto" : "node",
+ "GET" : {
+ "description" : "List available updates.",
+ "method" : "GET",
+ "name" : "list_updates",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "notify" : {
- "optional" : 1,
- "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
- "default" : 0,
- "type" : "boolean"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
- },
- "quiet" : {
- "type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "Only produces output suitable for logging, omitting progress indicators."
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
"method" : "POST",
"name" : "update_database",
- "returns" : {
- "type" : "string"
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "notify" : {
+ "default" : 0,
+ "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Only produces output suitable for logging, omitting progress indicators.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
},
- "description" : "This is used to resynchronize the package index files from their sources (apt-get update)."
- },
- "GET" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
- "description" : "List available updates.",
"returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
- },
- "name" : "list_updates",
- "method" : "GET"
+ "type" : "string"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/apt/update",
- "text" : "update",
- "leaf" : 1
+ "text" : "update"
},
{
- "leaf" : 1,
- "text" : "changelog",
"info" : {
"GET" : {
+ "description" : "Get package changelogs.",
"method" : "GET",
"name" : "changelog",
- "returns" : {
- "type" : "string"
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"name" : {
"description" : "Package name.",
- "type" : "string"
- },
- "version" : {
"type" : "string",
- "optional" : 1,
- "description" : "Package version."
+ "typetext" : "<string>"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "version" : {
+ "description" : "Package version.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get package changelogs."
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/apt/changelog"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/changelog",
+ "text" : "changelog"
},
{
- "text" : "versions",
- "leaf" : 1,
"info" : {
"GET" : {
+ "description" : "Get package information for important Proxmox packages.",
+ "method" : "GET",
+ "name" : "versions",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get package information for important Proxmox packages.",
- "method" : "GET",
- "name" : "versions",
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
- "properties" : {}
+ "properties" : {},
+ "type" : "object"
},
"type" : "array"
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
}
}
},
- "path" : "/nodes/{node}/apt/versions"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/versions",
+ "text" : "versions"
}
],
- "path" : "/nodes/{node}/apt",
"info" : {
"GET" : {
"description" : "Directory index for apt (Advanced Package Tool).",
- "permissions" : {
- "user" : "all"
- },
"method" : "GET",
"name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
"returns" : {
"items" : {
},
"type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{id}"
+ "href" : "{id}",
+ "rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/apt",
+ "text" : "apt"
},
{
- "leaf" : 0,
- "text" : "firewall",
- "path" : "/nodes/{node}/firewall",
"children" : [
{
"children" : [
{
- "leaf" : 1,
- "text" : "{pos}",
- "path" : "/nodes/{node}/firewall/rules/{pos}",
"info" : {
"DELETE" : {
+ "description" : "Delete rule.",
+ "method" : "DELETE",
+ "name" : "delete_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
},
"protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"pos" : {
"description" : "Update rule at position <pos>.",
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 0
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "maxLength" : 40,
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
+ "typetext" : "<integer> (0 - N)"
}
}
},
- "description" : "Delete rule.",
- "name" : "delete_rule",
- "method" : "DELETE",
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "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"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "optional" : 1,
+ "type" : "string"
+ },
"pos" : {
"type" : "integer"
- }
- },
- "type" : "object"
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "pos" : {
- "minimum" : 0,
- "type" : "integer",
- "description" : "Update rule at position <pos>.",
- "optional" : 1
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "proto" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "source" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "sport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
"type" : "string"
}
- }
- },
- "name" : "get_rule",
- "method" : "GET",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Get single rule data."
+ },
+ "type" : "object"
+ }
},
"PUT" : {
+ "description" : "Modify rule data.",
"method" : "PUT",
"name" : "update_rule",
- "returns" : {
- "type" : "null"
- },
- "description" : "Modify rule data.",
- "proxyto" : "node",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "sport" : {
+ "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,
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
"type" : "string",
- "format" : "pve-fw-sport-spec"
+ "typetext" : "<string>"
},
"delete" : {
- "type" : "string",
+ "description" : "A list of settings you want to delete.",
"format" : "pve-configid-list",
"optional" : 1,
- "description" : "A list of settings you want to delete."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "moveto" : {
- "type" : "integer",
- "minimum" : 0,
+ "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,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "enable" : {
+ "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" : "integer",
- "minimum" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
"dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
"format" : "pve-fw-dport-spec",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "proto" : {
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
"type" : "string",
- "format" : "pve-fw-protocol-spec",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
"optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
+ "type" : "string"
},
"macro" : {
- "optional" : 1,
+ "description" : "Use predefined standard macro.",
"maxLength" : 128,
- "type" : "string"
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "source" : {
- "format" : "pve-fw-addr-spec",
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
"type" : "string",
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "iface" : {
- "maxLength" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
"optional" : 1,
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "digest" : {
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
"optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"type" : {
- "type" : "string",
- "optional" : 1,
+ "description" : "Rule type.",
"enum" : [
"in",
"out",
"group"
- ]
- },
- "dest" : {
- "optional" : 1,
- "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",
- "type" : "string"
- },
- "action" : {
- "maxLength" : 20,
+ ],
"optional" : 1,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/firewall/rules/{pos}",
+ "text" : "{pos}"
}
],
- "path" : "/nodes/{node}/firewall/rules",
"info" : {
"GET" : {
+ "description" : "List rules.",
"method" : "GET",
"name" : "get_rules",
- "returns" : {
- "links" : [
- {
- "href" : "{pos}",
- "rel" : "child"
- }
- ],
- "items" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "description" : "List rules.",
"permissions" : {
"check" : [
"perm",
"Sys.Audit"
]
]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
"POST" : {
- "proxyto" : "node",
+ "description" : "Create new rule.",
+ "method" : "POST",
+ "name" : "create_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 0,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"digest" : {
- "maxLength" : 40,
"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" : "string",
+ "typetext" : "<string>"
},
- "proto" : {
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-fw-protocol-spec",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"iface" : {
"description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "optional" : 1,
+ "format" : "pve-iface",
"maxLength" : 20,
"minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- },
- "dport" : {
"optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
"type" : "string",
- "format" : "pve-fw-dport-spec"
- },
- "enable" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "typetext" : "<string>"
},
- "source" : {
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
"optional" : 1,
- "format" : "pve-fw-addr-spec",
"type" : "string"
},
- "sport" : {
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
"optional" : 1,
"type" : "string",
- "format" : "pve-fw-sport-spec"
+ "typetext" : "<string>"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"pos" : {
- "type" : "integer",
- "minimum" : 0,
"description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "action" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20,
- "optional" : 0,
- "type" : "string"
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "comment" : {
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "dest" : {
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
"format" : "pve-fw-addr-spec",
- "type" : "string",
"optional" : 1,
- "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."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "macro" : {
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
"type" : "string",
- "maxLength" : 128,
- "optional" : 1
+ "typetext" : "<string>"
},
"type" : {
+ "description" : "Rule type.",
"enum" : [
"in",
"out",
"optional" : 0,
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "null"
- },
- "method" : "POST",
- "name" : "create_rule",
- "description" : "Create new rule."
+ }
}
},
- "text" : "rules",
- "leaf" : 0
+ "leaf" : 0,
+ "path" : "/nodes/{node}/firewall/rules",
+ "text" : "rules"
},
{
- "path" : "/nodes/{node}/firewall/options",
"info" : {
- "PUT" : {
- "protected" : 1,
+ "GET" : {
+ "description" : "Get host firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"/nodes/{node}",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
"proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "enable" : {
+ "description" : "Enable host firewall rules.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_nf_conntrack" : {
+ "default" : 0,
+ "description" : "Enable logging of conntrack information.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ndp" : {
+ "description" : "Enable NDP.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "nf_conntrack_allow_invalid" : {
+ "default" : 0,
+ "description" : "Allow invalid packets on connection tracking.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "nf_conntrack_max" : {
+ "description" : "Maximum number of tracked connections.",
+ "minimum" : 32768,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "nf_conntrack_tcp_timeout_established" : {
+ "description" : "Conntrack established timeout.",
+ "minimum" : 7875,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "nosmurfs" : {
+ "description" : "Enable SMURFS filter.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "smurf_log_level" : {
+ "description" : "Log level for SMURFS filter.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "tcp_flags_log_level" : {
+ "description" : "Log level for illegal tcp flags filter.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "tcpflags" : {
+ "description" : "Filter illegal combinations of TCP flags.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Set Firewall options.",
+ "method" : "PUT",
+ "name" : "set_options",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"digest" : {
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
"maxLength" : 40,
- "type" : "string"
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
"enable" : {
"description" : "Enable host firewall rules.",
"optional" : 1,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"log_level_in" : {
- "type" : "string",
+ "description" : "Log level for incoming traffic.",
"enum" : [
"emerg",
"alert",
"nolog"
],
"optional" : 1,
- "description" : "Log level for incoming traffic."
+ "type" : "string"
},
- "nosmurfs" : {
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_nf_conntrack" : {
+ "default" : 0,
+ "description" : "Enable logging of conntrack information.",
+ "optional" : 1,
"type" : "boolean",
- "description" : "Enable SMURFS filter.",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "tcpflags" : {
+ "ndp" : {
+ "description" : "Enable NDP.",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "nf_conntrack_allow_invalid" : {
+ "default" : 0,
+ "description" : "Allow invalid packets on connection tracking.",
"optional" : 1,
- "description" : "Filter illegal combinations of TCP flags."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"nf_conntrack_max" : {
- "type" : "integer",
- "minimum" : 32768,
"description" : "Maximum number of tracked connections.",
- "optional" : 1
+ "minimum" : 32768,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (32768 - N)"
+ },
+ "nf_conntrack_tcp_timeout_established" : {
+ "description" : "Conntrack established timeout.",
+ "minimum" : 7875,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (7875 - N)"
},
- "delete" : {
- "format" : "pve-configid-list",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "A list of settings you want to delete.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "log_level_out" : {
+ "nosmurfs" : {
+ "description" : "Enable SMURFS filter.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "smurf_log_level" : {
+ "description" : "Log level for SMURFS filter.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "description" : "Log level for outgoing traffic.",
"optional" : 1,
"type" : "string"
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "nf_conntrack_tcp_timeout_established" : {
- "minimum" : 7875,
- "type" : "integer",
- "description" : "Conntrack established timeout.",
- "optional" : 1
- },
"tcp_flags_log_level" : {
- "type" : "string",
"description" : "Log level for illegal tcp flags filter.",
- "optional" : 1,
"enum" : [
"emerg",
"alert",
"info",
"debug",
"nolog"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "ndp" : {
+ "tcpflags" : {
+ "description" : "Filter illegal combinations of TCP flags.",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/firewall/options",
+ "text" : "options"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Read firewall log",
+ "method" : "GET",
+ "name" : "log",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "limit" : {
+ "minimum" : 0,
"optional" : 1,
- "description" : "Enable NDP."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "smurf_log_level" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "minimum" : 0,
"optional" : 1,
- "description" : "Log level for SMURFS filter."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Syslog"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/firewall/log",
+ "text" : "log"
+ }
+ ],
+ "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" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/firewall",
+ "text" : "firewall"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get replication job status.",
+ "method" : "GET",
+ "name" : "job_status",
+ "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. '<GUEST>-<JOBNUM>'.",
+ "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" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/replication/{id}/status",
+ "text" : "status"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Read replication job log.",
+ "method" : "GET",
+ "name" : "read_job_log",
+ "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. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
+ },
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/replication/{id}/log",
+ "text" : "log"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Schedule replication job to start as soon as possible.",
+ "method" : "POST",
+ "name" : "schedule_now",
+ "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. '<GUEST>-<JOBNUM>'.",
+ "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" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "description" : "Set Firewall options.",
- "returns" : {
- "type" : "null"
+ }
},
- "name" : "set_options",
- "method" : "PUT"
- },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/replication/{id}/schedule_now",
+ "text" : "schedule_now"
+ }
+ ],
+ "info" : {
"GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Get host firewall options.",
+ "description" : "Directory index.",
"method" : "GET",
- "name" : "get_options",
- "returns" : {
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "nf_conntrack_tcp_timeout_established" : {
- "optional" : 1,
- "description" : "Conntrack established timeout.",
- "type" : "integer",
- "minimum" : 7875
- },
- "ndp" : {
- "type" : "boolean",
- "description" : "Enable NDP.",
- "optional" : 1
- },
- "smurf_log_level" : {
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "description" : "Log level for SMURFS filter.",
- "optional" : 1,
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
"type" : "string"
},
- "tcp_flags_log_level" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "optional" : 1,
- "description" : "Log level for illegal tcp flags filter."
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "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" : "<integer> (1 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+ "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" : "<string>"
+ }
+ }
},
- "log_level_in" : {
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "description" : "Log level for incoming traffic.",
- "optional" : 1,
+ "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" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "enable" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable host firewall rules."
- },
- "nf_conntrack_max" : {
- "description" : "Maximum number of tracked connections.",
- "optional" : 1,
- "type" : "integer",
- "minimum" : 32768
- },
- "tcpflags" : {
- "optional" : 1,
- "description" : "Filter illegal combinations of TCP flags.",
- "type" : "boolean"
- },
- "nosmurfs" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable SMURFS filter."
- },
- "log_level_out" : {
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "optional" : 1,
- "description" : "Log level for outgoing traffic.",
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
}
},
- "type" : "object"
+ "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" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
},
- "proxyto" : "node",
+ "leaf" : 1,
+ "path" : "/nodes/{node}/certificates/acme/certificate",
+ "text" : "certificate"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "ACME index.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
}
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
},
- "additionalProperties" : 0
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
},
- "leaf" : 1,
- "text" : "options"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/certificates/acme",
+ "text" : "acme"
},
{
- "path" : "/nodes/{node}/firewall/log",
"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" : "<string>"
+ }
+ }
+ },
"permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Syslog"
- ]
- ]
+ "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" : "<string>"
+ },
+ "restart" : {
+ "default" : 0,
+ "description" : "Restart pveproxy.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
},
"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" : {
- "limit" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "certificates" : {
+ "description" : "PEM encoded certificate (chain).",
+ "format" : "pem-certificate-chain",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "node" : {
+ "force" : {
+ "default" : 0,
+ "description" : "Overwrite existing custom or ACME certificate files.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "key" : {
+ "description" : "PEM encoded private key.",
+ "format" : "pem-string",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "start" : {
+ "restart" : {
+ "default" : 0,
+ "description" : "Restart pveproxy.",
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
}
},
- "description" : "Read firewall log",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "t" : {
- "description" : "Line text",
+ "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"
},
- "n" : {
- "type" : "integer",
- "description" : "Line number"
- }
+ "optional" : 1,
+ "renderer" : "yaml",
+ "type" : "array"
+ },
+ "subject" : {
+ "description" : "Certificate subject name.",
+ "optional" : 1,
+ "type" : "string"
}
},
- "type" : "array"
- },
- "method" : "GET",
- "name" : "log"
+ "type" : "object"
+ }
}
},
- "text" : "log",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/certificates/custom",
+ "text" : "custom"
}
],
"info" : {
"GET" : {
+ "description" : "Node index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "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" : "<string>"
+ }
+ }
+ },
+ "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" : "string",
+ "typetext" : "domains=<domain[;domain;...]> [,account=<name>]"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "description" : {
+ "description" : "Node description/comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "wakeonlan" : {
+ "description" : "MAC address for wake on LAN",
+ "format" : "mac-addr",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
]
},
- "name" : "index",
- "method" : "GET",
- "description" : "Directory index.",
- "permissions" : {
- "user" : "all"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/config",
+ "text" : "config"
},
{
- "text" : "version",
- "leaf" : 1,
- "path" : "/nodes/{node}/version",
"info" : {
"GET" : {
"description" : "API version details",
- "permissions" : {
- "user" : "all"
- },
- "proxyto" : "node",
+ "method" : "GET",
+ "name" : "version",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
"returns" : {
"properties" : {
- "version" : {
- "type" : "string"
- },
"release" : {
"type" : "string"
},
"repoid" : {
"type" : "string"
+ },
+ "version" : {
+ "type" : "string"
}
},
"type" : "object"
- },
- "method" : "GET",
- "name" : "version"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/version",
+ "text" : "version"
},
{
- "text" : "status",
- "leaf" : 1,
- "path" : "/nodes/{node}/status",
"info" : {
"GET" : {
+ "description" : "Read node status",
"method" : "GET",
"name" : "status",
- "returns" : {
- "type" : "object",
- "properties" : {}
- },
- "proxyto" : "node",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Read node status",
"permissions" : {
"check" : [
"perm",
"Sys.Audit"
]
]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
}
},
"POST" : {
- "returns" : {
- "type" : "null"
- },
- "name" : "node_cmd",
- "method" : "POST",
"description" : "Reboot or shutdown a node.",
- "proxyto" : "node",
+ "method" : "POST",
+ "name" : "node_cmd",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
"command" : {
+ "description" : "Specify the command.",
"enum" : [
"reboot",
"shutdown"
],
- "description" : "Specify the command.",
"type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/status",
+ "text" : "status"
},
{
- "leaf" : 1,
- "text" : "netstat",
- "path" : "/nodes/{node}/netstat",
"info" : {
"GET" : {
+ "description" : "Read tap/vm network device interface counters",
"method" : "GET",
"name" : "netstat",
- "proxyto" : "node",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
}
},
- "description" : "Read tap/vm network device interface counters",
"permissions" : {
"check" : [
"perm",
"Sys.Audit"
]
]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/netstat",
+ "text" : "netstat"
},
{
"info" : {
"POST" : {
+ "description" : "Execute multiple commands in order.",
+ "method" : "POST",
+ "name" : "execute",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"commands" : {
"description" : "JSON encoded array of commands.",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
}
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "properties" : {},
"type" : "array"
- },
- "method" : "POST",
- "name" : "execute",
- "description" : "Execute multiple commands in order."
+ }
}
},
- "path" : "/nodes/{node}/execute",
"leaf" : 1,
+ "path" : "/nodes/{node}/execute",
"text" : "execute"
},
{
- "text" : "rrd",
- "leaf" : 1,
- "path" : "/nodes/{node}/rrd",
"info" : {
- "GET" : {
- "method" : "GET",
- "name" : "rrd",
- "returns" : {
- "type" : "object",
+ "POST" : {
+ "description" : "Try to wake a node via 'wake on LAN' network packet.",
+ "method" : "POST",
+ "name" : "wakeonlan",
+ "parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "filename" : {
- "type" : "string"
+ "node" : {
+ "description" : "target node for wake on LAN packet",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "MAC address used to assemble the WoL magic packet.",
+ "format" : "mac-addr",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/wakeonlan",
+ "text" : "wakeonlan"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Read node RRD statistics (returns PNG)",
+ "method" : "GET",
+ "name" : "rrd",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "ds" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "The list of datasources you want to display."
- },
"cf" : {
"description" : "The RRD consolidation function",
- "optional" : 1,
"enum" : [
"AVERAGE",
"MAX"
],
+ "optional" : 1,
"type" : "string"
},
+ "ds" : {
+ "description" : "The list of datasources you want to display.",
+ "format" : "pve-configid-list",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"timeframe" : {
+ "description" : "Specify the time frame you are interested in.",
"enum" : [
"hour",
"day",
"month",
"year"
],
- "description" : "Specify the time frame you are interested in.",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Read node RRD statistics (returns PNG)"
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/rrd",
+ "text" : "rrd"
},
{
- "path" : "/nodes/{node}/rrddata",
"info" : {
"GET" : {
- "protected" : 1,
"description" : "Read node RRD statistics",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
"method" : "GET",
"name" : "rrddata",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
},
"timeframe" : {
"description" : "Specify the time frame you are interested in.",
"year"
],
"type" : "string"
- },
- "cf" : {
- "type" : "string",
- "optional" : 1,
- "description" : "The RRD consolidation function",
- "enum" : [
- "AVERAGE",
- "MAX"
- ]
}
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
},
- "additionalProperties" : 0
+ "type" : "array"
}
}
},
- "text" : "rrddata",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/rrddata",
+ "text" : "rrddata"
},
{
- "text" : "syslog",
- "leaf" : 1,
- "path" : "/nodes/{node}/syslog",
"info" : {
"GET" : {
+ "description" : "Read system log",
"method" : "GET",
"name" : "syslog",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "t" : {
- "description" : "Line text",
- "type" : "string"
- },
- "n" : {
- "description" : "Line number",
- "type" : "integer"
- }
- }
- }
- },
- "description" : "Read system log",
- "proxyto" : "node",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "start" : {
+ "limit" : {
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 0
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
"since" : {
- "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
"description" : "Display all log since this date-time string.",
"optional" : 1,
+ "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
"type" : "string"
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "limit" : {
+ "start" : {
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 0
+ "typetext" : "<integer> (0 - N)"
},
"until" : {
- "type" : "string",
- "optional" : 1,
"description" : "Display all log until this date-time string.",
- "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$"
+ "optional" : 1,
+ "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
+ "type" : "string"
}
}
},
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/syslog",
+ "text" : "syslog"
},
{
- "text" : "vncshell",
- "leaf" : 1,
- "path" : "/nodes/{node}/vncshell",
"info" : {
"POST" : {
- "name" : "vncshell",
+ "description" : "Creates a VNC Shell proxy.",
"method" : "POST",
+ "name" : "vncshell",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cmd" : {
+ "default" : "login",
+ "description" : "Run specific command or default to login.",
+ "enum" : [
+ "upgrade",
+ "ceph_install",
+ "login"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "height" : {
+ "description" : "sets the height of the console in pixels.",
+ "maximum" : 2160,
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - 2160)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "upgrade" : {
+ "default" : 0,
+ "description" : "Deprecated, use the 'cmd' property instead! Run 'apt-get dist-upgrade' instead of normal shell.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "websocket" : {
+ "description" : "use websocket instead of standard vnc.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "width" : {
+ "description" : "sets the width of the console in pixels.",
+ "maximum" : 4096,
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - 4096)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Console"
+ ]
+ ],
+ "description" : "Restricted to users on realm 'pam'"
+ },
+ "protected" : 1,
"returns" : {
"additionalProperties" : 0,
"properties" : {
"type" : "string"
}
}
- },
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/vncshell",
+ "text" : "vncshell"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Creates a VNC Shell proxy.",
+ "method" : "POST",
+ "name" : "termproxy",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "upgrade" : {
- "type" : "boolean",
- "default" : 0,
+ "cmd" : {
+ "default" : "login",
+ "description" : "Run specific command or default to login.",
+ "enum" : [
+ "upgrade",
+ "ceph_install",
+ "login"
+ ],
"optional" : 1,
- "description" : "Run 'apt-get dist-upgrade' instead of normal shell."
+ "type" : "string"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "websocket" : {
- "type" : "boolean",
+ "upgrade" : {
+ "default" : 0,
+ "description" : "Deprecated, use the 'cmd' property instead! Run 'apt-get dist-upgrade' instead of normal shell.",
"optional" : 1,
- "description" : "use websocket instead of standard vnc."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
],
"description" : "Restricted to users on realm 'pam'"
},
- "description" : "Creates a VNC Shell proxy."
- }
- }
- },
- {
- "info" : {
- "GET" : {
+ "protected" : 1,
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
"port" : {
+ "type" : "integer"
+ },
+ "ticket" : {
+ "type" : "string"
+ },
+ "upid" : {
+ "type" : "string"
+ },
+ "user" : {
"type" : "string"
}
- },
- "type" : "object"
- },
+ }
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/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" : "<string>"
+ },
"port" : {
"description" : "Port number returned by previous vncproxy call.",
+ "maximum" : 5999,
"minimum" : 5900,
"type" : "integer",
- "maximum" : 5999
+ "typetext" : "<integer> (5900 - 5999)"
},
"vncticket" : {
"description" : "Ticket from previous call to vncproxy.",
"maxLength" : 512,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
}
}
},
- "name" : "vncwebsocket",
- "method" : "GET",
- "description" : "Opens a weksocket for VNC traffic.",
"permissions" : {
- "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket).",
"check" : [
"perm",
"/nodes/{node}",
[
"Sys.Console"
]
- ]
+ ],
+ "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
+ },
+ "returns" : {
+ "properties" : {
+ "port" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
}
}
},
- "path" : "/nodes/{node}/vncwebsocket",
"leaf" : 1,
+ "path" : "/nodes/{node}/vncwebsocket",
"text" : "vncwebsocket"
},
{
"info" : {
"POST" : {
+ "description" : "Creates a SPICE shell.",
+ "method" : "POST",
+ "name" : "spiceshell",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "upgrade" : {
- "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
+ "cmd" : {
+ "default" : "login",
+ "description" : "Run specific command or default to login.",
+ "enum" : [
+ "upgrade",
+ "ceph_install",
+ "login"
+ ],
"optional" : 1,
- "type" : "boolean",
- "default" : 0
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"proxy" : {
- "type" : "string",
+ "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",
- "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).",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "upgrade" : {
+ "default" : 0,
+ "description" : "Deprecated, use the 'cmd' property instead! Run 'apt-get dist-upgrade' instead of normal shell.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
- "description" : "Restricted to users on realm 'pam'",
"check" : [
"perm",
"/nodes/{node}",
[
"Sys.Console"
]
- ]
- },
- "method" : "POST",
- "name" : "spiceshell",
+ ],
+ "description" : "Restricted to users on realm 'pam'"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
"additionalProperties" : 1,
+ "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
"properties" : {
- "tls-port" : {
- "type" : "integer"
- },
- "type" : {
+ "host" : {
"type" : "string"
},
"password" : {
"proxy" : {
"type" : "string"
},
- "host" : {
+ "tls-port" : {
+ "type" : "integer"
+ },
+ "type" : {
"type" : "string"
}
}
- },
- "description" : "Creates a SPICE shell."
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/spiceshell",
- "text" : "spiceshell",
- "leaf" : 1
+ "text" : "spiceshell"
},
{
"info" : {
- "PUT" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
+ "GET" : {
+ "description" : "Read DNS settings.",
+ "method" : "GET",
+ "name" : "dns",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "dns3" : {
- "type" : "string",
- "format" : "ip",
- "description" : "Third name server IP address.",
- "optional" : 1
- },
- "search" : {
- "description" : "Search domain for host-name lookup.",
- "type" : "string"
- },
- "dns1" : {
- "format" : "ip",
- "type" : "string",
- "optional" : 1,
- "description" : "First name server IP address."
- },
- "dns2" : {
- "description" : "Second name server IP address.",
- "optional" : 1,
- "format" : "ip",
- "type" : "string"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "Write DNS settings.",
- "returns" : {
- "type" : "null"
+ }
},
- "method" : "PUT",
- "name" : "update_dns"
- },
- "GET" : {
- "description" : "Read DNS settings.",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "proxyto" : "node",
"returns" : {
"additionalProperties" : 0,
"properties" : {
- "dns3" : {
+ "dns1" : {
+ "description" : "First name server IP address.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dns2" : {
+ "description" : "Second name server IP address.",
"optional" : 1,
+ "type" : "string"
+ },
+ "dns3" : {
"description" : "Third name server IP address.",
+ "optional" : 1,
"type" : "string"
},
"search" : {
- "type" : "string",
"description" : "Search domain for host-name lookup.",
- "optional" : 1
- },
- "dns1" : {
- "type" : "string",
- "description" : "First name server IP address.",
- "optional" : 1
- },
- "dns2" : {
- "description" : "Second name server IP address.",
"optional" : 1,
"type" : "string"
}
},
"type" : "object"
- },
+ }
+ },
+ "PUT" : {
+ "description" : "Write DNS settings.",
+ "method" : "PUT",
+ "name" : "update_dns",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
+ "dns1" : {
+ "description" : "First name server IP address.",
+ "format" : "ip",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dns2" : {
+ "description" : "Second name server IP address.",
+ "format" : "ip",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dns3" : {
+ "description" : "Third name server IP address.",
+ "format" : "ip",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "search" : {
+ "description" : "Search domain for host-name lookup.",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
"proxyto" : "node",
- "method" : "GET",
- "name" : "dns"
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/dns",
"leaf" : 1,
+ "path" : "/nodes/{node}/dns",
"text" : "dns"
},
{
- "text" : "time",
- "leaf" : 1,
"info" : {
"GET" : {
- "name" : "time",
+ "description" : "Read server time and time zone settings.",
"method" : "GET",
+ "name" : "time",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
"proxyto" : "node",
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
- "time" : {
- "type" : "integer",
+ "localtime" : {
+ "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
"minimum" : 1297163644,
- "description" : "Seconds since 1970-01-01 00:00:00 UTC."
+ "renderer" : "timestamp_gmt",
+ "type" : "integer"
},
- "localtime" : {
- "type" : "integer",
+ "time" : {
+ "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
"minimum" : 1297163644,
- "description" : "Seconds since 1970-01-01 00:00:00 (local time)"
+ "renderer" : "timestamp",
+ "type" : "integer"
},
"timezone" : {
- "type" : "string",
- "description" : "Time zone"
+ "description" : "Time zone",
+ "type" : "string"
}
},
- "additionalProperties" : 0,
"type" : "object"
- },
- "description" : "Read server time and time zone settings.",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
}
},
"PUT" : {
+ "description" : "Set time zone.",
"method" : "PUT",
"name" : "set_timezone",
- "returns" : {
- "type" : "null"
- },
- "description" : "Set time zone.",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"timezone" : {
"description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/time"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/time",
+ "text" : "time"
},
{
- "leaf" : 1,
- "text" : "aplinfo",
"info" : {
- "POST" : {
+ "GET" : {
+ "description" : "Get list of appliances.",
+ "method" : "GET",
+ "name" : "aplinfo",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "template" : {
- "type" : "string",
- "maxLength" : 255,
- "description" : "The template wich will downloaded"
- },
- "storage" : {
- "description" : "Only list status for specified storage",
- "type" : "string",
- "format" : "pve-storage-id"
- },
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.AllocateTemplate"
- ]
- ]
- },
- "protected" : 1,
- "method" : "POST",
- "name" : "apl_download",
- "returns" : {
- "type" : "string"
+ "user" : "all"
},
- "description" : "Download appliance templates."
- },
- "GET" : {
- "method" : "GET",
- "name" : "aplinfo",
+ "proxyto" : "node",
"returns" : {
"items" : {
"properties" : {},
"type" : "object"
},
"type" : "array"
- },
+ }
+ },
+ "POST" : {
+ "description" : "Download appliance templates.",
+ "method" : "POST",
+ "name" : "apl_download",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage where the template will be stored",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "template" : {
+ "description" : "The template wich will downloaded",
+ "maxLength" : 255,
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "description" : "Get list of appliances.",
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.AllocateTemplate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
},
- "path" : "/nodes/{node}/aplinfo"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/aplinfo",
+ "text" : "aplinfo"
},
{
"info" : {
"GET" : {
+ "description" : "Gather various systems information about a node",
+ "method" : "GET",
+ "name" : "report",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
}
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "name" : "report",
- "method" : "GET",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "description" : "Gather various systems information about a node"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/report",
- "text" : "report",
- "leaf" : 1
+ "text" : "report"
},
{
"info" : {
"POST" : {
+ "description" : "Start all VMs and containers (when onboot=1).",
+ "method" : "POST",
+ "name" : "startall",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "force" : {
+ "description" : "force if onboot=0.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "force" : {
+ "vms" : {
+ "description" : "Only consider Guests with these IDs.",
+ "format" : "pve-vmid-list",
"optional" : 1,
- "description" : "force if onboot=0.",
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "name" : "startall",
- "method" : "POST",
- "description" : "Start all VMs and containers (when onboot=1)."
+ }
}
},
- "path" : "/nodes/{node}/startall",
"leaf" : 1,
+ "path" : "/nodes/{node}/startall",
"text" : "startall"
},
{
- "text" : "stopall",
- "leaf" : 1,
"info" : {
"POST" : {
- "proxyto" : "node",
+ "description" : "Stop all VMs and Containers.",
+ "method" : "POST",
+ "name" : "stopall",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vms" : {
+ "description" : "Only consider Guests with these IDs.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "method" : "POST",
- "name" : "stopall",
- "description" : "Stop all VMs and Containers."
+ }
}
},
- "path" : "/nodes/{node}/stopall"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/stopall",
+ "text" : "stopall"
},
{
"info" : {
"POST" : {
- "proxyto" : "node",
+ "description" : "Migrate all VMs and Containers.",
+ "method" : "POST",
+ "name" : "migrateall",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "maxworkers" : {
+ "description" : "Maximal number of parallel migration job. If not set use 'max_workers' from datacenter.cfg, one of both must be set!",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"target" : {
- "type" : "string",
+ "description" : "Target node.",
"format" : "pve-node",
- "description" : "Target node."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "maxworkers" : {
- "minimum" : 1,
- "type" : "integer",
+ "vms" : {
+ "description" : "Only consider Guests with these IDs.",
+ "format" : "pve-vmid-list",
"optional" : 1,
- "description" : "Maximal number of parallel migration job. If not set use 'max_workers' from datacenter.cfg, one of both must be set!"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
+ }
+ }
+ },
+ "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" : "<string>"
+ }
+ }
+ },
+ "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" : "migrateall",
- "description" : "Migrate all VMs and Containers."
+ "name" : "write_etc_hosts",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "data" : {
+ "description" : "The target content of /etc/hosts.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/migrateall",
- "text" : "migrateall",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/hosts",
+ "text" : "hosts"
}
],
"info" : {
"GET" : {
- "name" : "index",
+ "description" : "Node index.",
"method" : "GET",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
"returns" : {
"items" : {
"properties" : {},
"type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{name}",
+ "rel" : "child"
}
- ]
- },
- "permissions" : {
- "user" : "all"
- },
- "description" : "Node index."
+ ],
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}",
+ "text" : "{node}"
}
],
"info" : {
"GET" : {
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{node}"
- }
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- }
- },
+ "description" : "Cluster node index.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
- "name" : "index",
- "method" : "GET",
"permissions" : {
"user" : "all"
},
- "description" : "Cluster node index."
+ "returns" : {
+ "items" : {
+ "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" : [
+ {
+ "href" : "{node}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes",
+ "text" : "nodes"
},
{
- "leaf" : 0,
- "text" : "storage",
- "path" : "/storage",
"children" : [
{
- "path" : "/storage/{storage}",
"info" : {
"DELETE" : {
- "protected" : 1,
"description" : "Delete storage configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
+ }
+ },
+ "GET" : {
+ "description" : "Read storage configuration.",
+ "method" : "GET",
+ "name" : "read",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "method" : "DELETE",
- "name" : "delete"
- },
- "GET" : {
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Read storage configuration.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier."
- }
- }
- },
- "returns" : {},
- "method" : "GET",
- "name" : "read"
+ "returns" : {
+ "type" : "object"
+ }
},
"PUT" : {
+ "description" : "Update storage configuration.",
"method" : "PUT",
"name" : "update",
- "returns" : {
- "type" : "null"
- },
"parameters" : {
- "type" : "object",
"additionalProperties" : 0,
"properties" : {
- "maxfiles" : {
- "type" : "integer",
- "minimum" : 0,
+ "blocksize" : {
+ "description" : "block size",
"optional" : 1,
- "description" : "Maximal number of backup files per VM. Use '0' for unlimted."
- },
- "content" : {
- "format" : "pve-storage-content-list",
"type" : "string",
- "optional" : 1,
- "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n"
+ "typetext" : "<string>"
},
- "username" : {
- "description" : "RBD Id.",
+ "bwlimit" : {
+ "description" : "Set bandwidth/io limits various operations.",
+ "format" : {
+ "clone" : {
+ "description" : "bandwidth limit in KiB/s for cloning disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "default" : {
+ "description" : "default bandwidth limit in KiB/s",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "migration" : {
+ "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "move" : {
+ "description" : "bandwidth limit in KiB/s for moving disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "restore" : {
+ "description" : "bandwidth limit in KiB/s for restoring guests from backups",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ }
+ },
"optional" : 1,
- "type" : "string"
- },
- "server" : {
- "format" : "pve-storage-server",
"type" : "string",
- "optional" : 1,
- "description" : "Server IP or DNS name."
+ "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
},
- "krbd" : {
- "description" : "Access rbd through krbd kernel module.",
+ "comstar_hg" : {
+ "description" : "host group for comstar views",
"optional" : 1,
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "options" : {
+ "comstar_tg" : {
+ "description" : "target group for comstar views",
"optional" : 1,
- "description" : "NFS mount options (see 'man nfs')",
"type" : "string",
- "format" : "pve-storage-options"
+ "typetext" : "<string>"
},
- "comstar_hg" : {
+ "content" : {
+ "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
+ "format" : "pve-storage-content-list",
+ "optional" : 1,
"type" : "string",
- "description" : "host group for comstar views",
- "optional" : 1
+ "typetext" : "<string>"
},
"delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"maxLength" : 4096,
"optional" : 1,
- "description" : "A list of settings you want to delete.",
"type" : "string",
- "format" : "pve-configid-list"
+ "typetext" : "<string>"
},
- "sparse" : {
- "description" : "use sparse volumes",
+ "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"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "format" : {
+ "disable" : {
+ "description" : "Flag to disable the storage.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "domain" : {
+ "description" : "CIFS domain.",
+ "maxLength" : 256,
"optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "format" : {
"description" : "Default image format.",
"format" : "pve-storage-format",
- "type" : "string"
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "disable" : {
+ "fuse" : {
+ "description" : "Mount CephFS through FUSE.",
+ "optional" : 1,
"type" : "boolean",
- "description" : "Flag to disable the storage.",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "saferemove_throughput" : {
+ "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",
- "description" : "Wipe throughput (cstream -t parameter value).",
- "optional" : 1
+ "typetext" : "<string>"
},
- "saferemove" : {
- "description" : "Zero-out data when removing LVs.",
+ "krbd" : {
+ "description" : "Always access rbd through krbd kernel module.",
"optional" : 1,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "digest" : {
- "maxLength" : 40,
+ "lio_tpg" : {
+ "description" : "target portal group for Linux LIO targets",
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
- },
- "nodes" : {
"type" : "string",
- "format" : "pve-node-list",
+ "typetext" : "<string>"
+ },
+ "maxfiles" : {
+ "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "List of cluster node names."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "pool" : {
- "description" : "Pool.",
+ "mkdir" : {
+ "default" : "yes",
+ "description" : "Create the directory if it doesn't exist.",
"optional" : 1,
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "comstar_tg" : {
+ "monhost" : {
+ "description" : "IP addresses of monitors (for external clusters).",
+ "format" : "pve-storage-portal-dns-list",
+ "optional" : 1,
"type" : "string",
- "description" : "target group for comstar views",
- "optional" : 1
+ "typetext" : "<string>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
"nowritecache" : {
"description" : "disable write caching on the target",
"optional" : 1,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "options" : {
+ "description" : "NFS mount options (see 'man nfs')",
+ "format" : "pve-storage-options",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "Password for CIFS share.",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pool" : {
+ "description" : "Pool.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
"redundancy" : {
- "type" : "integer",
- "maximum" : 16,
"default" : 2,
- "minimum" : 1,
"description" : "The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster.",
- "optional" : 1
+ "maximum" : 16,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 16)"
},
- "transport" : {
- "enum" : [
- "tcp",
- "rdma",
- "unix"
- ],
+ "saferemove" : {
+ "description" : "Zero-out data when removing LVs.",
"optional" : 1,
- "description" : "Gluster transport: tcp or rdma",
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "shared" : {
+ "saferemove_throughput" : {
+ "description" : "Wipe throughput (cstream -t parameter value).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server" : {
+ "description" : "Server IP or DNS name.",
+ "format" : "pve-storage-server",
"optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server2" : {
+ "description" : "Backup volfile server IP or DNS name.",
+ "format" : "pve-storage-server",
+ "optional" : 1,
+ "requires" : "server",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "shared" : {
"description" : "Mark storage as shared.",
- "type" : "boolean"
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "blocksize" : {
- "description" : "block size",
+ "smbversion" : {
+ "description" : "SMB protocol version",
+ "enum" : [
+ "2.0",
+ "2.1",
+ "3.0"
+ ],
"optional" : 1,
"type" : "string"
},
+ "sparse" : {
+ "description" : "use sparse volumes",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"storage" : {
"description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"type" : "string",
- "format" : "pve-storage-id"
+ "typetext" : "<string>"
},
- "server2" : {
- "format" : "pve-storage-server",
- "requires" : "server",
+ "subdir" : {
+ "description" : "Subdir to mount.",
+ "format" : "pve-storage-path",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "tagged_only" : {
+ "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "transport" : {
+ "description" : "Gluster transport: tcp or rdma",
+ "enum" : [
+ "tcp",
+ "rdma",
+ "unix"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "username" : {
+ "description" : "RBD Id.",
"optional" : 1,
- "description" : "Backup volfile server IP or DNS name."
+ "type" : "string",
+ "typetext" : "<string>"
}
- }
+ },
+ "type" : "object"
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Update storage configuration."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
"leaf" : 1,
+ "path" : "/storage/{storage}",
"text" : "{storage}"
}
],
"info" : {
"GET" : {
+ "description" : "Storage index.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"type" : {
- "type" : "string",
+ "description" : "Only list storage of specific type",
"enum" : [
- "rbd",
- "sheepdog",
- "lvm",
- "iscsi",
- "nfs",
- "zfs",
+ "cephfs",
+ "cifs",
+ "dir",
+ "drbd",
+ "fake",
"glusterfs",
+ "iscsi",
"iscsidirect",
+ "lvm",
"lvmthin",
- "drbd",
- "zfspool",
- "dir"
+ "nfs",
+ "rbd",
+ "sheepdog",
+ "zfs",
+ "zfspool"
],
- "description" : "Only list storage of specific type",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
}
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "storage" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
},
- "additionalProperties" : 0
- },
- "returns" : {
"links" : [
{
"href" : "{storage}",
"rel" : "child"
}
],
- "items" : {
- "type" : "object",
- "properties" : {
- "storage" : {
- "type" : "string"
- }
- }
- },
"type" : "array"
- },
- "name" : "index",
- "method" : "GET",
- "description" : "Storage index.",
- "permissions" : {
- "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
- "user" : "all"
}
},
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
"description" : "Create a new storage.",
- "protected" : 1,
- "name" : "create",
"method" : "POST",
+ "name" : "create",
"parameters" : {
- "type" : "object",
+ "additionalProperties" : 0,
"properties" : {
- "nowritecache" : {
- "description" : "disable write caching on the target",
+ "authsupported" : {
+ "description" : "Authsupported.",
"optional" : 1,
- "type" : "boolean"
- },
- "comstar_tg" : {
"type" : "string",
- "description" : "target group for comstar views",
- "optional" : 1
+ "typetext" : "<string>"
},
- "shared" : {
+ "base" : {
+ "description" : "Base volume. This volume is automatically activated.",
+ "format" : "pve-volume-id",
"optional" : 1,
- "description" : "Mark storage as shared.",
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "transport" : {
- "description" : "Gluster transport: tcp or rdma",
+ "blocksize" : {
+ "description" : "block size",
"optional" : 1,
- "enum" : [
- "tcp",
- "rdma",
- "unix"
- ],
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "redundancy" : {
- "minimum" : 1,
- "type" : "integer",
- "maximum" : 16,
- "default" : 2,
+ "bwlimit" : {
+ "description" : "Set bandwidth/io limits various operations.",
+ "format" : {
+ "clone" : {
+ "description" : "bandwidth limit in KiB/s for cloning disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "default" : {
+ "description" : "default bandwidth limit in KiB/s",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "migration" : {
+ "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "move" : {
+ "description" : "bandwidth limit in KiB/s for moving disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "restore" : {
+ "description" : "bandwidth limit in KiB/s for restoring guests from backups",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ }
+ },
"optional" : 1,
- "description" : "The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster."
+ "type" : "string",
+ "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
},
- "storage" : {
- "description" : "The storage identifier.",
+ "comstar_hg" : {
+ "description" : "host group for comstar views",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-storage-id"
+ "typetext" : "<string>"
},
- "saferemove" : {
- "description" : "Zero-out data when removing LVs.",
+ "comstar_tg" : {
+ "description" : "target group for comstar views",
"optional" : 1,
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "nodes" : {
+ "content" : {
+ "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
+ "format" : "pve-storage-content-list",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-node-list",
- "description" : "List of cluster node names.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "sparse" : {
- "description" : "use sparse volumes",
+ "disable" : {
+ "description" : "Flag to disable the storage.",
"optional" : 1,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "saferemove_throughput" : {
- "description" : "Wipe throughput (cstream -t parameter value).",
+ "domain" : {
+ "description" : "CIFS domain.",
+ "maxLength" : 256,
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "format" : {
+ "export" : {
+ "description" : "NFS export path.",
+ "format" : "pve-storage-path",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-storage-format",
+ "typetext" : "<string>"
+ },
+ "format" : {
"description" : "Default image format.",
- "optional" : 1
+ "format" : "pve-storage-format",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "content" : {
+ "fuse" : {
+ "description" : "Mount CephFS through FUSE.",
"optional" : 1,
- "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
- "format" : "pve-storage-content-list",
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "portal" : {
- "type" : "string",
- "format" : "pve-storage-portal-dns",
+ "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,
- "description" : "iSCSI portal (IP or DNS name with optional port)."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "server" : {
- "description" : "Server IP or DNS name.",
+ "iscsiprovider" : {
+ "description" : "iscsi provider",
"optional" : 1,
- "format" : "pve-storage-server",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"krbd" : {
+ "description" : "Always access rbd through krbd kernel module.",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "lio_tpg" : {
+ "description" : "target portal group for Linux LIO targets",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "maxfiles" : {
+ "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Access rbd through krbd kernel module."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "mkdir" : {
+ "default" : "yes",
+ "description" : "Create the directory if it doesn't exist.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"monhost" : {
+ "description" : "IP addresses of monitors (for external clusters).",
+ "format" : "pve-storage-portal-dns-list",
"optional" : 1,
- "description" : "Monitors daemon ips.",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "server2" : {
- "format" : "pve-storage-server",
- "requires" : "server",
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
"type" : "string",
- "description" : "Backup volfile server IP or DNS name.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "blocksize" : {
+ "nowritecache" : {
+ "description" : "disable write caching on the target",
"optional" : 1,
- "description" : "block size",
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "type" : {
- "description" : "Storage type.",
- "enum" : [
- "rbd",
- "sheepdog",
- "lvm",
- "iscsi",
- "nfs",
- "zfs",
- "glusterfs",
- "iscsidirect",
- "lvmthin",
- "drbd",
- "zfspool",
- "dir"
- ],
- "type" : "string"
+ "options" : {
+ "description" : "NFS mount options (see 'man nfs')",
+ "format" : "pve-storage-options",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vgname" : {
- "description" : "Volume group name.",
+ "password" : {
+ "description" : "Password for CIFS share.",
+ "maxLength" : 256,
"optional" : 1,
"type" : "string",
- "format" : "pve-storage-vgname"
+ "typetext" : "<string>"
},
- "iscsiprovider" : {
- "description" : "iscsi provider",
+ "path" : {
+ "description" : "File system path.",
+ "format" : "pve-storage-path",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"pool" : {
+ "description" : "Pool.",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "portal" : {
+ "description" : "iSCSI portal (IP or DNS name with optional port).",
+ "format" : "pve-storage-portal-dns",
"optional" : 1,
- "description" : "Pool."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "path" : {
- "description" : "File system path.",
+ "redundancy" : {
+ "default" : 2,
+ "description" : "The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster.",
+ "maximum" : 16,
+ "minimum" : 1,
"optional" : 1,
- "format" : "pve-storage-path",
- "type" : "string"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 16)"
},
- "export" : {
- "description" : "NFS export path.",
+ "saferemove" : {
+ "description" : "Zero-out data when removing LVs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "saferemove_throughput" : {
+ "description" : "Wipe throughput (cstream -t parameter value).",
"optional" : 1,
"type" : "string",
- "format" : "pve-storage-path"
+ "typetext" : "<string>"
},
- "disable" : {
- "description" : "Flag to disable the storage.",
+ "server" : {
+ "description" : "Server IP or DNS name.",
+ "format" : "pve-storage-server",
"optional" : 1,
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "base" : {
+ "server2" : {
+ "description" : "Backup volfile server IP or DNS name.",
+ "format" : "pve-storage-server",
+ "optional" : 1,
+ "requires" : "server",
"type" : "string",
- "format" : "pve-volume-id",
- "description" : "Base volume. This volume is automatically activated.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "volume" : {
+ "share" : {
+ "description" : "CIFS share.",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "shared" : {
+ "description" : "Mark storage as shared.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "smbversion" : {
+ "description" : "SMB protocol version",
+ "enum" : [
+ "2.0",
+ "2.1",
+ "3.0"
+ ],
"optional" : 1,
- "description" : "Glusterfs Volume."
+ "type" : "string"
},
- "target" : {
+ "sparse" : {
+ "description" : "use sparse volumes",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "subdir" : {
+ "description" : "Subdir to mount.",
+ "format" : "pve-storage-path",
"optional" : 1,
- "description" : "iSCSI target."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "maxfiles" : {
+ "tagged_only" : {
+ "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
"optional" : 1,
- "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
- "minimum" : 0,
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "authsupported" : {
- "type" : "string",
+ "target" : {
+ "description" : "iSCSI target.",
"optional" : 1,
- "description" : "Authsupported."
+ "type" : "string",
+ "typetext" : "<string>"
},
"thinpool" : {
- "type" : "string",
+ "description" : "LVM thin pool LV name.",
"format" : "pve-storage-vgname",
"optional" : 1,
- "description" : "LVM thin pool LV name."
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "transport" : {
+ "description" : "Gluster transport: tcp or rdma",
+ "enum" : [
+ "tcp",
+ "rdma",
+ "unix"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "options" : {
- "description" : "NFS mount options (see 'man nfs')",
- "optional" : 1,
- "format" : "pve-storage-options",
+ "type" : {
+ "description" : "Storage type.",
+ "enum" : [
+ "cephfs",
+ "cifs",
+ "dir",
+ "drbd",
+ "fake",
+ "glusterfs",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "rbd",
+ "sheepdog",
+ "zfs",
+ "zfspool"
+ ],
"type" : "string"
},
"username" : {
"description" : "RBD Id.",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "comstar_hg" : {
+ "vgname" : {
+ "description" : "Volume group name.",
+ "format" : "pve-storage-vgname",
+ "optional" : 1,
"type" : "string",
- "description" : "host group for comstar views",
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- }
- }
- }
- },
- {
- "text" : "access",
- "leaf" : 0,
- "info" : {
- "GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
+ "typetext" : "<string>"
+ },
+ "volume" : {
+ "description" : "Glusterfs Volume.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
}
},
- "links" : [
- {
- "rel" : "child",
- "href" : "{subdir}"
- }
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
+ "type" : "object"
},
- "method" : "GET",
- "name" : "index",
- "description" : "Directory index.",
"permissions" : {
- "user" : "all"
- }
- }
- },
- "path" : "/access",
- "children" : [
- {
- "leaf" : 0,
- "text" : "users",
- "info" : {
- "POST" : {
- "name" : "create_user",
- "method" : "POST",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "keys" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Keys for two factor auth (yubico)."
- },
- "lastname" : {
- "type" : "string",
- "optional" : 1
- },
- "firstname" : {
- "optional" : 1,
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "userid" : {
- "type" : "string",
- "format" : "pve-userid",
- "maxLength" : 64,
- "description" : "User ID"
- },
- "email" : {
- "optional" : 1,
- "type" : "string",
- "format" : "email-opt"
- },
- "password" : {
- "minLength" : 5,
- "maxLength" : 64,
- "optional" : 1,
- "description" : "Initial password.",
- "type" : "string"
- },
- "enable" : {
- "default" : 1,
- "type" : "boolean",
- "description" : "Enable the account (default). You can set this to '0' to disable the accout",
- "optional" : 1
- },
- "expire" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Account expiration date (seconds since epoch). '0' means no expiration date."
- },
- "groups" : {
- "type" : "string",
- "format" : "pve-groupid-list",
- "optional" : 1
- }
- }
- },
- "returns" : {
- "type" : "null"
- },
- "description" : "Create new user.",
- "permissions" : {
- "check" : [
- "and",
- [
- "userid-param",
- "Realm.AllocateUser"
- ],
- [
- "userid-group",
- [
- "User.Modify"
- ],
- "groups_param",
- 1
- ]
- ],
- "description" : "You need 'Realm.AllocateUser' on '/access/realm/<realm>' on the realm of user <userid>, and 'User.Modify' permissions to '/access/groups/<group>' for any group specified (or 'User.Modify' on '/access/groups' if you pass no groups."
- },
- "protected" : 1
- },
- "GET" : {
- "returns" : {
- "links" : [
- {
- "href" : "{userid}",
- "rel" : "child"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {
- "userid" : {
- "type" : "string"
- }
- }
- },
- "type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "enabled" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Optional filter for enable property."
- }
- }
- },
- "method" : "GET",
- "name" : "index",
- "description" : "User index.",
- "permissions" : {
- "user" : "all",
- "description" : "The returned list is restricted to users where you have 'User.Modify' or 'Sys.Audit' permissions on '/access/groups' or on a group the user belongs too. But it always includes the current (authenticated) user."
- }
- }
- },
- "path" : "/access/users",
- "children" : [
- {
- "text" : "{userid}",
- "leaf" : 1,
- "info" : {
- "PUT" : {
- "name" : "update_user",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "expire" : {
- "optional" : 1,
- "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
- "minimum" : 0,
- "type" : "integer"
- },
- "enable" : {
- "type" : "boolean",
- "description" : "Enable/disable the account.",
- "optional" : 1
- },
- "groups" : {
- "type" : "string",
- "format" : "pve-groupid-list",
- "optional" : 1
- },
- "append" : {
- "type" : "boolean",
- "requires" : "groups",
- "optional" : 1
- },
- "userid" : {
- "maxLength" : 64,
- "description" : "User ID",
- "format" : "pve-userid",
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "firstname" : {
- "type" : "string",
- "optional" : 1
- },
- "keys" : {
- "description" : "Keys for two factor auth (yubico).",
- "optional" : 1,
- "type" : "string"
- },
- "lastname" : {
- "optional" : 1,
- "type" : "string"
- },
- "email" : {
- "optional" : 1,
- "format" : "email-opt",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "description" : "Update user configuration.",
- "permissions" : {
- "check" : [
- "userid-group",
- [
- "User.Modify"
- ],
- "groups_param",
- 1
- ]
- }
- },
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/storage",
+ "text" : "storage"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
"DELETE" : {
+ "description" : "Delete user.",
"method" : "DELETE",
"name" : "delete_user",
- "returns" : {
- "type" : "null"
- },
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"userid" : {
+ "description" : "User ID",
"format" : "pve-userid",
- "type" : "string",
"maxLength" : 64,
- "description" : "User ID"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"and",
]
]
},
- "description" : "Delete user."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
},
"GET" : {
+ "description" : "Get user configuration.",
+ "method" : "GET",
+ "name" : "read_user",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "userid-group",
+ [
+ "User.Modify",
+ "Sys.Audit"
+ ]
+ ]
+ },
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
- "email" : {
+ "comment" : {
"optional" : 1,
"type" : "string"
},
- "comment" : {
+ "email" : {
+ "format" : "email-opt",
"optional" : 1,
"type" : "string"
},
- "firstname" : {
+ "enable" : {
+ "default" : 1,
+ "description" : "Enable the account (default). You can set this to '0' to disable the account",
"optional" : 1,
- "type" : "string"
+ "type" : "boolean"
},
- "keys" : {
- "type" : "string",
- "optional" : 1
+ "expire" : {
+ "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
- "lastname" : {
+ "firstname" : {
"optional" : 1,
"type" : "string"
},
"groups" : {
"type" : "array"
},
- "expire" : {
- "type" : "integer",
- "optional" : 1
+ "keys" : {
+ "description" : "Keys for two factor auth (yubico).",
+ "optional" : 1,
+ "type" : "string"
},
- "enable" : {
- "type" : "boolean"
+ "lastname" : {
+ "optional" : 1,
+ "type" : "string"
}
},
- "additionalProperties" : 0
- },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update user configuration.",
+ "method" : "PUT",
+ "name" : "update_user",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "append" : {
+ "optional" : 1,
+ "requires" : "groups",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "email" : {
+ "format" : "email-opt",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "default" : 1,
+ "description" : "Enable the account (default). You can set this to '0' to disable the account",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "expire" : {
+ "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "firstname" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "groups" : {
+ "format" : "pve-groupid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "keys" : {
+ "description" : "Keys for two factor auth (yubico).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "lastname" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"userid" : {
- "maxLength" : 64,
"description" : "User ID",
"format" : "pve-userid",
- "type" : "string"
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
}
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "userid-group",
+ [
+ "User.Modify"
+ ],
+ "groups_param",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/users/{userid}",
+ "text" : "{userid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "User index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "enabled" : {
+ "description" : "Optional filter for enable property.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "The returned list is restricted to users where you have 'User.Modify' or 'Sys.Audit' permissions on '/access/groups' or on a group the user belongs too. But it always includes the current (authenticated) user.",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
},
- "additionalProperties" : 0
+ "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"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{userid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new user.",
+ "method" : "POST",
+ "name" : "create_user",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "email" : {
+ "format" : "email-opt",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "default" : 1,
+ "description" : "Enable the account (default). You can set this to '0' to disable the account",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "expire" : {
+ "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "firstname" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "groups" : {
+ "format" : "pve-groupid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "keys" : {
+ "description" : "Keys for two factor auth (yubico).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "method" : "GET",
- "name" : "read_user",
- "permissions" : {
- "check" : [
- "userid-group",
- [
- "User.Modify",
- "Sys.Audit"
- ]
- ]
+ "lastname" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "description" : "Get user configuration."
- }
- },
- "path" : "/access/users/{userid}"
- }
- ]
- },
- {
- "info" : {
- "POST" : {
- "name" : "create_group",
- "method" : "POST",
- "parameters" : {
- "properties" : {
- "comment" : {
+ "password" : {
+ "description" : "Initial password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "groupid" : {
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
"type" : "string",
- "format" : "pve-groupid"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
"permissions" : {
"check" : [
- "perm",
- "/access/groups",
+ "and",
[
- "Group.Allocate"
+ "userid-param",
+ "Realm.AllocateUser"
+ ],
+ [
+ "userid-group",
+ [
+ "User.Modify"
+ ],
+ "groups_param",
+ 1
]
- ]
- },
- "description" : "Create new group.",
- "protected" : 1
- },
- "GET" : {
- "name" : "index",
- "method" : "GET",
- "parameters" : {
- "additionalProperties" : 0
+ ],
+ "description" : "You need 'Realm.AllocateUser' on '/access/realm/<realm>' on the realm of user <userid>, and 'User.Modify' permissions to '/access/groups/<group>' for any group specified (or 'User.Modify' on '/access/groups' if you pass no groups."
},
+ "protected" : 1,
"returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "groupid" : {
- "type" : "string"
- }
- }
- },
- "type" : "array",
- "links" : [
- {
- "href" : "{groupid}",
- "rel" : "child"
- }
- ]
- },
- "permissions" : {
- "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
- "user" : "all"
- },
- "description" : "Group index."
+ "type" : "null"
+ }
}
},
+ "leaf" : 0,
+ "path" : "/access/users",
+ "text" : "users"
+ },
+ {
"children" : [
{
- "text" : "{groupid}",
- "leaf" : 1,
"info" : {
"DELETE" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "Delete group.",
+ "method" : "DELETE",
+ "name" : "delete_group",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"groupid" : {
"format" : "pve-groupid",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "delete_group",
- "method" : "DELETE",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Delete group."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
},
"GET" : {
- "returns" : {
- "properties" : {
- "members" : {
- "type" : "array",
- "items" : {
- "type" : "string"
- }
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- },
- "additionalProperties" : 0,
- "type" : "object"
- },
+ "description" : "Get group configuration.",
+ "method" : "GET",
+ "name" : "read_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"groupid" : {
+ "format" : "pve-groupid",
"type" : "string",
- "format" : "pve-groupid"
+ "typetext" : "<string>"
}
}
},
- "name" : "read_group",
- "method" : "GET",
- "description" : "Get group configuration.",
"permissions" : {
"check" : [
"perm",
"any",
1
]
+ },
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "members" : {
+ "items" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
}
},
"PUT" : {
- "name" : "update_group",
+ "description" : "Update group data.",
"method" : "PUT",
- "returns" : {
- "type" : "null"
- },
+ "name" : "update_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"comment" : {
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
"groupid" : {
"format" : "pve-groupid",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
- "description" : "Update group data.",
"permissions" : {
"check" : [
"perm",
"Group.Allocate"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/access/groups/{groupid}"
+ "leaf" : 1,
+ "path" : "/access/groups/{groupid}",
+ "text" : "{groupid}"
}
],
- "path" : "/access/groups",
- "leaf" : 0,
- "text" : "groups"
- },
- {
"info" : {
+ "GET" : {
+ "description" : "Group index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "groupid" : {
+ "format" : "pve-groupid",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{groupid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
"POST" : {
- "name" : "create_role",
+ "description" : "Create new group.",
"method" : "POST",
+ "name" : "create_group",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "roleid" : {
+ "comment" : {
+ "optional" : 1,
"type" : "string",
- "format" : "pve-roleid"
+ "typetext" : "<string>"
},
- "privs" : {
+ "groupid" : {
+ "format" : "pve-groupid",
"type" : "string",
- "format" : "pve-priv-list",
- "optional" : 1
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
"permissions" : {
"check" : [
"perm",
- "/access",
+ "/access/groups",
[
- "Sys.Modify"
+ "Group.Allocate"
]
]
},
- "description" : "Create new role.",
- "protected" : 1
- },
- "GET" : {
- "method" : "GET",
- "name" : "index",
+ "protected" : 1,
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{roleid}"
- }
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "roleid" : {
- "type" : "string"
- }
- }
- }
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "user" : "all"
- },
- "description" : "Role index."
+ "type" : "null"
+ }
}
},
+ "leaf" : 0,
+ "path" : "/access/groups",
+ "text" : "groups"
+ },
+ {
"children" : [
{
- "leaf" : 1,
- "text" : "{roleid}",
- "path" : "/access/roles/{roleid}",
"info" : {
- "PUT" : {
+ "DELETE" : {
+ "description" : "Delete role.",
+ "method" : "DELETE",
+ "name" : "delete_role",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Create new role.",
"protected" : 1,
- "name" : "update_role",
- "method" : "PUT",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Get role configuration.",
+ "method" : "GET",
+ "name" : "read_role",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "privs" : {
- "format" : "pve-priv-list",
- "type" : "string"
- },
- "append" : {
- "type" : "boolean",
- "requires" : "privs",
- "optional" : 1
- },
"roleid" : {
"format" : "pve-roleid",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "null"
+ "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"
}
},
- "GET" : {
- "returns" : {},
+ "PUT" : {
+ "description" : "Update an existing role.",
+ "method" : "PUT",
+ "name" : "update_role",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "append" : {
+ "optional" : 1,
+ "requires" : "privs",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "privs" : {
+ "format" : "pve-priv-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"roleid" : {
"format" : "pve-roleid",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "GET",
- "name" : "read_role",
- "description" : "Get role configuration.",
- "permissions" : {
- "user" : "all"
- }
- },
- "DELETE" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Delete role.",
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "roleid" : {
- "type" : "string",
- "format" : "pve-roleid"
- }
- }
- },
- "method" : "DELETE",
- "name" : "delete_role"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/access/roles/{roleid}",
+ "text" : "{roleid}"
}
],
- "path" : "/access/roles",
- "text" : "roles",
- "leaf" : 0
- },
- {
"info" : {
- "PUT" : {
- "permissions" : {
- "check" : [
- "perm-modify",
- "{path}"
- ]
- },
- "description" : "Update Access Control List (add or remove permissions).",
- "protected" : 1,
- "method" : "PUT",
- "name" : "update_acl",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "propagate" : {
- "type" : "boolean",
- "default" : 1,
- "optional" : 1,
- "description" : "Allow to propagate (inherit) permissions."
- },
- "roles" : {
- "type" : "string",
- "format" : "pve-roleid-list",
- "description" : "List of roles."
- },
- "users" : {
- "format" : "pve-userid-list",
- "type" : "string",
- "description" : "List of users.",
- "optional" : 1
- },
- "groups" : {
- "optional" : 1,
- "description" : "List of groups.",
- "format" : "pve-groupid-list",
- "type" : "string"
- },
- "delete" : {
- "type" : "boolean",
- "description" : "Remove permissions (instead of adding it).",
- "optional" : 1
- },
- "path" : {
- "type" : "string",
- "description" : "Access control path"
- }
- }
- },
- "returns" : {
- "type" : "null"
- }
- },
"GET" : {
+ "description" : "Role index.",
"method" : "GET",
- "name" : "read_acl",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
- "propagate" : {
- "type" : "boolean"
- },
- "ugid" : {
- "type" : "string"
- },
- "path" : {
+ "privs" : {
+ "format" : "pve-priv-list",
+ "optional" : 1,
"type" : "string"
},
- "type" : {
- "type" : "string",
- "enum" : [
- "user",
- "group"
- ]
- },
"roleid" : {
+ "format" : "pve-roleid",
"type" : "string"
+ },
+ "special" : {
+ "default" : 0,
+ "optional" : 1,
+ "type" : "boolean"
}
},
- "additionalProperties" : 0,
"type" : "object"
- }
- },
+ },
+ "links" : [
+ {
+ "href" : "{roleid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new role.",
+ "method" : "POST",
+ "name" : "create_role",
"parameters" : {
- "additionalProperties" : 0
+ "additionalProperties" : 0,
+ "properties" : {
+ "privs" : {
+ "format" : "pve-priv-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "description" : "Get Access Control List (ACLs).",
"permissions" : {
- "user" : "all",
- "description" : "The returned list is restricted to objects where you have rights to modify permissions."
+ "check" : [
+ "perm",
+ "/access",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/access/acl",
- "text" : "acl",
- "leaf" : 1
+ "leaf" : 0,
+ "path" : "/access/roles",
+ "text" : "roles"
},
{
"info" : {
"GET" : {
- "permissions" : {
- "user" : "world",
- "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated)."
- },
- "description" : "Authentication domain index.",
+ "description" : "Get Access Control List (ACLs).",
"method" : "GET",
- "name" : "index",
+ "name" : "read_acl",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
+ "user" : "all"
+ },
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{realm}"
- }
- ],
- "type" : "array",
"items" : {
+ "additionalProperties" : 0,
"properties" : {
- "realm" : {
+ "path" : {
+ "description" : "Access control path",
"type" : "string"
},
- "tfa" : {
+ "propagate" : {
+ "default" : 1,
+ "description" : "Allow to propagate (inherit) permissions.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "roleid" : {
+ "type" : "string"
+ },
+ "type" : {
"enum" : [
- "yubico",
- "oath"
+ "user",
+ "group"
],
- "description" : "Two-factor authentication provider.",
- "optional" : 1,
"type" : "string"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "ugid" : {
+ "type" : "string"
}
},
"type" : "object"
- }
+ },
+ "type" : "array"
}
},
- "POST" : {
- "description" : "Add an authentication server.",
- "permissions" : {
- "check" : [
- "perm",
- "/access/realm",
- [
- "Realm.Allocate"
- ]
- ]
- },
- "protected" : 1,
+ "PUT" : {
+ "description" : "Update Access Control List (add or remove permissions).",
+ "method" : "PUT",
+ "name" : "update_acl",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "server1" : {
- "format" : "address",
- "type" : "string",
- "description" : "Server IP address (or DNS name)",
+ "delete" : {
+ "description" : "Remove permissions (instead of adding it).",
"optional" : 1,
- "maxLength" : 256
- },
- "default" : {
"type" : "boolean",
- "optional" : 1,
- "description" : "Use this as default realm"
+ "typetext" : "<boolean>"
},
- "realm" : {
+ "groups" : {
+ "description" : "List of groups.",
+ "format" : "pve-groupid-list",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-realm",
- "description" : "Authentication domain ID",
- "maxLength" : 32
+ "typetext" : "<string>"
},
- "base_dn" : {
+ "path" : {
+ "description" : "Access control path",
"type" : "string",
- "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
- "maxLength" : 256,
- "description" : "LDAP base domain name",
- "optional" : 1
+ "typetext" : "<string>"
},
- "tfa" : {
- "format" : "pve-tfa-config",
- "type" : "string",
- "maxLength" : 128,
+ "propagate" : {
+ "default" : 1,
+ "description" : "Allow to propagate (inherit) permissions.",
"optional" : 1,
- "description" : "Use Two-factor authentication."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "server2" : {
- "format" : "address",
+ "roles" : {
+ "description" : "List of roles.",
+ "format" : "pve-roleid-list",
"type" : "string",
- "description" : "Fallback Server IP address (or DNS name)",
- "maxLength" : 256,
- "optional" : 1
+ "typetext" : "<string>"
},
- "domain" : {
- "pattern" : "\\S+",
+ "users" : {
+ "description" : "List of users.",
+ "format" : "pve-userid-list",
"optional" : 1,
- "description" : "AD domain name",
- "maxLength" : 256,
- "type" : "string"
- },
- "type" : {
- "type" : "string",
- "description" : "Realm type.",
- "enum" : [
- "ldap",
- "pve",
- "ad",
- "pam"
- ]
- },
- "user_attr" : {
- "type" : "string",
- "pattern" : "\\S{2,}",
- "description" : "LDAP user attribute name",
- "maxLength" : 256,
- "optional" : 1
- },
- "port" : {
- "minimum" : 1,
- "type" : "integer",
- "maximum" : 65535,
- "description" : "Server port.",
- "optional" : 1
- },
- "comment" : {
"type" : "string",
- "description" : "Description.",
- "maxLength" : 4096,
- "optional" : 1
- },
- "secure" : {
- "optional" : 1,
- "description" : "Use secure LDAPS protocol.",
- "type" : "boolean"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0,
- "type" : "object"
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm-modify",
+ "{path}"
+ ]
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "name" : "create",
- "method" : "POST"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/access/acl",
+ "text" : "acl"
+ },
+ {
"children" : [
{
- "path" : "/access/domains/{realm}",
"info" : {
- "PUT" : {
+ "DELETE" : {
+ "description" : "Delete an authentication server.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Update authentication server settings.",
"protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Get auth server configuration.",
+ "method" : "GET",
+ "name" : "read",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "comment" : {
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access/realm",
+ [
+ "Realm.Allocate",
+ "Sys.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "returns" : {}
+ },
+ "PUT" : {
+ "description" : "Update authentication server settings.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "base_dn" : {
+ "description" : "LDAP base domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "bind_dn" : {
+ "description" : "LDAP bind domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "capath" : {
+ "default" : "/etc/ssl/certs",
+ "description" : "Path to the CA certificate store",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "cert" : {
+ "description" : "Path to the client certificate",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "certkey" : {
+ "description" : "Path to the client certificate key",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
"description" : "Description.",
"maxLength" : 4096,
- "optional" : 1
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "secure" : {
- "type" : "boolean",
+ "default" : {
+ "description" : "Use this as default realm",
"optional" : 1,
- "description" : "Use secure LDAPS protocol."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "user_attr" : {
- "type" : "string",
- "pattern" : "\\S{2,}",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
"optional" : 1,
- "description" : "LDAP user attribute name",
- "maxLength" : 256
+ "type" : "string",
+ "typetext" : "<string>"
},
- "port" : {
- "description" : "Server port.",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
- "minimum" : 1,
- "maximum" : 65535,
- "type" : "integer"
+ "type" : "string",
+ "typetext" : "<string>"
},
"domain" : {
- "type" : "string",
- "pattern" : "\\S+",
- "optional" : 1,
"description" : "AD domain name",
- "maxLength" : 256
- },
- "server2" : {
- "type" : "string",
- "format" : "address",
- "optional" : 1,
"maxLength" : 256,
- "description" : "Fallback Server IP address (or DNS name)"
+ "optional" : 1,
+ "pattern" : "\\S+",
+ "type" : "string"
},
- "digest" : {
- "type" : "string",
+ "port" : {
+ "description" : "Server port.",
+ "maximum" : 65535,
+ "minimum" : 1,
"optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
},
"realm" : {
- "maxLength" : 32,
"description" : "Authentication domain ID",
"format" : "pve-realm",
- "type" : "string"
+ "maxLength" : 32,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "default" : {
+ "secure" : {
+ "description" : "Use secure LDAPS protocol.",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "server1" : {
+ "description" : "Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server2" : {
+ "description" : "Fallback Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
"optional" : 1,
- "description" : "Use this as default realm"
+ "type" : "string",
+ "typetext" : "<string>"
},
"tfa" : {
"description" : "Use Two-factor authentication.",
+ "format" : "pve-tfa-config",
"maxLength" : 128,
"optional" : 1,
"type" : "string",
- "format" : "pve-tfa-config"
- },
- "base_dn" : {
- "type" : "string",
- "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
- "optional" : 1,
- "description" : "LDAP base domain name",
- "maxLength" : 256
+ "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
},
- "delete" : {
- "maxLength" : 4096,
+ "user_attr" : {
+ "description" : "LDAP user attribute name",
+ "maxLength" : 256,
"optional" : 1,
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
+ "pattern" : "\\S{2,}",
"type" : "string"
},
- "server1" : {
- "format" : "address",
- "type" : "string",
- "description" : "Server IP address (or DNS name)",
- "maxLength" : 256,
- "optional" : 1
+ "verify" : {
+ "default" : 0,
+ "description" : "Verify the server's SSL certificate",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
},
"type" : "object"
},
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT",
- "name" : "update"
- },
- "GET" : {
- "description" : "Get auth server configuration.",
"permissions" : {
"check" : [
"perm",
"/access/realm",
[
- "Realm.Allocate",
- "Sys.Audit"
- ],
- "any",
- 1
+ "Realm.Allocate"
+ ]
]
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "realm" : {
- "description" : "Authentication domain ID",
- "maxLength" : 32,
- "type" : "string",
- "format" : "pve-realm"
- }
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/domains/{realm}",
+ "text" : "{realm}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Authentication domain index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
+ "user" : "world"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "realm" : {
+ "type" : "string"
+ },
+ "tfa" : {
+ "description" : "Two-factor authentication provider.",
+ "enum" : [
+ "yubico",
+ "oath"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
},
- "returns" : {},
- "name" : "read",
- "method" : "GET"
+ "type" : "object"
},
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "realm" : {
- "maxLength" : 32,
- "description" : "Authentication domain ID",
- "type" : "string",
- "format" : "pve-realm"
- }
- }
+ "links" : [
+ {
+ "href" : "{realm}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Add an authentication server.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "base_dn" : {
+ "description" : "LDAP base domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
},
- "returns" : {
- "type" : "null"
+ "bind_dn" : {
+ "description" : "LDAP bind domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "capath" : {
+ "default" : "/etc/ssl/certs",
+ "description" : "Path to the CA certificate store",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "cert" : {
+ "description" : "Path to the client certificate",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "certkey" : {
+ "description" : "Path to the client certificate key",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "default" : {
+ "description" : "Use this as default realm",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "domain" : {
+ "description" : "AD domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\S+",
+ "type" : "string"
+ },
+ "port" : {
+ "description" : "Server port.",
+ "maximum" : 65535,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
+ },
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "secure" : {
+ "description" : "Use secure LDAPS protocol.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "server1" : {
+ "description" : "Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server2" : {
+ "description" : "Fallback Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tfa" : {
+ "description" : "Use Two-factor authentication.",
+ "format" : "pve-tfa-config",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
+ },
+ "type" : {
+ "description" : "Realm type.",
+ "enum" : [
+ "ad",
+ "ldap",
+ "pam",
+ "pve"
+ ],
+ "type" : "string"
},
- "method" : "DELETE",
- "name" : "delete",
- "description" : "Delete an authentication server.",
- "permissions" : {
- "check" : [
- "perm",
- "/access/realm",
- [
- "Realm.Allocate"
- ]
- ]
+ "user_attr" : {
+ "description" : "LDAP user attribute name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\S{2,}",
+ "type" : "string"
},
- "protected" : 1
- }
+ "verify" : {
+ "default" : 0,
+ "description" : "Verify the server's SSL certificate",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ },
+ "type" : "object"
},
- "leaf" : 1,
- "text" : "{realm}"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access/realm",
+ [
+ "Realm.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
- ],
- "path" : "/access/domains",
+ },
"leaf" : 0,
+ "path" : "/access/domains",
"text" : "domains"
},
{
- "path" : "/access/ticket",
"info" : {
+ "GET" : {
+ "description" : "Dummy. Useful for formatters which want to provide a login page.",
+ "method" : "GET",
+ "name" : "get_ticket",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "world"
+ },
+ "returns" : {
+ "type" : "null"
+ }
+ },
"POST" : {
+ "description" : "Create or verify authentication ticket.",
"method" : "POST",
"name" : "create_ticket",
- "returns" : {
- "properties" : {
- "CSRFPreventionToken" : {
- "optional" : 1,
- "type" : "string"
- },
- "ticket" : {
- "type" : "string",
- "optional" : 1
- },
- "username" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"otp" : {
"description" : "One-time password for Two-factor authentication.",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "The secret password. This can also be a valid ticket.",
+ "type" : "string",
+ "typetext" : "<string>"
},
"path" : {
+ "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
+ "maxLength" : 64,
+ "optional" : 1,
"requires" : "privs",
"type" : "string",
- "optional" : 1,
- "maxLength" : 64,
- "description" : "Verify ticket, and check if user have access 'privs' on 'path'"
+ "typetext" : "<string>"
},
- "password" : {
- "description" : "The secret password. This can also be a valid ticket.",
- "type" : "string"
+ "privs" : {
+ "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
+ "format" : "pve-priv-list",
+ "maxLength" : 64,
+ "optional" : 1,
+ "requires" : "path",
+ "type" : "string",
+ "typetext" : "<string>"
},
"realm" : {
- "optional" : 1,
- "maxLength" : 32,
"description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "optional" : 1,
"type" : "string",
- "format" : "pve-realm"
+ "typetext" : "<string>"
},
"username" : {
"description" : "User name",
"maxLength" : 64,
- "type" : "string"
- },
- "privs" : {
- "format" : "pve-priv-list",
"type" : "string",
- "requires" : "path",
- "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
- "optional" : 1,
- "maxLength" : 64
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
- "description" : "Create or verify authentication ticket.",
- "permissions" : {
- "user" : "world",
- "description" : "You need to pass valid credientials."
- }
- },
- "GET" : {
- "description" : "Dummy. Useful for formaters which want to priovde a login page.",
"permissions" : {
+ "description" : "You need to pass valid credientials.",
"user" : "world"
},
- "method" : "GET",
- "name" : "get_ticket",
- "parameters" : {
- "additionalProperties" : 0
- },
+ "protected" : 1,
"returns" : {
- "type" : "null"
+ "properties" : {
+ "CSRFPreventionToken" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "clustername" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ticket" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "username" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
}
}
},
- "text" : "ticket",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/access/ticket",
+ "text" : "ticket"
},
{
- "text" : "password",
- "leaf" : 1,
- "path" : "/access/password",
"info" : {
"PUT" : {
- "protected" : 1,
+ "description" : "Change user password.",
+ "method" : "PUT",
+ "name" : "change_password",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "password" : {
+ "description" : "The new password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
- "description" : "Each user is allowed to change his own password. A user can change the password of another user if he has 'Realm.AllocateUser' (on the realm of user <userid>) and 'User.Modify' permission on /access/groups/<group> on a group where user <userid> is member of.",
"check" : [
"or",
[
]
]
]
- ]
+ ],
+ "description" : "Each user is allowed to change his own password. A user can change the password of another user if he has 'Realm.AllocateUser' (on the realm of user <userid>) and 'User.Modify' permission on /access/groups/<group> on a group where user <userid> is member of."
},
- "description" : "Change user password.",
+ "protected" : 1,
"returns" : {
"type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/password",
+ "text" : "password"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Finish a u2f challenge.",
+ "method" : "POST",
+ "name" : "verify_tfa",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "response" : {
+ "description" : "The response to the current authentication challenge.",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "ticket" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Change user u2f authentication.",
+ "method" : "PUT",
+ "name" : "change_tfa",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "password" : {
+ "action" : {
+ "description" : "The action to perform",
+ "enum" : [
+ "delete",
+ "new",
+ "confirm"
+ ],
+ "type" : "string"
+ },
+ "config" : {
+ "description" : "A TFA configuration. This must currently be of type TOTP of not set at all.",
+ "format" : "pve-tfa-config",
+ "maxLength" : 128,
+ "optional" : 1,
"type" : "string",
+ "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
+ },
+ "key" : {
+ "description" : "When adding TOTP, the shared secret value.",
+ "optional" : 1,
+ "pattern" : "(?^:[A-Z2-7=]{16}|[A-Fa-f0-9]{40})",
+ "type" : "string"
+ },
+ "password" : {
+ "description" : "The current password.",
"maxLength" : 64,
- "description" : "The new password.",
- "minLength" : 5
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "response" : {
+ "description" : "Either the the response to the current u2f registration challenge, or, when adding TOTP, the currently valid TOTP value.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
"userid" : {
"description" : "User ID",
- "maxLength" : 64,
"format" : "pve-userid",
- "type" : "string"
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "userid-param",
+ "self"
+ ],
+ [
+ "and",
+ [
+ "userid-param",
+ "Realm.AllocateUser"
+ ],
+ [
+ "userid-group",
+ [
+ "User.Modify"
+ ]
+ ]
+ ]
+ ],
+ "description" : "A user can change their own u2f or totp token."
},
- "name" : "change_passsword",
- "method" : "PUT"
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
}
+ },
+ "leaf" : 1,
+ "path" : "/access/tfa",
+ "text" : "tfa"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
- ]
+ },
+ "leaf" : 0,
+ "path" : "/access",
+ "text" : "access"
},
{
"children" : [
{
- "path" : "/pools/{poolid}",
"info" : {
+ "DELETE" : {
+ "description" : "Delete pool.",
+ "method" : "DELETE",
+ "name" : "delete_pool",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "poolid" : {
+ "format" : "pve-poolid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/pool/{poolid}",
+ [
+ "Pool.Allocate"
+ ]
+ ],
+ "description" : "You can only delete empty pools (no members)."
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
"GET" : {
- "name" : "read_pool",
+ "description" : "Get pool configuration.",
"method" : "GET",
+ "name" : "read_pool",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"poolid" : {
+ "format" : "pve-poolid",
"type" : "string",
- "format" : "pve-poolid"
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/pool/{poolid}",
+ [
+ "Pool.Allocate"
+ ]
+ ]
+ },
"returns" : {
- "type" : "object",
+ "additionalProperties" : 0,
"properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
"members" : {
"items" : {
- "type" : "object",
"additionalProperties" : 1,
"properties" : {
+ "id" : {
+ "type" : "string"
+ },
+ "node" : {
+ "type" : "string"
+ },
"storage" : {
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
"type" : {
"enum" : [
"type" : "string"
},
"vmid" : {
- "type" : "integer",
- "optional" : 1
- },
- "node" : {
- "type" : "string"
- },
- "id" : {
- "type" : "string"
+ "optional" : 1,
+ "type" : "integer"
}
- }
+ },
+ "type" : "object"
},
"type" : "array"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/pool/{poolid}",
- [
- "Pool.Allocate"
- ]
- ]
- },
- "description" : "Get pool configuration."
- },
- "DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/pool/{poolid}",
- [
- "Pool.Allocate"
- ]
- ],
- "description" : "You can only delete empty pools (no members)."
- },
- "description" : "Delete pool.",
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "poolid" : {
- "format" : "pve-poolid",
- "type" : "string"
}
},
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- },
- "name" : "delete_pool",
- "method" : "DELETE"
+ "type" : "object"
+ }
},
"PUT" : {
- "permissions" : {
- "description" : "You also need the right to modify permissions on any object you add/delete.",
- "check" : [
- "perm",
- "/pool/{poolid}",
- [
- "Pool.Allocate"
- ]
- ]
- },
"description" : "Update pool data.",
- "protected" : 1,
+ "method" : "PUT",
+ "name" : "update_pool",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "storage" : {
- "format" : "pve-storage-id-list",
+ "comment" : {
+ "optional" : 1,
"type" : "string",
- "description" : "List of storage IDs.",
- "optional" : 1
+ "typetext" : "<string>"
},
"delete" : {
+ "description" : "Remove vms/storage (instead of adding it).",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "poolid" : {
+ "format" : "pve-poolid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "List of storage IDs.",
+ "format" : "pve-storage-id-list",
"optional" : 1,
- "description" : "Remove vms/storage (instead of adding it)."
+ "type" : "string",
+ "typetext" : "<string>"
},
"vms" : {
"description" : "List of virtual machines.",
- "optional" : 1,
"format" : "pve-vmid-list",
- "type" : "string"
- },
- "comment" : {
"optional" : 1,
- "type" : "string"
- },
- "poolid" : {
- "format" : "pve-poolid",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/pool/{poolid}",
+ [
+ "Pool.Allocate"
+ ]
+ ],
+ "description" : "You also need the right to modify permissions on any object you add/delete."
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "name" : "update_pool",
- "method" : "PUT"
+ }
}
},
- "text" : "{poolid}",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/pools/{poolid}",
+ "text" : "{poolid}"
}
],
- "path" : "/pools",
"info" : {
"GET" : {
"description" : "Pool index.",
- "permissions" : {
- "user" : "all",
- "description" : "List all pools where you have Pool.Allocate or VM.Allocate permissions on /pool/<pool>."
- },
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "description" : "List all pools where you have Pool.Allocate or VM.Allocate permissions on /pool/<pool>.",
+ "user" : "all"
+ },
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"poolid" : {
"href" : "{poolid}",
"rel" : "child"
}
- ]
- },
- "name" : "index",
- "method" : "GET"
+ ],
+ "type" : "array"
+ }
},
"POST" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "Create new pool.",
+ "method" : "POST",
+ "name" : "create_pool",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "poolid" : {
+ "comment" : {
+ "optional" : 1,
"type" : "string",
- "format" : "pve-poolid"
+ "typetext" : "<string>"
},
- "comment" : {
+ "poolid" : {
+ "format" : "pve-poolid",
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
}
}
},
- "name" : "create_pool",
- "method" : "POST",
- "protected" : 1,
- "description" : "Create new pool.",
"permissions" : {
"check" : [
"perm",
"Pool.Allocate"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "text" : "pools",
- "leaf" : 0
+ "leaf" : 0,
+ "path" : "/pools",
+ "text" : "pools"
},
{
- "path" : "/version",
"info" : {
"GET" : {
+ "description" : "API version details. The result also includes the global datacenter confguration.",
+ "method" : "GET",
+ "name" : "version",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "object",
"properties" : {
"release" : {
"type" : "string"
},
- "version" : {
+ "repoid" : {
"type" : "string"
},
- "repoid" : {
+ "version" : {
"type" : "string"
}
- }
- },
- "method" : "GET",
- "name" : "version",
- "permissions" : {
- "user" : "all"
- },
- "description" : "API version details. The result also includes the global datacenter confguration."
+ },
+ "type" : "object"
+ }
}
},
"leaf" : 1,
+ "path" : "/version",
"text" : "version"
}
]