var pveapi = [
{
- "leaf" : 0,
- "path" : "/cluster",
- "info" : {
- "GET" : {
- "method" : "GET",
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
- },
- "permissions" : {
- "user" : "all"
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "index",
- "description" : "Cluster index."
- }
- },
"children" : [
{
- "info" : {
- "GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ]
- },
- "description" : "Directory index.",
- "permissions" : {
- "user" : "all"
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "index"
- }
- },
- "text" : "firewall",
"children" : [
{
"info" : {
"GET" : {
+ "description" : "Corosync node list.",
"method" : "GET",
+ "name" : "nodes",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"returns" : {
- "type" : "array",
- "links" : [
- {
- "href" : "{group}",
- "rel" : "child"
- }
- ],
"items" : {
"properties" : {
- "group" : {
- "maxLength" : 20,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Security Group name.",
+ "node" : {
"type" : "string"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0,
- "type" : "string",
- "maxLength" : 40
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
}
},
"type" : "object"
- }
- },
- "description" : "List security groups.",
- "permissions" : {
- "user" : "all"
- },
+ },
+ "links" : [
+ {
+ "href" : "{node}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/nodes",
+ "text" : "nodes"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get corosync totem protocol settings.",
+ "method" : "GET",
+ "name" : "totem",
"parameters" : {
"additionalProperties" : 0
},
- "name" : "list_security_groups"
- },
- "POST" : {
"returns" : {
- "type" : "null"
- },
- "method" : "POST",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "group" : {
- "maxLength" : 20,
- "description" : "Security Group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "digest" : {
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "rename" : {
- "maxLength" : 20,
- "optional" : 1,
- "type" : "string",
- "minLength" : 2,
- "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.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "name" : "create_security_group",
- "description" : "Create new security group.",
- "protected" : 1
+ "properties" : {},
+ "type" : "object"
+ }
}
},
- "text" : "groups",
+ "leaf" : 1,
+ "path" : "/cluster/config/totem",
+ "text" : "totem"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/config",
+ "text" : "config"
+ },
+ {
+ "children" : [
+ {
"children" : [
{
- "leaf" : 0,
- "path" : "/cluster/firewall/groups/{group}",
- "info" : {
- "GET" : {
- "proxyto" : null,
- "description" : "List rules.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "group" : {
- "minLength" : 2,
- "description" : "Security Group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string",
- "maxLength" : 20
+ "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)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
}
},
- "additionalProperties" : 0
- },
- "name" : "get_rules",
- "method" : "GET",
- "returns" : {
- "items" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
+ "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)"
+ }
}
},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{pos}",
- "rel" : "child"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
+ "returns" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
}
- ],
- "type" : "array"
- }
- },
+ },
+ "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)"
+ },
+ "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>"
+ },
+ "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"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/groups/{group}/{pos}",
+ "text" : "{pos}"
+ }
+ ],
+ "info" : {
"DELETE" : {
+ "description" : "Delete security group.",
+ "method" : "DELETE",
"name" : "delete_security_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"group" : {
- "maxLength" : 20,
- "minLength" : 2,
"description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
]
},
"protected" : 1,
- "description" : "Delete security group.",
"returns" : {
"type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
},
- "method" : "DELETE"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.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" : {
- "iface" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
"maxLength" : 20,
- "format" : "pve-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.",
"minLength" : 2,
- "optional" : 1,
+ "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",
- "optional" : 1
+ "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>"
},
- "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.",
+ "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-addr-spec"
+ "typetext" : "<string>"
},
- "sport" : {
- "format" : "pve-fw-sport-spec",
- "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.",
+ "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"
},
- "dest" : {
+ "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" : "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"
+ "typetext" : "<string>"
},
- "action" : {
- "maxLength" : 20,
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
"type" : "string",
- "optional" : 0,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "minLength" : 2
+ "typetext" : "<string>"
},
- "enable" : {
- "minimum" : 0,
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
"type" : "integer",
- "optional" : 1
+ "typetext" : "<integer> (0 - N)"
},
- "dport" : {
- "format" : "pve-fw-dport-spec",
- "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.",
+ "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",
- "optional" : 1
+ "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",
],
"optional" : 0,
"type" : "string"
- },
- "macro" : {
- "type" : "string",
- "optional" : 1,
- "maxLength" : 128
- },
- "group" : {
- "type" : "string",
- "description" : "Security Group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 20
- },
- "proto" : {
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/firewall/groups/{group}",
+ "text" : "{group}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List security groups.",
+ "method" : "GET",
+ "name" : "list_security_groups",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "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"
+ },
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{group}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new security group.",
+ "method" : "POST",
+ "name" : "create_security_group",
+ "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>"
+ },
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "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,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/firewall/groups",
+ "text" : "groups"
+ },
+ {
+ "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",
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "format" : "pve-fw-protocol-spec"
+ "typetext" : "<string>"
},
"pos" : {
- "minimum" : 0,
"description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
"type" : "integer",
- "optional" : 1
+ "typetext" : "<integer> (0 - N)"
}
}
},
- "name" : "create_rule",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
"protected" : 1,
+ "proxyto" : null,
"returns" : {
"type" : "null"
+ }
+ },
+ "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)"
+ }
+ }
},
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "description" : "Create new rule.",
- "proxyto" : null
- }
- },
- "children" : [
- {
- "text" : "{pos}",
- "info" : {
- "PUT" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "sport" : {
- "format" : "pve-fw-sport-spec",
- "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",
- "optional" : 1
- },
- "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.",
- "type" : "string",
- "optional" : 1,
- "maxLength" : 20,
- "format" : "pve-iface"
- },
- "macro" : {
- "maxLength" : 128,
- "optional" : 1,
- "type" : "string"
- },
- "proto" : {
- "format" : "pve-fw-protocol-spec",
- "type" : "string",
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "type" : "integer",
- "optional" : 1,
- "minimum" : 0
- },
- "action" : {
- "optional" : 1,
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20
- },
- "enable" : {
- "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,
- "type" : "string",
- "maxLength" : 40
- },
- "source" : {
- "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.",
- "format" : "pve-fw-addr-spec"
- },
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "optional" : 1,
- "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."
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-configid-list"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "moveto" : {
- "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
- "type" : "integer",
- "optional" : 1,
- "minimum" : 0
- },
- "group" : {
- "maxLength" : 20,
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Security Group name.",
- "minLength" : 2
- },
- "dport" : {
- "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.",
- "format" : "pve-fw-dport-spec"
- },
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 1,
- "type" : "string"
- }
- }
- },
- "name" : "update_rule",
- "protected" : 1,
- "method" : "PUT",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "description" : "Modify rule data.",
- "proxyto" : null,
- "returns" : {
- "type" : "null"
+ "proxyto" : null,
+ "returns" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
}
},
- "DELETE" : {
- "returns" : {
- "type" : "null"
+ "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"
},
- "description" : "Delete rule.",
- "proxyto" : null,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "method" : "DELETE",
- "protected" : 1,
- "name" : "delete_rule",
- "parameters" : {
- "properties" : {
- "pos" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Update rule at position <pos>.",
- "minimum" : 0
- },
- "group" : {
- "maxLength" : 20,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Security Group name.",
- "minLength" : 2,
- "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
- }
- },
- "additionalProperties" : 0
- }
- },
- "GET" : {
- "name" : "get_rule",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "parameters" : {
- "properties" : {
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "type" : "integer",
- "optional" : 1,
- "minimum" : 0
- },
- "group" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Security Group name.",
- "minLength" : 2,
- "type" : "string",
- "maxLength" : 20
- }
- },
- "additionalProperties" : 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,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxyto" : null,
- "description" : "Get single rule data.",
- "returns" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
+ "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>"
+ },
+ "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>"
},
- "method" : "GET"
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
}
},
- "path" : "/cluster/firewall/groups/{group}/{pos}",
- "leaf" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
}
- ],
- "text" : "{group}"
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/rules/{pos}",
+ "text" : "{pos}"
}
],
- "leaf" : 0,
- "path" : "/cluster/firewall/groups"
- },
- {
"info" : {
"GET" : {
+ "description" : "List rules.",
"method" : "GET",
- "returns" : {
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{pos}"
- }
- ],
- "items" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- }
- },
"name" : "get_rules",
"parameters" : {
"additionalProperties" : 0
]
]
},
- "description" : "List rules.",
- "proxyto" : null
+ "proxyto" : null,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
},
"POST" : {
+ "description" : "Create new rule.",
"method" : "POST",
- "protected" : 1,
"name" : "create_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "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.",
+ "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",
- "format" : "pve-fw-dport-spec"
+ "typetext" : "<string>"
},
- "type" : {
+ "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",
- "optional" : 0,
- "enum" : [
- "in",
- "out",
- "group"
- ]
+ "typetext" : "<string>"
},
- "enable" : {
- "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,
- "minimum" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
- "action" : {
+ "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",
- "optional" : 0,
+ "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,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 20
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
"macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
"optional" : 1,
"type" : "string",
- "maxLength" : 128
+ "typetext" : "<string>"
},
"pos" : {
"description" : "Update rule at position <pos>.",
- "type" : "integer",
+ "minimum" : 0,
"optional" : 1,
- "minimum" : 0
+ "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'.",
- "type" : "string",
+ "format" : "pve-fw-protocol-spec",
"optional" : 1,
- "format" : "pve-fw-protocol-spec"
- },
- "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.",
- "minLength" : 2,
- "type" : "string",
- "optional" : 1,
- "maxLength" : 20,
- "format" : "pve-iface"
- },
- "comment" : {
"type" : "string",
- "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.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-addr-spec"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string",
- "optional" : 1,
- "maxLength" : 40
- },
- "dest" : {
"format" : "pve-fw-addr-spec",
- "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"
+ "type" : "string",
+ "typetext" : "<string>"
},
"sport" : {
- "format" : "pve-fw-sport-spec",
"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"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
- "proxyto" : null,
- "description" : "Create new rule.",
"permissions" : {
"check" : [
"perm",
"Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
}
}
},
+ "leaf" : 0,
+ "path" : "/cluster/firewall/rules",
+ "text" : "rules"
+ },
+ {
"children" : [
{
- "text" : "{pos}",
- "info" : {
- "GET" : {
- "method" : "GET",
- "returns" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- }
- }
- },
- "name" : "get_rule",
- "description" : "Get single rule data.",
- "proxyto" : null
- },
- "PUT" : {
- "protected" : 1,
- "name" : "update_rule",
- "parameters" : {
- "properties" : {
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
+ "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"
+ }
+ }
},
- "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.",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-iface",
- "maxLength" : 20
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "moveto" : {
- "minimum" : 0,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
- "type" : "integer",
- "optional" : 1
+ "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"
+ }
+ }
},
- "comment" : {
- "optional" : 1,
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
- "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"
- },
- "source" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "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" : {
- "optional" : 1,
- "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.",
- "format" : "pve-fw-sport-spec"
- },
- "dest" : {
- "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.",
- "format" : "pve-fw-addr-spec"
- },
- "enable" : {
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "dport" : {
- "optional" : 1,
- "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.",
- "format" : "pve-fw-dport-spec"
+ "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"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
},
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "type" : "string",
- "optional" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "action" : {
- "type" : "string",
- "optional" : 1,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/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,
- "maxLength" : 20
- },
- "macro" : {
- "optional" : 1,
- "type" : "string",
- "maxLength" : 128
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "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"
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "PUT",
- "proxyto" : null,
- "description" : "Modify rule data.",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"returns" : {
"type" : "null"
}
},
- "DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "proxyto" : null,
- "description" : "Delete rule.",
- "returns" : {
- "type" : "null"
- },
+ "GET" : {
+ "description" : "List IPSet content",
+ "method" : "GET",
+ "name" : "get_ipset",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "pos" : {
- "optional" : 1,
- "type" : "integer",
- "description" : "Update rule at position <pos>.",
- "minimum" : 0
- },
- "digest" : {
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
}
},
- "name" : "delete_rule",
- "protected" : 1,
- "method" : "DELETE"
- }
- },
- "path" : "/cluster/firewall/rules/{pos}",
- "leaf" : 1
- }
- ],
- "text" : "rules",
- "leaf" : 0,
- "path" : "/cluster/firewall/rules"
- },
- {
- "path" : "/cluster/firewall/ipset",
- "leaf" : 0,
- "children" : [
- {
- "leaf" : 0,
- "path" : "/cluster/firewall/ipset/{name}",
- "info" : {
- "DELETE" : {
- "protected" : 1,
- "description" : "Delete IPSet",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string",
- "maxLength" : 64
- }
- }
- },
- "name" : "delete_ipset",
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE"
- },
- "GET" : {
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
- },
"cidr" : {
"type" : "string"
},
+ "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.",
- "type" : "string",
- "optional" : 0
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
}
- }
+ },
+ "type" : "object"
},
"links" : [
{
}
],
"type" : "array"
- },
- "method" : "GET",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "name" : "get_ipset",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string",
- "maxLength" : 64
- }
- }
- },
- "description" : "List IPSet content"
+ }
},
"POST" : {
- "returns" : {
- "type" : "null"
- },
+ "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",
- "description" : "Network/IP specification in CIDR format."
+ "typetext" : "<string>"
},
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
"name" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"description" : "IP set name.",
+ "maxLength" : 64,
"minLength" : 2,
- "maxLength" : 64
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
}
},
]
]
},
- "description" : "Add IP or Network to IPSet.",
- "protected" : 1
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "text" : "{name}",
- "children" : [
- {
- "text" : "{cidr}",
- "info" : {
- "GET" : {
- "returns" : {
- "type" : "object"
- },
- "method" : "GET",
- "description" : "Read IP or Network settings from IPSet.",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDRorAlias"
- },
- "name" : {
- "maxLength" : 64,
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name."
- }
- }
- },
- "name" : "read_ip"
- },
- "PUT" : {
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- },
- "name" : {
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "minLength" : 2,
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "cidr" : {
- "format" : "IPorCIDRorAlias",
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "type" : "string",
- "maxLength" : 40
- }
- }
- },
- "name" : "update_ip",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "description" : "Update IP or Network settings",
- "protected" : 1
- },
- "DELETE" : {
- "method" : "DELETE",
- "returns" : {
- "type" : "null"
- },
- "description" : "Remove IP or Network from IPSet.",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "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"
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDRorAlias"
- },
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "type" : "string",
- "maxLength" : 64
- }
- },
- "additionalProperties" : 0
- },
- "name" : "remove_ip"
- }
- },
- "path" : "/cluster/firewall/ipset/{name}/{cidr}",
- "leaf" : 1
- }
- ]
+ "leaf" : 0,
+ "path" : "/cluster/firewall/ipset/{name}",
+ "text" : "{name}"
}
],
- "text" : "ipset",
"info" : {
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "method" : "POST",
- "protected" : 1,
- "description" : "Create new IPSet",
+ "GET" : {
+ "description" : "List IPSets",
+ "method" : "GET",
+ "name" : "ipset_index",
"parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "name" : {
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string",
- "maxLength" : 64
- },
- "rename" : {
- "type" : "string",
- "optional" : 1,
- "minLength" : 2,
- "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string",
- "optional" : 1
- }
- }
+ "additionalProperties" : 0
},
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "name" : "create_ipset"
- },
- "GET" : {
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"comment" : {
- "type" : "string",
- "optional" : 1
+ "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,
- "type" : "string",
"minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name."
- },
- "digest" : {
- "maxLength" : 40,
- "type" : "string",
- "optional" : 0,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "type" : "string"
}
},
"type" : "object"
"href" : "{name}",
"rel" : "child"
}
- ]
- },
- "method" : "GET",
- "description" : "List IPSets",
- "name" : "ipset_index",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ ],
+ "type" : "array"
}
- }
- }
- },
- {
- "info" : {
+ },
"POST" : {
+ "description" : "Create new IPSet",
"method" : "POST",
- "returns" : {
- "type" : "null"
- },
- "protected" : 1,
- "description" : "Create IP or Network Alias.",
+ "name" : "create_ipset",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
+ "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",
- "format" : "IPorCIDR"
+ "typetext" : "<string>"
},
"name" : {
+ "description" : "IP set name.",
"maxLength" : 64,
- "type" : "string",
"minLength" : 2,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
- "comment" : {
+ "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"
}
}
]
]
},
- "name" : "create_alias"
- },
- "GET" : {
- "method" : "GET",
+ "protected" : 1,
"returns" : {
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ],
- "items" : {
- "properties" : {
- "digest" : {
- "optional" : 0,
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
- },
- "cidr" : {
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
- "type" : "string"
- }
- },
- "type" : "object"
- }
- },
- "description" : "List aliases",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "name" : "get_aliases"
+ "type" : "null"
+ }
}
},
- "text" : "aliases",
+ "leaf" : 0,
+ "path" : "/cluster/firewall/ipset",
+ "text" : "ipset"
+ },
+ {
"children" : [
{
"info" : {
"DELETE" : {
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
"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
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
"name" : {
- "maxLength" : 64,
- "type" : "string",
"description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "remove_alias",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Remove IP or Network alias.",
"protected" : 1,
"returns" : {
"type" : "null"
- },
- "method" : "DELETE"
+ }
},
- "PUT" : {
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "description" : "Update IP or Network alias.",
- "protected" : 1,
+ "GET" : {
+ "description" : "Read alias.",
+ "method" : "GET",
+ "name" : "read_alias",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "rename" : {
- "maxLength" : 64,
- "minLength" : 2,
- "description" : "Rename an existing alias.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "optional" : 1,
- "type" : "string"
- },
"name" : {
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"description" : "Alias name.",
+ "maxLength" : 64,
"minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDR"
- },
- "digest" : {
- "maxLength" : 40,
- "type" : "string",
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
}
}
},
- "name" : "update_alias",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
+ },
+ "returns" : {
+ "type" : "object"
}
},
- "GET" : {
+ "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,
- "type" : "string",
+ "minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Alias name.",
- "minLength" : 2
+ "type" : "string"
+ },
+ "rename" : {
+ "description" : "Rename an existing alias.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
}
},
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
- "name" : "read_alias",
- "description" : "Read alias.",
+ "protected" : 1,
"returns" : {
- "type" : "object"
- },
- "method" : "GET"
+ "type" : "null"
+ }
}
},
- "text" : "{name}",
"leaf" : 1,
- "path" : "/cluster/firewall/aliases/{name}"
+ "path" : "/cluster/firewall/aliases/{name}",
+ "text" : "{name}"
}
],
- "leaf" : 0,
- "path" : "/cluster/firewall/aliases"
- },
- {
"info" : {
- "PUT" : {
- "description" : "Set Firewall options.",
- "protected" : 1,
+ "GET" : {
+ "description" : "List aliases",
+ "method" : "GET",
+ "name" : "get_aliases",
"parameters" : {
- "properties" : {
- "policy_out" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Output policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.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"
+ }
},
- "delete" : {
- "optional" : 1,
+ "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",
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list"
- },
- "enable" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Enable or disable the firewall cluster wide.",
- "minimum" : 0
+ "typetext" : "<string>"
},
- "digest" : {
- "maxLength" : 40,
+ "comment" : {
"optional" : 1,
"type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "typetext" : "<string>"
},
- "policy_in" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Input policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "set_options",
"permissions" : {
"check" : [
"perm",
]
]
},
- "method" : "PUT",
+ "protected" : 1,
"returns" : {
"type" : "null"
}
- },
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/firewall/aliases",
+ "text" : "aliases"
+ },
+ {
+ "info" : {
"GET" : {
+ "description" : "Get Firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "get_options",
- "description" : "Get Firewall options.",
- "method" : "GET",
"returns" : {
- "type" : "object",
"properties" : {
- "policy_in" : {
+ "enable" : {
+ "description" : "Enable or disable the firewall cluster wide.",
+ "minimum" : 0,
"optional" : 1,
- "type" : "string",
+ "type" : "integer"
+ },
+ "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>"
},
"enable" : {
"description" : "Enable or disable the firewall cluster wide.",
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 0
+ "typetext" : "<integer> (0 - N)"
},
- "policy_out" : {
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
"optional" : 1,
- "type" : "string",
+ "type" : "string"
+ },
+ "policy_out" : {
"description" : "Output policy.",
"enum" : [
"ACCEPT",
"REJECT",
"DROP"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
}
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "text" : "options",
"leaf" : 1,
- "path" : "/cluster/firewall/options"
+ "path" : "/cluster/firewall/options",
+ "text" : "options"
},
{
"info" : {
"GET" : {
"description" : "List available macros",
+ "method" : "GET",
"name" : "get_macros",
- "permissions" : {
- "user" : "all"
- },
"parameters" : {
"additionalProperties" : 0
},
- "method" : "GET",
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"descr" : {
- "type" : "string",
- "description" : "More verbose description (if available)."
+ "description" : "More verbose description (if available).",
+ "type" : "string"
},
"macro" : {
"description" : "Macro name.",
}
},
"type" : "object"
- }
+ },
+ "type" : "array"
}
}
},
- "text" : "macros",
"leaf" : 1,
- "path" : "/cluster/firewall/macros"
+ "path" : "/cluster/firewall/macros",
+ "text" : "macros"
},
{
- "leaf" : 1,
- "path" : "/cluster/firewall/refs",
"info" : {
"GET" : {
+ "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
+ "method" : "GET",
+ "name" : "refs",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"alias",
"ipset"
],
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
}
}
},
]
]
},
- "name" : "refs",
- "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
"returns" : {
"items" : {
"properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
"name" : {
"type" : "string"
},
+ "ref" : {
+ "type" : "string"
+ },
"type" : {
- "type" : "string",
"enum" : [
"alias",
"ipset"
- ]
- },
- "ref" : {
+ ],
"type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
}
},
"type" : "object"
},
"type" : "array"
- },
- "method" : "GET"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/cluster/firewall/refs",
"text" : "refs"
}
],
+ "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/firewall"
+ "path" : "/cluster/firewall",
+ "text" : "firewall"
},
{
"children" : [
{
"info" : {
"DELETE" : {
- "protected" : 1,
"description" : "Delete vzdump backup job definition.",
+ "method" : "DELETE",
"name" : "delete_job",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"id" : {
- "type" : "string",
"description" : "The job ID.",
- "maxLength" : 50
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
]
]
},
- "method" : "DELETE",
+ "protected" : 1,
"returns" : {
"type" : "null"
}
},
- "PUT" : {
- "method" : "PUT",
- "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>"
+ }
+ }
},
- "name" : "update_job",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update vzdump backup job definition.",
+ "method" : "PUT",
+ "name" : "update_job",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "size" : {
- "minimum" : 500,
- "description" : "Unused, will be removed in a future release.",
- "default" : 1024,
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
"optional" : 1,
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "node" : {
- "type" : "string",
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (KBytes per second).",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Only run if executed on this node.",
- "format" : "pve-node"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "exclude" : {
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo"
+ ],
"optional" : 1,
- "type" : "string",
- "description" : "Exclude specified guest systems (assumes --all)",
- "format" : "pve-vmid-list"
+ "type" : "string"
},
"delete" : {
+ "description" : "A list of settings you want to delete.",
"format" : "pve-configid-list",
"optional" : 1,
"type" : "string",
- "description" : "A list of settings you want to delete."
+ "typetext" : "<string>"
},
- "stdexcludes" : {
- "description" : "Exclude temporary files and logs.",
- "default" : 1,
+ "dow" : {
+ "description" : "Day of week selection.",
+ "format" : "pve-day-of-week-list",
"optional" : 1,
- "type" : "boolean"
- },
- "exclude-path" : {
- "format" : "string-alist",
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
"optional" : 1,
- "description" : "Exclude certain files/directories (shell globs)."
+ "type" : "string",
+ "typetext" : "<string>"
},
"enabled" : {
+ "default" : "1",
"description" : "Enable or disable the job.",
- "type" : "boolean",
"optional" : 1,
- "default" : "1"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "storage" : {
- "format" : "pve-storage-id",
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
"optional" : 1,
"type" : "string",
- "description" : "Store resulting file to this storage."
+ "typetext" : "<string>"
},
- "pigz" : {
- "default" : 0,
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs).",
+ "format" : "string-alist",
"optional" : 1,
- "type" : "integer",
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "stopwait" : {
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ionice" : {
+ "default" : 7,
+ "description" : "Set CFQ ionice priority.",
+ "maximum" : 8,
"minimum" : 0,
- "description" : "Maximal time to wait until a guest system is stopped (minutes).",
- "type" : "integer",
"optional" : 1,
- "default" : 10
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 8)"
},
- "quiet" : {
- "description" : "Be quiet.",
- "default" : 0,
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
"optional" : 1,
- "type" : "boolean"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"mailnotification" : {
+ "default" : "always",
+ "description" : "Specify when to send an email",
"enum" : [
"always",
"failure"
],
- "description" : "Specify when to send an email",
- "type" : "string",
"optional" : 1,
- "default" : "always"
+ "type" : "string"
},
- "all" : {
- "type" : "boolean",
+ "mailto" : {
+ "description" : "Comma-separated list of email addresses that should receive email notifications.",
+ "format" : "string-list",
"optional" : 1,
- "default" : 0,
- "description" : "Backup all known guest systems on this host."
- },
- "id" : {
- "description" : "The job ID.",
"type" : "string",
- "maxLength" : 50
+ "typetext" : "<string>"
},
- "remove" : {
+ "maxfiles" : {
"default" : 1,
+ "description" : "Maximal number of backup files per guest system.",
+ "minimum" : 1,
"optional" : 1,
- "type" : "boolean",
- "description" : "Remove old backup files if there are more than 'maxfiles' backup files."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "script" : {
+ "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",
- "description" : "Use specified hook script."
+ "typetext" : "<string>"
},
- "lockwait" : {
- "minimum" : 0,
- "default" : 180,
+ "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",
- "description" : "Maximal time to wait for the global lock (minutes)."
+ "typetext" : "<integer>"
},
- "mailto" : {
- "type" : "string",
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
"optional" : 1,
- "description" : "Comma-separated list of email addresses that should receive email notifications.",
- "format" : "string-list"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "dumpdir" : {
- "description" : "Store resulting files to specified directory.",
+ "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",
- "optional" : 1
+ "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" : {
- "pattern" : "\\d{1,2}:\\d{1,2}",
"description" : "Job Start time.",
+ "pattern" : "\\d{1,2}:\\d{1,2}",
"type" : "string",
"typetext" : "HH:MM"
},
- "bwlimit" : {
- "minimum" : 0,
- "description" : "Limit I/O bandwidth (KBytes per second).",
- "default" : 0,
- "optional" : 1,
- "type" : "integer"
- },
- "ionice" : {
- "minimum" : 0,
- "description" : "Set CFQ ionice priority.",
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
"optional" : 1,
- "type" : "integer",
- "default" : 7,
- "maximum" : 8
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"stop" : {
"default" : 0,
+ "description" : "Stop runnig backup jobs on this host.",
"optional" : 1,
"type" : "boolean",
- "description" : "Stop runnig backup jobs on this host."
+ "typetext" : "<boolean>"
},
- "maxfiles" : {
- "description" : "Maximal number of backup files per guest system.",
- "default" : 1,
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 1
- },
- "mode" : {
- "description" : "Backup mode.",
- "enum" : [
- "snapshot",
- "suspend",
- "stop"
- ],
- "default" : "snapshot",
- "type" : "string",
- "optional" : 1
+ "typetext" : "<integer> (0 - N)"
},
- "compress" : {
- "default" : "0",
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
"optional" : 1,
"type" : "string",
- "description" : "Compress dump file.",
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo"
- ]
+ "typetext" : "<string>"
},
"tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
"optional" : 1,
"type" : "string",
- "description" : "Store temporary files to specified directory."
+ "typetext" : "<string>"
},
"vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
"format" : "pve-vmid-list",
- "type" : "string",
- "optional" : 1,
- "description" : "The ID of the guest system you want to backup."
- },
- "dow" : {
- "description" : "Day of week selection.",
"optional" : 1,
"type" : "string",
- "format" : "pve-day-of-week-list"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "description" : "Update vzdump backup job definition."
- },
- "GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "object"
- },
- "parameters" : {
- "properties" : {
- "id" : {
- "description" : "The job ID.",
- "type" : "string",
- "maxLength" : 50
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
- "name" : "read_job",
- "description" : "Read vzdump backup job definition."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "text" : "{id}",
"leaf" : 1,
- "path" : "/cluster/backup/{id}"
+ "path" : "/cluster/backup/{id}",
+ "text" : "{id}"
}
],
- "text" : "backup",
"info" : {
- "POST" : {
- "description" : "Create new vzdump backup job.",
- "protected" : 1,
- "name" : "create_job",
+ "GET" : {
+ "description" : "List vzdump backup schedule.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "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" : {
- "stopwait" : {
- "default" : 10,
- "optional" : 1,
- "type" : "integer",
- "description" : "Maximal time to wait until a guest system is stopped (minutes).",
- "minimum" : 0
- },
- "quiet" : {
- "description" : "Be quiet.",
+ "all" : {
"default" : 0,
+ "description" : "Backup all known guest systems on this host.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "remove" : {
- "default" : 1,
- "type" : "boolean",
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (KBytes per second).",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Remove old backup files if there are more than 'maxfiles' backup files."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "mailnotification" : {
- "description" : "Specify when to send an email",
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
"enum" : [
- "always",
- "failure"
+ "0",
+ "1",
+ "gzip",
+ "lzo"
],
- "default" : "always",
- "type" : "string",
- "optional" : 1
- },
- "all" : {
- "description" : "Backup all known guest systems on this host.",
- "optional" : 1,
- "type" : "boolean",
- "default" : 0
- },
- "exclude" : {
- "description" : "Exclude specified guest systems (assumes --all)",
- "type" : "string",
"optional" : 1,
- "format" : "pve-vmid-list"
+ "type" : "string"
},
- "size" : {
- "description" : "Unused, will be removed in a future release.",
- "default" : 1024,
- "type" : "integer",
+ "dow" : {
+ "default" : "mon,tue,wed,thu,fri,sat,sun",
+ "description" : "Day of week selection.",
+ "format" : "pve-day-of-week-list",
"optional" : 1,
- "minimum" : 500
+ "type" : "string",
+ "typetext" : "<string>"
},
- "node" : {
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
"optional" : 1,
"type" : "string",
- "description" : "Only run if executed on this node.",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "pigz" : {
- "default" : 0,
- "type" : "integer",
+ "enabled" : {
+ "default" : "1",
+ "description" : "Enable or disable the job.",
"optional" : 1,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count."
- },
- "stdexcludes" : {
- "description" : "Exclude temporary files and logs.",
- "default" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "exclude-path" : {
- "type" : "string",
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
"optional" : 1,
- "description" : "Exclude certain files/directories (shell globs).",
- "format" : "string-alist"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "storage" : {
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs).",
+ "format" : "string-alist",
"optional" : 1,
"type" : "string",
- "description" : "Store resulting file to this storage.",
- "format" : "pve-storage-id"
+ "typetext" : "<string>"
},
- "enabled" : {
- "description" : "Enable or disable the job.",
- "default" : "1",
+ "ionice" : {
+ "default" : 7,
+ "description" : "Set CFQ ionice priority.",
+ "maximum" : 8,
+ "minimum" : 0,
"optional" : 1,
- "type" : "boolean"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 8)"
},
- "maxfiles" : {
- "minimum" : 1,
- "default" : 1,
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "description" : "Maximal number of backup files per guest system."
+ "typetext" : "<integer> (0 - N)"
},
- "stop" : {
- "type" : "boolean",
- "optional" : 1,
- "default" : 0,
- "description" : "Stop runnig backup jobs on this host."
+ "mailnotification" : {
+ "default" : "always",
+ "description" : "Specify when to send an email",
+ "enum" : [
+ "always",
+ "failure"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "tmpdir" : {
+ "mailto" : {
+ "description" : "Comma-separated list of email addresses that should receive email notifications.",
+ "format" : "string-list",
"optional" : 1,
"type" : "string",
- "description" : "Store temporary files to specified directory."
+ "typetext" : "<string>"
},
- "compress" : {
+ "maxfiles" : {
+ "default" : 1,
+ "description" : "Maximal number of backup files per guest system.",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "default" : "0",
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo"
- ],
- "description" : "Compress dump file."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
"mode" : {
- "type" : "string",
- "optional" : 1,
"default" : "snapshot",
+ "description" : "Backup mode.",
"enum" : [
"snapshot",
"suspend",
"stop"
],
- "description" : "Backup mode."
+ "optional" : 1,
+ "type" : "string"
},
- "bwlimit" : {
- "description" : "Limit I/O bandwidth (KBytes per second).",
+ "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",
- "minimum" : 0
+ "typetext" : "<integer>"
},
- "ionice" : {
- "minimum" : 0,
- "default" : 7,
- "maximum" : 8,
- "type" : "integer",
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
"optional" : 1,
- "description" : "Set CFQ ionice priority."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "dow" : {
- "format" : "pve-day-of-week-list",
- "default" : "mon,tue,wed,thu,fri,sat,sun",
+ "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",
- "description" : "Day of week selection."
+ "typetext" : "<string>"
},
- "vmid" : {
- "description" : "The ID of the guest system you want to backup.",
+ "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,
- "format" : "pve-vmid-list"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "lockwait" : {
- "minimum" : 0,
- "description" : "Maximal time to wait for the global lock (minutes).",
- "type" : "integer",
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop runnig backup jobs on this host.",
"optional" : 1,
- "default" : 180
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "script" : {
- "type" : "string",
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Use specified hook script."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "mailto" : {
- "description" : "Comma-separated list of email addresses that should receive email notifications.",
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
"optional" : 1,
"type" : "string",
- "format" : "string-list"
+ "typetext" : "<string>"
},
- "dumpdir" : {
- "description" : "Store resulting files to specified directory.",
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "starttime" : {
- "typetext" : "HH:MM",
- "description" : "Job Start time.",
- "pattern" : "\\d{1,2}:\\d{1,2}",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "POST",
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "method" : "GET",
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{id}"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {
- "id" : {
- "type" : "string"
- }
+ "vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "type" : "array"
+ }
},
- "description" : "List vzdump backup schedule.",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
- ]
+ ],
+ "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
},
- "name" : "index",
- "parameters" : {
- "additionalProperties" : 0
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
+ "leaf" : 0,
"path" : "/cluster/backup",
- "leaf" : 0
+ "text" : "backup"
},
{
- "path" : "/cluster/ha",
- "leaf" : 0,
- "text" : "ha",
"children" : [
{
- "info" : {
- "POST" : {
- "method" : "POST",
- "returns" : {
- "type" : "null"
- },
- "name" : "create",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "max_restart" : {
- "description" : "Maximal number of tries to restart the service on a node after its start failed.",
- "default" : 1,
- "type" : "integer",
- "optional" : 1,
- "minimum" : 0
- },
- "state" : {
- "type" : "string",
- "optional" : 1,
- "default" : "enabled",
- "enum" : [
- "enabled",
- "disabled"
- ],
- "description" : "Resource state."
- },
- "max_relocate" : {
- "default" : 1,
- "optional" : 1,
- "type" : "integer",
- "description" : "Maximal number of service relocate tries when a service failes to start.",
- "minimum" : 0
- },
- "group" : {
- "type" : "string",
- "optional" : 1,
- "description" : "The HA group identifier.",
- "format" : "pve-configid"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Description.",
- "maxLength" : 4096
- },
- "type" : {
- "enum" : [
- "vm",
- "ct"
- ],
- "description" : "Resource type.",
- "type" : "string",
- "optional" : 1
- },
- "sid" : {
- "format" : "pve-ha-resource-or-vm-id",
- "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).",
- "type" : "string"
- }
- },
- "additionalProperties" : 0,
- "type" : "object"
- },
- "protected" : 1,
- "description" : "Create a new HA resource."
- },
- "GET" : {
- "returns" : {
- "items" : {
- "properties" : {
- "sid" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{sid}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- },
- "method" : "GET",
- "description" : "List HA resources.",
- "name" : "index",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "type" : {
- "type" : "string",
- "optional" : 1,
- "enum" : [
- "vm",
- "ct"
- ],
- "description" : "Only list resources of specific type"
- }
- }
- }
- }
- },
- "text" : "resources",
"children" : [
{
- "text" : "{sid}",
"children" : [
{
- "path" : "/cluster/ha/resources/{sid}/migrate",
- "leaf" : 1,
- "text" : "migrate",
"info" : {
"POST" : {
+ "description" : "Request resource migration (online) to another node.",
+ "method" : "POST",
"name" : "migrate",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "sid" : {
- "typetext" : "<type>:<name>",
- "format" : "pve-ha-resource-or-vm-id",
- "type" : "string",
- "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)."
- },
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "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>"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
},
"protected" : 1,
- "description" : "Request resource migration (online) to another node.",
"returns" : {
"type" : "null"
- },
- "method" : "POST"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/resources/{sid}/migrate",
+ "text" : "migrate"
},
{
- "path" : "/cluster/ha/resources/{sid}/relocate",
- "leaf" : 1,
- "text" : "relocate",
"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" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"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",
- "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>"
}
}
},
]
},
"protected" : 1,
- "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
"returns" : {
"type" : "null"
- },
- "method" : "POST"
+ }
}
- }
+ },
+ "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" : {
- "returns" : {},
+ "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).",
- "type" : "string",
"format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
"typetext" : "<type>:<name>"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
]
},
- "name" : "read",
- "description" : "Read resource configuration."
+ "returns" : {}
},
"PUT" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "Update resource configuration.",
"method" : "PUT",
+ "name" : "update",
"parameters" : {
"additionalProperties" : 0,
- "type" : "object",
"properties" : {
- "group" : {
- "format" : "pve-configid",
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
"optional" : 1,
"type" : "string",
- "description" : "The HA group identifier."
- },
- "max_restart" : {
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "default" : 1,
- "description" : "Maximal number of tries to restart the service on a node after its start failed."
+ "typetext" : "<string>"
},
"delete" : {
"description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
"optional" : 1,
"type" : "string",
- "format" : "pve-configid-list",
- "maxLength" : 4096
+ "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).",
+ "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-ha-resource-or-vm-id",
- "typetext" : "<type>:<name>"
+ "typetext" : "<string>"
},
- "comment" : {
- "description" : "Description.",
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
"optional" : 1,
"type" : "string",
- "maxLength" : 4096
+ "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 service relocate tries when a service failes to start.",
- "minimum" : 0
+ "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)"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "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",
- "optional" : 1,
- "maxLength" : 40
+ "typetext" : "<type>:<name>"
},
"state" : {
+ "default" : "started",
+ "description" : "Requested resource state.",
"enum" : [
+ "started",
+ "stopped",
"enabled",
"disabled"
],
- "description" : "Resource state.",
- "type" : "string",
"optional" : 1,
- "default" : "enabled"
+ "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"
}
- }
+ },
+ "type" : "object"
},
- "name" : "update",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Update resource configuration.",
- "protected" : 1
- },
- "DELETE" : {
"protected" : 1,
- "description" : "Delete resource configuration.",
- "name" : "delete",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
- },
- "parameters" : {
- "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).",
- "type" : "string",
- "format" : "pve-ha-resource-or-vm-id",
- "typetext" : "<type>:<name>"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "DELETE",
"returns" : {
"type" : "null"
}
}
},
+ "leaf" : 0,
"path" : "/cluster/ha/resources/{sid}",
- "leaf" : 0
+ "text" : "{sid}"
}
],
- "leaf" : 0,
- "path" : "/cluster/ha/resources"
- },
- {
- "leaf" : 0,
- "path" : "/cluster/ha/groups",
"info" : {
"GET" : {
+ "description" : "List HA resources.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
- "additionalProperties" : 0
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list resources of specific type",
+ "enum" : [
+ "ct",
+ "vm"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
},
- "name" : "index",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get HA groups.",
- "method" : "GET",
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
- "group" : {
+ "sid" : {
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
"links" : [
{
- "href" : "{group}",
+ "href" : "{sid}",
"rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
},
"POST" : {
+ "description" : "Create a new HA resource.",
"method" : "POST",
- "returns" : {
- "type" : "null"
- },
- "description" : "Create a new HA group.",
- "protected" : 1,
+ "name" : "create",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"comment" : {
- "maxLength" : 4096,
"description" : "Description.",
+ "maxLength" : 4096,
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "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.",
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
"optional" : 1,
- "type" : "boolean",
- "default" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
- "nofailback" : {
- "type" : "boolean",
+ "max_relocate" : {
+ "default" : 1,
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "minimum" : 0,
"optional" : 1,
- "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."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "type" : {
- "enum" : [
- "group"
- ],
- "description" : "Group type.",
+ "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" : "string"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "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').",
+ "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",
- "optional" : 0,
- "format" : "pve-ha-group-node-list",
- "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*"
+ "typetext" : "<type>:<name>"
},
- "group" : {
- "format" : "pve-configid",
+ "state" : {
+ "default" : "started",
+ "description" : "Requested resource state.",
+ "enum" : [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled"
+ ],
+ "optional" : 1,
"type" : "string",
- "description" : "The HA group identifier."
+ "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"
+ },
+ "type" : {
+ "description" : "Resource type.",
+ "enum" : [
+ "ct",
+ "vm"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
},
- "type" : "object",
- "additionalProperties" : 0
+ "type" : "object"
},
"permissions" : {
"check" : [
]
]
},
- "name" : "create"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "text" : "groups",
+ "leaf" : 0,
+ "path" : "/cluster/ha/resources",
+ "text" : "resources"
+ },
+ {
"children" : [
{
"info" : {
- "PUT" : {
- "protected" : 1,
- "description" : "Update ha group configuration.",
- "parameters" : {
- "type" : "object",
- "additionalProperties" : 0,
+ "DELETE" : {
+ "description" : "Delete ha group configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "nodes" : {
- "format" : "pve-ha-group-node-list",
- "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
- "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,
- "type" : "string"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string",
- "optional" : 1,
- "maxLength" : 40
- },
"group" : {
"description" : "The HA group identifier.",
+ "format" : "pve-configid",
"type" : "string",
- "format" : "pve-configid"
- },
- "comment" : {
- "maxLength" : 4096,
- "type" : "string",
- "optional" : 1,
- "description" : "Description."
- },
- "nofailback" : {
- "default" : 0,
- "optional" : 1,
- "type" : "boolean",
- "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."
- },
- "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.",
- "default" : 0,
- "type" : "boolean",
- "optional" : 1
- },
- "delete" : {
- "format" : "pve-configid-list",
- "maxLength" : 4096,
- "optional" : 1,
- "type" : "string",
- "description" : "A list of settings you want to delete."
+ "typetext" : "<string>"
}
}
},
- "name" : "update",
"permissions" : {
"check" : [
"perm",
]
]
},
- "method" : "PUT",
+ "protected" : 1,
"returns" : {
"type" : "null"
}
},
- "DELETE" : {
- "method" : "DELETE",
- "returns" : {
- "type" : "null"
- },
- "name" : "delete",
+ "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",
- "format" : "pve-configid"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Audit"
]
]
},
- "description" : "Delete ha group configuration.",
- "protected" : 1
+ "returns" : {}
},
- "GET" : {
+ "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",
- "format" : "pve-configid"
+ "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."
}
},
- "additionalProperties" : 0
+ "type" : "object"
},
- "name" : "read",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Console"
]
]
},
- "description" : "Read ha group configuration.",
- "returns" : {},
- "method" : "GET"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "text" : "{group}",
"leaf" : 1,
- "path" : "/cluster/ha/groups/{group}"
+ "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"
},
{
- "text" : "status",
"children" : [
{
"info" : {
"GET" : {
- "returns" : {
- "type" : "array"
- },
- "method" : "GET",
"description" : "Get HA manger status.",
+ "method" : "GET",
"name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "parameters" : {
- "additionalProperties" : 0
+ "returns" : {
+ "type" : "array"
}
}
},
- "text" : "current",
"leaf" : 1,
- "path" : "/cluster/ha/status/current"
+ "path" : "/cluster/ha/status/current",
+ "text" : "current"
},
{
"info" : {
"GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "object"
- },
"description" : "Get full HA manger status, including LRM status.",
+ "method" : "GET",
+ "name" : "manager_status",
"parameters" : {
"additionalProperties" : 0
},
- "name" : "manager_status",
"permissions" : {
"check" : [
"perm",
"Sys.Audit"
]
]
+ },
+ "returns" : {
+ "type" : "object"
}
}
},
- "text" : "manager_status",
"leaf" : 1,
- "path" : "/cluster/ha/status/manager_status"
+ "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" : {},
},
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{name}",
+ "rel" : "child"
}
],
"type" : "array"
- },
- "description" : "Directory index.",
- "permissions" : {
- "user" : "all"
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "index"
+ }
}
},
+ "leaf" : 0,
"path" : "/cluster/ha/status",
- "leaf" : 0
+ "text" : "status"
}
],
"info" : {
"GET" : {
"description" : "Directory index.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
[
"Sys.Audit"
]
]
},
- "name" : "index",
- "parameters" : {
- "additionalProperties" : 0
- },
- "method" : "GET",
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
"id" : {
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
"links" : [
{
"href" : "{id}",
"rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha",
+ "text" : "ha"
},
{
- "path" : "/cluster/log",
- "leaf" : 1,
- "text" : "log",
"info" : {
"GET" : {
"description" : "Read cluster log",
- "permissions" : {
- "user" : "all"
- },
+ "method" : "GET",
+ "name" : "log",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"max" : {
- "type" : "integer",
- "optional" : 1,
"description" : "Maximum number of entries.",
- "minimum" : 1
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "name" : "log",
- "method" : "GET",
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
- "properties" : {}
- }
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/log",
+ "text" : "log"
},
{
"info" : {
"GET" : {
+ "description" : "Resources index (cluster wide).",
"method" : "GET",
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "type" : "array"
- },
"name" : "resources",
- "permissions" : {
- "user" : "all"
- },
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"type" : {
- "optional" : 1,
- "type" : "string",
"enum" : [
"vm",
"storage",
"node"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
}
}
},
- "description" : "Resources index (cluster wide)."
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
- "text" : "resources",
"leaf" : 1,
- "path" : "/cluster/resources"
+ "path" : "/cluster/resources",
+ "text" : "resources"
},
{
"info" : {
"GET" : {
"description" : "List recent tasks (cluster wide).",
- "permissions" : {
- "user" : "all"
- },
+ "method" : "GET",
"name" : "tasks",
"parameters" : {
"additionalProperties" : 0
},
- "method" : "GET",
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
"upid" : {
"type" : "string"
}
- }
- }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
- "text" : "tasks",
"leaf" : 1,
- "path" : "/cluster/tasks"
+ "path" : "/cluster/tasks",
+ "text" : "tasks"
},
{
- "leaf" : 1,
- "path" : "/cluster/options",
"info" : {
"GET" : {
+ "description" : "Get datacenter options.",
+ "method" : "GET",
+ "name" : "get_options",
"parameters" : {
"additionalProperties" : 0
},
]
]
},
- "name" : "get_options",
- "description" : "Get datacenter options.",
- "method" : "GET",
"returns" : {
- "type" : "object",
- "properties" : {}
+ "properties" : {},
+ "type" : "object"
}
},
"PUT" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
+ "description" : "Set datacenter options.",
+ "method" : "PUT",
"name" : "set_options",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "fencing" : {
- "default" : "watchdog",
- "type" : "string",
- "optional" : 1,
- "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"
- ]
- },
"console" : {
- "optional" : 1,
- "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).",
"enum" : [
"applet",
"vv",
"html5"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
},
"delete" : {
- "format" : "pve-configid-list",
"description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"optional" : 1,
- "type" : "string"
- },
- "max_workers" : {
- "minimum" : 1,
- "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
- "type" : "integer",
- "optional" : 1
- },
- "language" : {
"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" : [
- "en",
- "de"
+ "watchdog",
+ "hardware",
+ "both"
],
- "description" : "Default GUI language."
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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",
- "sv",
"en-gb",
- "lt",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
"is",
+ "it",
+ "ja",
+ "lt",
"mk",
- "pl",
- "hu",
- "fr-be",
- "pt-br",
- "de-ch",
"nl",
"no",
- "tr",
- "sl",
- "de",
- "fr-ca",
- "ja",
- "es",
- "it",
+ "pl",
"pt",
- "fr",
- "en-us",
- "fi",
- "fr-ch"
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
],
- "description" : "Default keybord layout for vnc server.",
"optional" : 1,
"type" : "string"
},
- "http_proxy" : {
+ "language" : {
+ "description" : "Default GUI language.",
+ "enum" : [
+ "en",
+ "de"
+ ],
"optional" : 1,
- "type" : "string",
- "pattern" : "http://.*",
- "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')"
+ "type" : "string"
},
- "email_from" : {
- "format" : "email-opt",
+ "mac_prefix" : {
+ "description" : "Prefix for autogenerated MAC addresses.",
+ "optional" : 1,
+ "pattern" : "(?^i:[a-f0-9]{2}(?::[a-f0-9]{2}){0,2}:?)",
+ "type" : "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",
- "description" : "Specify email address to send notification from (default is root@$hostname)"
+ "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
},
"migration_unsecure" : {
- "type" : "boolean",
+ "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,
- "description" : "Migration is secure using SSH tunnel by default. For secure private networks you can disable it to speed up migration."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
"protected" : 1,
- "description" : "Set datacenter options.",
"returns" : {
"type" : "null"
- },
- "method" : "PUT"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/cluster/options",
"text" : "options"
},
{
- "text" : "status",
"info" : {
"GET" : {
+ "description" : "Get cluster status informations.",
+ "method" : "GET",
+ "name" : "get_status",
"parameters" : {
"additionalProperties" : 0
},
- "name" : "get_status",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get cluster status informations.",
"protected" : 1,
- "method" : "GET",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
"type" : {
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
"type" : "array"
}
}
},
+ "leaf" : 1,
"path" : "/cluster/status",
- "leaf" : 1
+ "text" : "status"
},
{
"info" : {
"GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "integer",
- "description" : "The next free VMID."
- },
"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,
- "description" : "The (unique) ID of the VM.",
"optional" : 1,
- "type" : "integer"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "nextid",
"permissions" : {
"user" : "all"
+ },
+ "returns" : {
+ "description" : "The next free VMID.",
+ "type" : "integer"
}
}
},
- "text" : "nextid",
"leaf" : 1,
- "path" : "/cluster/nextid"
+ "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"
},
{
- "path" : "/nodes",
- "leaf" : 0,
- "text" : "nodes",
"children" : [
{
- "info" : {
- "GET" : {
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
- },
- "method" : "GET",
- "description" : "Node index.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "user" : "all"
- },
- "name" : "index"
- }
- },
"children" : [
{
"children" : [
{
- "path" : "/nodes/{node}/qemu/{vmid}",
- "leaf" : 0,
- "text" : "{vmid}",
"children" : [
{
- "path" : "/nodes/{node}/qemu/{vmid}/firewall",
- "leaf" : 0,
- "text" : "firewall",
"children" : [
{
- "text" : "rules",
"children" : [
{
- "text" : "{pos}",
"info" : {
"DELETE" : {
+ "description" : "Delete rule.",
"method" : "DELETE",
+ "name" : "delete_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
"type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"pos" : {
- "type" : "integer",
- "optional" : 1,
"description" : "Update rule at position <pos>.",
- "minimum" : 0
- },
- "digest" : {
+ "minimum" : 0,
"optional" : 1,
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
+ "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)"
}
- },
- "additionalProperties" : 0
- },
- "name" : "delete_rule",
- "protected" : 1,
- "returns" : {
- "type" : "null"
+ }
},
"permissions" : {
"check" : [
]
]
},
- "description" : "Delete rule.",
- "proxyto" : null
- },
- "PUT" : {
+ "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.Config.Network"
+ "VM.Audit"
]
]
},
"proxyto" : null,
+ "returns" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
"description" : "Modify rule data.",
"method" : "PUT",
+ "name" : "update_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "dport" : {
- "format" : "pve-fw-dport-spec",
- "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.",
+ "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"
},
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "type" : "string",
- "optional" : 1
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "moveto" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored."
- },
"comment" : {
+ "description" : "Descriptive comment.",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"delete" : {
- "format" : "pve-configid-list",
"description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "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" : "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."
- },
- "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.",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-fw-addr-spec"
+ "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,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "type" : "string",
+ "typetext" : "<string>"
},
"enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 0
+ "typetext" : "<integer> (0 - N)"
},
- "action" : {
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "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",
- "maxLength" : 20
+ "typetext" : "<string>"
},
- "pos" : {
- "type" : "integer",
+ "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
+ "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'.",
- "type" : "string",
+ "format" : "pve-fw-protocol-spec",
"optional" : 1,
- "format" : "pve-fw-protocol-spec"
- },
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "macro" : {
- "maxLength" : 128,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "iface" : {
- "format" : "pve-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.",
- "minLength" : 2,
+ "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"
+ "type" : "string",
+ "typetext" : "<string>"
},
"sport" : {
- "format" : "pve-fw-sport-spec",
"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
- },
- "name" : "update_rule",
- "protected" : 1
- },
- "GET" : {
+ },
+ "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"
+ "VM.Config.Network"
]
]
},
- "name" : "get_rule",
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- },
- "pos" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- },
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
+ "protected" : 1,
"proxyto" : null,
- "description" : "Get single rule data.",
"returns" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- },
- "method" : "GET"
+ "type" : "null"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
- "leaf" : 1
+ "text" : "{pos}"
}
],
"info" : {
- "POST" : {
- "returns" : {
- "type" : "null"
+ "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)"
+ }
+ }
},
- "description" : "Create new rule.",
- "proxyto" : null,
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Config.Network"
+ "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",
- "protected" : 1,
+ "name" : "create_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "pos" : {
- "optional" : 1,
- "type" : "integer",
- "description" : "Update rule at position <pos>.",
- "minimum" : 0
+ "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"
},
- "proto" : {
- "format" : "pve-fw-protocol-spec",
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "comment" : {
+ "description" : "Descriptive comment.",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 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.",
+ "format" : "pve-fw-addr-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "macro" : {
+ "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",
- "maxLength" : 128
+ "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.",
- "type" : "string",
+ "format" : "pve-fw-dport-spec",
"optional" : 1,
- "format" : "pve-fw-dport-spec"
- },
- "type" : {
- "optional" : 0,
"type" : "string",
- "enum" : [
- "in",
- "out",
- "group"
- ]
+ "typetext" : "<string>"
},
"enable" : {
+ "description" : "Flag to enable/disable a rule.",
"minimum" : 0,
+ "optional" : 1,
"type" : "integer",
- "optional" : 1
+ "typetext" : "<integer> (0 - N)"
},
- "action" : {
- "optional" : 0,
- "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,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 20
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "sport" : {
+ "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,
- "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" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "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.",
+ "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"
+ "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",
- "format" : "pve-fw-addr-spec"
+ "typetext" : "<string>"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "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" : 40
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
+ "type" : "string"
},
- "iface" : {
- "optional" : 1,
- "type" : "string",
- "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",
- "maxLength" : 20
- }
- },
- "additionalProperties" : 0
- },
- "name" : "create_rule"
- },
- "GET" : {
- "description" : "List rules.",
- "proxyto" : null,
- "name" : "get_rules",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.Config.Network"
]
]
},
+ "protected" : 1,
+ "proxyto" : null,
"returns" : {
- "type" : "array",
- "links" : [
- {
- "href" : "{pos}",
- "rel" : "child"
- }
- ],
- "items" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- }
- },
- "method" : "GET"
+ "type" : "null"
+ }
}
},
+ "leaf" : 0,
"path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
- "leaf" : 0
+ "text" : "rules"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
- "leaf" : 0,
"children" : [
{
- "text" : "{name}",
"info" : {
- "GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "object"
- },
- "description" : "Read alias.",
+ "DELETE" : {
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid"
+ "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" : {
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "read_alias",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.Config.Network"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
},
- "PUT" : {
+ "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.Config.Network"
+ "VM.Audit"
]
]
},
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "digest" : {
- "maxLength" : 40,
- "type" : "string",
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
"cidr" : {
"description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
"type" : "string",
- "format" : "IPorCIDR"
+ "typetext" : "<string>"
},
"comment" : {
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "rename" : {
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Rename an existing alias.",
- "minLength" : 2,
+ "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",
- "optional" : 1
+ "typetext" : "<string>"
},
"name" : {
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"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",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "update_alias",
- "protected" : 1,
- "description" : "Update IP or Network alias.",
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT"
- },
- "DELETE" : {
- "name" : "remove_alias",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "digest" : {
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "typetext" : "<string>"
},
- "name" : {
+ "rename" : {
+ "description" : "Rename an existing alias.",
"maxLength" : 64,
- "type" : "string",
"minLength" : 2,
+ "optional" : 1,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Alias name."
+ "type" : "string"
},
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
]
},
"protected" : 1,
- "description" : "Remove IP or Network alias.",
"returns" : {
"type" : "null"
- },
- "method" : "DELETE"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
- "leaf" : 1
+ "text" : "{name}"
}
],
- "text" : "aliases",
"info" : {
- "POST" : {
- "description" : "Create IP or Network Alias.",
- "protected" : 1,
+ "GET" : {
+ "description" : "List aliases",
+ "method" : "GET",
+ "name" : "get_aliases",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "cidr" : {
- "format" : "IPorCIDR",
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string"
- },
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
- },
- "name" : {
- "maxLength" : 64,
+ "format" : "pve-node",
"type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Alias name."
+ "typetext" : "<string>"
},
- "comment" : {
- "optional" : 1,
- "type" : "string"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "create_alias",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Config.Network"
+ "VM.Audit"
]
]
},
- "method" : "POST",
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "method" : "GET",
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
- "comment" : {
- "optional" : 1,
+ "cidr" : {
"type" : "string"
},
- "name" : {
+ "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.",
+ "maxLength" : 40,
"optional" : 0,
"type" : "string"
},
- "cidr" : {
+ "name" : {
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
"links" : [
{
"href" : "{name}",
"rel" : "child"
}
- ]
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "name" : "get_aliases",
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create IP or Network Alias.",
+ "method" : "POST",
+ "name" : "create_alias",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "minimum" : 1
+ "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" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "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)"
}
}
},
- "description" : "List aliases"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
+ "text" : "aliases"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
- "leaf" : 0,
"children" : [
{
- "leaf" : 0,
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "method" : "POST",
- "name" : "create_ip",
- "parameters" : {
- "properties" : {
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "name" : {
- "maxLength" : 64,
- "type" : "string",
- "minLength" : 2,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDRorAlias"
- },
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Add IP or Network to IPSet.",
- "protected" : 1
- },
- "DELETE" : {
- "method" : "DELETE",
- "returns" : {
- "type" : "null"
- },
- "description" : "Delete IPSet",
- "protected" : 1,
- "name" : "delete_ipset",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "name" : {
- "type" : "string",
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 64
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- }
- }
- }
- },
- "GET" : {
- "method" : "GET",
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{cidr}"
- }
- ],
- "items" : {
- "properties" : {
- "cidr" : {
- "type" : "string"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0,
- "type" : "string",
- "maxLength" : 40
- },
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- },
- "type" : "object"
- },
- "type" : "array"
- },
- "description" : "List IPSet content",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "name" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "minLength" : 2,
- "maxLength" : 64
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "get_ipset"
- }
- },
- "text" : "{name}",
"children" : [
{
"info" : {
"DELETE" : {
+ "description" : "Remove IP or Network from IPSet.",
"method" : "DELETE",
- "returns" : {
- "type" : "null"
- },
+ "name" : "remove_ip",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "name" : {
- "maxLength" : 64,
+ "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\\-\\_]+",
- "minLength" : 2
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"vmid" : {
- "minimum" : 1,
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string",
- "optional" : 1
- },
- "cidr" : {
- "format" : "IPorCIDRorAlias",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "remove_ip",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
- "description" : "Remove IP or Network from IPSet."
- },
- "PUT" : {
- "description" : "Update IP or Network settings",
- "protected" : 1,
- "name" : "update_ip",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "cidr" : {
- "format" : "IPorCIDRorAlias",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string",
- "optional" : 1,
- "maxLength" : 40
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- },
- "name" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "minLength" : 2,
- "type" : "string",
- "maxLength" : 64
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "PUT",
"returns" : {
"type" : "null"
}
},
"GET" : {
+ "description" : "Read IP or Network settings from IPSet.",
+ "method" : "GET",
+ "name" : "read_ip",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
"type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "typetext" : "<string>"
+ },
+ "name" : {
"description" : "IP set name.",
+ "maxLength" : 64,
"minLength" : 2,
- "maxLength" : 64
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "IPorCIDRorAlias"
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
]
]
},
- "name" : "read_ip",
- "description" : "Read IP or Network settings from IPSet.",
"protected" : 1,
- "method" : "GET",
"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"
+ }
+ }
},
- "text" : "{cidr}",
"leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}"
+ "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"
+ },
+ "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" : "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)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cidr}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "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)"
+ }
+ }
+ },
+ "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}"
}
],
- "text" : "ipset",
"info" : {
- "POST" : {
- "protected" : 1,
- "description" : "Create new IPSet",
+ "GET" : {
+ "description" : "List IPSets",
+ "method" : "GET",
+ "name" : "ipset_index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "maxLength" : 40
+ "typetext" : "<string>"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- },
- "name" : {
- "minLength" : 2,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string",
- "maxLength" : 64
- },
- "rename" : {
- "optional" : 1,
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "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" : {
- "type" : "string",
- "optional" : 1
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "create_ipset",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Config.Network"
+ "VM.Audit"
]
]
},
"returns" : {
- "type" : "null"
- },
- "method" : "POST"
- },
- "GET" : {
- "returns" : {
- "type" : "array",
"items" : {
"properties" : {
- "name" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "minLength" : 2,
- "type" : "string",
- "maxLength" : 64
- },
"comment" : {
"optional" : 1,
"type" : "string"
},
"digest" : {
- "optional" : 0,
- "type" : "string",
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
+ "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" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "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)"
+ }
+ }
},
- "method" : "GET",
- "description" : "List IPSets",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "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" : {
- "type" : "integer",
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "name" : "ipset_index"
- }
- }
- },
- {
- "text" : "options",
- "info" : {
- "PUT" : {
- "description" : "Set Firewall options.",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Config.Network"
+ "VM.Audit"
]
]
},
+ "proxyto" : "node",
"returns" : {
- "type" : "null"
- },
- "protected" : 1,
- "name" : "set_options",
- "parameters" : {
- "additionalProperties" : 0,
"properties" : {
- "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.",
- "type" : "boolean",
- "optional" : 1
+ "dhcp" : {
+ "description" : "Enable DHCP.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "enable" : {
+ "description" : "Enable/disable firewall rules.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "radv" : {
+ "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",
- "description" : "Allow sending Router Advertisement."
+ "type" : "boolean"
},
- "policy_out" : {
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
"enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
],
- "description" : "Output policy.",
"optional" : 1,
"type" : "string"
},
- "delete" : {
- "type" : "string",
- "optional" : 1,
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list"
- },
- "log_level_in" : {
- "description" : "Log level for incoming traffic.",
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
"enum" : [
"emerg",
"alert",
"optional" : 1,
"type" : "string"
},
- "dhcp" : {
- "description" : "Enable DHCP.",
+ "macfilter" : {
+ "description" : "Enable/disable MAC address filter.",
"optional" : 1,
"type" : "boolean"
},
"ndp" : {
+ "description" : "Enable NDP.",
"optional" : 1,
- "type" : "boolean",
- "description" : "Enable NDP."
+ "type" : "boolean"
},
"policy_in" : {
- "type" : "string",
- "optional" : 1,
"description" : "Input policy.",
"enum" : [
"ACCEPT",
"REJECT",
"DROP"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "macfilter" : {
+ "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",
- "description" : "Enable/disable MAC address filter."
+ "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",
- "maxLength" : 40
+ "typetext" : "<string>"
},
"enable" : {
"description" : "Enable/disable firewall rules.",
"optional" : 1,
- "type" : "boolean"
+ "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.",
"debug",
"nolog"
],
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- }
- },
- "method" : "PUT"
- },
- "GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "object",
- "properties" : {
- "policy_out" : {
+ "macfilter" : {
+ "description" : "Enable/disable MAC address filter.",
"optional" : 1,
- "type" : "string",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "description" : "Output policy."
- },
- "log_level_in" : {
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "description" : "Log level for incoming traffic.",
- "type" : "string",
- "optional" : 1
- },
- "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."
+ "typetext" : "<boolean>"
},
- "radv" : {
- "description" : "Allow sending Router Advertisement.",
+ "ndp" : {
+ "description" : "Enable NDP.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "macfilter" : {
- "description" : "Enable/disable MAC address filter.",
- "optional" : 1,
- "type" : "boolean"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"policy_in" : {
+ "description" : "Input policy.",
"enum" : [
"ACCEPT",
"REJECT",
"DROP"
],
- "description" : "Input policy.",
"optional" : 1,
"type" : "string"
},
- "ndp" : {
- "description" : "Enable NDP.",
- "type" : "boolean",
- "optional" : 1
- },
- "dhcp" : {
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
"optional" : 1,
- "type" : "boolean",
- "description" : "Enable DHCP."
+ "type" : "string"
},
- "enable" : {
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
"optional" : 1,
"type" : "boolean",
- "description" : "Enable/disable firewall rules."
- },
- "log_level_out" : {
- "description" : "Log level for outgoing traffic.",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "type" : "string",
- "optional" : 1
- }
- }
- },
- "name" : "get_options",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "typetext" : "<boolean>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.Config.Network"
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Get VM firewall options."
+ "returns" : {
+ "type" : "null"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
- "leaf" : 1
+ "text" : "options"
},
{
- "text" : "log",
"info" : {
"GET" : {
- "returns" : {
- "items" : {
- "properties" : {
- "t" : {
- "description" : "Line text",
- "type" : "string"
- },
- "n" : {
- "type" : "integer",
- "description" : "Line number"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- },
- "proxyto" : "node",
"description" : "Read firewall log",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
- },
"method" : "GET",
- "protected" : 1,
"name" : "log",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "start" : {
+ "limit" : {
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 0
+ "typetext" : "<integer> (0 - N)"
},
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "limit" : {
+ "start" : {
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 0
+ "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"
},
- "additionalProperties" : 0
+ "type" : "array"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
- "leaf" : 1
+ "text" : "log"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
- "leaf" : 1,
- "text" : "refs",
"info" : {
"GET" : {
"description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
+ "method" : "GET",
+ "name" : "refs",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"type" : {
"description" : "Only list references of specified type.",
"alias",
"ipset"
],
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "name" : "refs",
- "method" : "GET",
"returns" : {
"items" : {
"properties" : {
- "type" : {
- "enum" : [
- "alias",
- "ipset"
- ],
+ "comment" : {
+ "optional" : 1,
"type" : "string"
},
"name" : {
"type" : "string"
},
- "comment" : {
- "optional" : 1,
+ "type" : {
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
"type" : "string"
}
},
"type" : "array"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
+ "text" : "refs"
}
],
"info" : {
"GET" : {
+ "description" : "Directory index.",
"method" : "GET",
- "returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
- },
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"user" : "all"
},
- "name" : "index",
- "description" : "Directory index."
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall",
+ "text" : "firewall"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/rrd",
- "leaf" : 1,
- "text" : "rrd",
"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"
],
- "description" : "The RRD consolidation function",
"optional" : 1,
"type" : "string"
},
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "minimum" : 1
+ "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>"
},
"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"
},
- "ds" : {
- "description" : "The list of datasources you want to display.",
- "type" : "string",
- "format" : "pve-configid-list"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
]
]
},
- "description" : "Read VM RRD statistics (returns PNG)",
"protected" : 1,
"returns" : {
"properties" : {
}
},
"type" : "object"
- },
- "method" : "GET"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/rrd",
+ "text" : "rrd"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
"info" : {
"GET" : {
- "protected" : 1,
"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" : {
- "type" : "string",
+ "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"
},
"vmid" : {
- "type" : "integer",
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1
- },
- "cf" : {
- "description" : "The RRD consolidation function",
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "type" : "string",
- "optional" : 1
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
]
},
- "method" : "GET",
+ "protected" : 1,
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
- "properties" : {}
- }
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
"text" : "rrddata"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/config",
"info" : {
- "POST" : {
- "returns" : {
- "type" : "string",
- "optional" : 1
+ "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>"
+ },
+ "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",
- "VM.Config.CDROM",
- "VM.Config.CPU",
- "VM.Config.Memory",
- "VM.Config.Network",
- "VM.Config.HWType",
- "VM.Config.Options"
- ],
- "any",
- 1
+ "VM.Audit"
+ ]
]
},
"proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "digest" : {
+ "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
"description" : "Set virtual machine options (asynchrounous API).",
"method" : "POST",
+ "name" : "update_vm_async",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "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.",
+ "acpi" : {
+ "default" : 1,
+ "description" : "Enable/disable ACPI.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "agent" : {
"default" : 0,
- "maximum" : 128,
+ "description" : "Enable/disable Qemu GuestAgent.",
"optional" : 1,
- "type" : "number",
- "minimum" : 0
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "node" : {
- "description" : "The cluster node name.",
+ "args" : {
+ "description" : "Arbitrary arguments passed to kvm.",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-node"
+ "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"
},
- "force" : {
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
"optional" : 1,
"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.",
- "requires" : "delete"
+ "typetext" : "<boolean>"
},
- "kvm" : {
- "default" : 1,
+ "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" : "boolean",
- "description" : "Enable/disable KVM hardware virtualization."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 30)"
},
- "localtime" : {
- "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
"optional" : 1,
- "type" : "boolean"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "migrate_speed" : {
- "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
- "default" : 0,
+ "bios" : {
+ "default" : "seabios",
+ "description" : "Select BIOS implementation.",
+ "enum" : [
+ "seabios",
+ "ovmf"
+ ],
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "string"
},
- "startdate" : {
- "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
- "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'.",
+ "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>"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
"optional" : 1,
- "default" : "now",
- "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "sata[n]" : {
+ "cpu" : {
+ "description" : "Emulated CPU type.",
"format" : {
- "mbps" : {
- "format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
- },
- "cyls" : {
- "format_description" : "count",
- "optional" : 1,
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific cylinder count."
- },
- "bps_rd" : {
- "description" : "Maximum read speed speed in bytes per second.",
- "optional" : 1,
- "type" : "integer",
- "format_description" : "bps"
- },
- "trans" : {
- "format_description" : "none|lba|auto",
- "type" : "string",
- "optional" : 1,
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "description" : "Force disk geometry bios translation mode."
- },
- "volume" : {
- "alias" : "file"
- },
- "iops" : {
- "format_description" : "iops",
- "description" : "Maximum r/w I/O speed in operations per second.",
- "optional" : 1,
- "type" : "integer"
- },
- "file" : {
+ "cputype" : {
+ "default" : "kvm64",
"default_key" : 1,
- "format_description" : "volume",
- "format" : "pve-volume-id-or-qm-path",
- "type" : "string",
- "description" : "The drive's backing volume."
- },
- "mbps_wr" : {
- "optional" : 1,
- "type" : "number",
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "mbps_rd" : {
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
- },
- "backup" : {
- "format_description" : "on|off",
- "type" : "boolean",
- "optional" : 1,
- "description" : "Whether the drive should be included when making backups."
+ "description" : "Emulated CPU type.",
+ "enum" : [
+ "486",
+ "athlon",
+ "Broadwell",
+ "Broadwell-noTSX",
+ "Conroe",
+ "core2duo",
+ "coreduo",
+ "Haswell",
+ "Haswell-noTSX",
+ "host",
+ "IvyBridge",
+ "kvm32",
+ "kvm64",
+ "Nehalem",
+ "Opteron_G1",
+ "Opteron_G2",
+ "Opteron_G3",
+ "Opteron_G4",
+ "Opteron_G5",
+ "Penryn",
+ "pentium",
+ "pentium2",
+ "pentium3",
+ "phenom",
+ "qemu32",
+ "qemu64",
+ "SandyBridge",
+ "Westmere"
+ ],
+ "type" : "string"
},
- "iops_wr_max" : {
- "type" : "integer",
+ "hidden" : {
+ "default" : 0,
+ "description" : "Do not identify as a KVM virtual machine.",
"optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "format_description" : "iops"
- },
+ "type" : "boolean"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[cputype=]<enum> [,hidden=<1|0>]"
+ },
+ "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" : 500000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 500000)",
+ "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0."
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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>"
+ },
+ "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>"
+ },
+ "hostpci[n]" : {
+ "description" : "Map host PCI devices into guest.",
+ "format" : "pve-qm-hostpci",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,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" : {
- "format_description" : "native|threads",
"description" : "AIO type to use.",
"enum" : [
"native",
"optional" : 1,
"type" : "string"
},
- "werror" : {
- "format_description" : "enospc|ignore|report|stop",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "type" : "string",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "description" : "Write error action."
+ "type" : "boolean"
},
- "size" : {
- "format" : "disk-size",
- "type" : "string",
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
+ "type" : "integer"
},
- "iops_rd" : {
- "format_description" : "iops",
- "type" : "integer",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "integer"
},
- "mbps_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "number"
+ "type" : "integer"
+ },
+ "bps_rd_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",
- "type" : "integer",
"optional" : 1,
- "description" : "Maximum write speed speed in bytes per second."
+ "type" : "integer"
},
- "mbps_rd_max" : {
- "format_description" : "mbps",
+ "bps_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "number",
- "description" : "Maximum unthrottled read pool speed in megabytes per second."
+ "type" : "integer"
},
- "discard" : {
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
- "ignore",
- "on"
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "type" : "string",
"optional" : 1,
- "format_description" : "ignore|on"
- },
- "serial" : {
- "maxLength" : 60,
- "format" : "urlencoded",
- "format_description" : "serial",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "type" : "string",
- "optional" : 1
+ "type" : "string"
},
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "type" : "integer",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
- "format_description" : "count"
+ "type" : "integer"
},
- "bps" : {
- "description" : "Maximum r/w speed speed in bytes per second.",
- "type" : "integer",
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "format_description" : "bps"
+ "type" : "boolean"
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
"optional" : 1,
- "type" : "integer",
- "format_description" : "iops"
+ "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.",
"enum" : [
"raw",
"optional" : 1,
"type" : "string"
},
- "mbps_wr_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
- },
- "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"
},
- "secs" : {
- "format_description" : "count",
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific sector count."
+ "type" : "integer"
},
- "iops_wr" : {
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
"format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second.",
"optional" : 1,
"type" : "integer"
},
- "cache" : {
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "description" : "The drive's cache mode",
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
+ "type" : "integer"
},
- "rerror" : {
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
- "description" : "Read error action.",
- "type" : "string",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "ignore|report|stop"
+ "type" : "integer"
},
- "media" : {
- "format_description" : "cdrom|disk",
- "default" : "disk",
- "type" : "string",
+ "iops_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
- ]
+ "type" : "integer"
},
- "snapshot" : {
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "on|off"
+ "type" : "integer"
},
- "iops_max" : {
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops"
- }
- },
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
- "type" : "string",
- "optional" : 1
- },
- "tablet" : {
- "optional" : 1,
- "type" : "boolean",
- "default" : 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)."
- },
- "boot" : {
- "pattern" : "[acdn]{1,4}",
- "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
- "optional" : 1,
- "type" : "string",
- "default" : "cdn"
- },
- "numa[n]" : {
- "optional" : 1,
- "type" : "string",
- "description" : "numa topology",
- "format" : {
- "memory" : {
- "format_description" : "mb",
- "description" : "Amount of memory this numa node provides.",
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
"type" : "number"
},
- "cpus" : {
- "type" : "string",
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "description" : "CPUs accessing this numa node.",
- "format_description" : "id[-id];..."
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "hostnodes" : {
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "string",
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "description" : "host numa nodes to use",
- "format_description" : "id[-id];..."
+ "type" : "number"
},
- "policy" : {
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "string",
- "description" : "numa allocation policy.",
+ "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" : [
- "preferred",
- "bind",
- "interleave"
+ "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"
+ },
+ "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"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "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"
],
- "format_description" : "preferred|bind|interleave"
+ "optional" : 1,
+ "type" : "string"
}
- }
- },
- "tdf" : {
- "description" : "Enable/disable time drift fix.",
- "type" : "boolean",
+ },
"optional" : 1,
- "default" : 0
- },
- "autostart" : {
- "description" : "Automatic restart after crash (currently ignored).",
- "default" : 0,
- "type" : "boolean",
- "optional" : 1
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
},
- "ostype" : {
+ "keyboard" : {
+ "default" : "en-us",
+ "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.conf' configuration file.",
"enum" : [
- "other",
- "wxp",
- "w2k",
- "w2k3",
- "w2k8",
- "wvista",
- "win7",
- "win8",
- "l24",
- "l26",
- "solaris"
+ "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"
],
- "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,
"type" : "string"
},
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
+ "kvm" : {
+ "default" : 1,
+ "description" : "Enable/disable KVM hardware virtualization.",
"optional" : 1,
- "description" : "Reference to unused volumes."
- },
- "template" : {
- "description" : "Enable/disable Template.",
- "default" : 0,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "shares" : {
- "default" : 1000,
- "maximum" : 50000,
- "type" : "integer",
+ "localtime" : {
+ "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
"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
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "bios" : {
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
"enum" : [
- "seabios",
- "ovmf"
+ "migrate",
+ "backup",
+ "snapshot",
+ "rollback"
],
- "description" : "Select BIOS implementation.",
"optional" : 1,
- "type" : "string",
- "default" : "seabios"
+ "type" : "string"
},
- "protection" : {
- "default" : 0,
- "type" : "boolean",
+ "machine" : {
+ "description" : "Specific the Qemu machine type.",
+ "maxLength" : 40,
"optional" : 1,
- "description" : "Sets the protection flag of the VM. This will prevent the remove operation."
+ "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
+ "type" : "string"
},
"memory" : {
- "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
"default" : 512,
- "type" : "integer",
+ "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,
- "minimum" : 16
+ "type" : "integer",
+ "typetext" : "<integer> (16 - N)"
},
- "args" : {
- "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
- "type" : "string",
- "optional" : 1
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
},
- "background_delay" : {
- "minimum" : 1,
- "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
- "maximum" : 30,
+ "migrate_speed" : {
+ "default" : 0,
+ "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+ "minimum" : 0,
+ "optional" : 1,
"type" : "integer",
- "optional" : 1
+ "typetext" : "<integer> (0 - N)"
},
- "cpu" : {
- "description" : "Emulated CPU type.",
- "type" : "string",
- "optional" : 1,
- "format" : {
- "cputype" : {
- "description" : "Emulated CPU type.",
+ "name" : {
+ "description" : "Set a name for the VM. Only used on the configuration web interface.",
+ "format" : "dns-name",
+ "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,
+ "type" : "string"
+ },
+ "e1000" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82540em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82544gc" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82545em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "firewall" : {
+ "description" : "Whether this interface should be protected by the firewall.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "i82551" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82557b" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82559er" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "link_down" : {
+ "description" : "Whether this interface should be disconnected (like pulling the plug).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "macaddr" : {
+ "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "pattern" : "(?^i:[0-9a-f]{2}(?::[0-9a-f]{2}){5})",
+ "type" : "string"
+ },
+ "model" : {
+ "default_key" : 1,
+ "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
"enum" : [
- "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"
+ "rtl8139",
+ "ne2k_pci",
+ "e1000",
+ "pcnet",
+ "virtio",
+ "ne2k_isa",
+ "i82551",
+ "i82557b",
+ "i82559er",
+ "vmxnet3",
+ "e1000-82540em",
+ "e1000-82544gc",
+ "e1000-82545em"
],
- "default" : "kvm64",
- "type" : "string",
- "format_description" : "cputype",
- "default_key" : 1
+ "type" : "string"
},
- "hidden" : {
- "description" : "Do not identify as a KVM virtual machine.",
- "default" : 0,
+ "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" : "boolean"
+ "type" : "integer"
+ },
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number"
+ },
+ "rtl8139" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "tag" : {
+ "description" : "VLAN tag to apply to packets on this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "trunks" : {
+ "description" : "VLAN trunks to pass through this interface.",
+ "format_description" : "vlanid[;vlanid...]",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "virtio" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "vmxnet3" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
}
- }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[model=]<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>]"
},
- "scsihw" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "numa" : {
+ "default" : 0,
+ "description" : "Enable/disable NUMA.",
"optional" : 1,
- "default" : "lsi",
- "enum" : [
- "lsi",
- "lsi53c810",
- "virtio-scsi-pci",
- "virtio-scsi-single",
- "megasas",
- "pvscsi"
- ],
- "description" : "scsi controller model"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "usb[n]" : {
+ "numa[n]" : {
+ "description" : "NUMA topology.",
"format" : {
- "usb3" : {
- "format_description" : "yes|no",
- "description" : "Specifies whether if given host option is a USB3 device or port",
+ "cpus" : {
+ "description" : "CPUs accessing this NUMA node.",
+ "format_description" : "id[-id];...",
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "hostnodes" : {
+ "description" : "Host NUMA nodes to use.",
+ "format_description" : "id[-id];...",
"optional" : 1,
- "type" : "boolean"
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
},
- "host" : {
- "description" : "The Host USB device or port or the value spice",
- "type" : "string",
- "format_description" : "HOSTUSBDEVICE|spice",
- "format" : "pve-qm-usb-device",
- "default_key" : 1
+ "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"
}
},
- "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,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
},
- "cdrom" : {
- "description" : "This is an alias for option -ide2",
+ "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" : [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "optional" : 1,
"type" : "string",
+ "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+ },
+ "parallel[n]" : {
+ "description" : "Map host parallel devices (n is 0 to 2).",
"optional" : 1,
- "format" : "pve-qm-drive",
- "typetext" : "volume"
+ "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"
},
- "skiplock" : {
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "reboot" : {
+ "default" : 1,
+ "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
"optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "net[n]" : {
- "format" : "pve-qm-net",
- "type" : "string",
+ "revert" : {
+ "description" : "Revert a pending change.",
+ "format" : "pve-configid-list",
"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" : "string",
+ "typetext" : "<string>"
},
- "scsi[n]" : {
+ "sata[n]" : {
+ "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
"format" : {
- "media" : {
- "format_description" : "cdrom|disk",
+ "aio" : {
+ "description" : "AIO type to use.",
"enum" : [
- "cdrom",
- "disk"
+ "native",
+ "threads"
],
- "description" : "The drive's media type.",
- "type" : "string",
"optional" : 1,
- "default" : "disk"
+ "type" : "string"
},
- "iothread" : {
- "format_description" : "off|on",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "type" : "boolean",
- "description" : "Whether to use iothreads for this drive"
+ "type" : "boolean"
},
- "cache" : {
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "string",
+ "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" : {
+ "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" : {
+ "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"
],
- "description" : "The drive's cache mode",
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
- },
- "secs" : {
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "type" : "integer",
"optional" : 1,
- "format_description" : "count"
+ "type" : "string"
},
- "iops_wr" : {
- "description" : "Maximum write I/O speed in operations per second.",
- "type" : "integer",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
- "format_description" : "iops"
+ "type" : "integer"
},
"detect_zeroes" : {
"description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean",
- "optional" : 1
- },
- "iops_max" : {
- "format_description" : "iops",
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second."
- },
- "snapshot" : {
"optional" : 1,
- "type" : "boolean",
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off"
+ "type" : "boolean"
},
- "bps_wr" : {
- "optional" : 1,
- "type" : "integer",
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps"
- },
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "type" : "number",
- "optional" : 1,
- "format_description" : "mbps"
- },
- "iops_rd" : {
- "format_description" : "iops",
- "type" : "integer",
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
"optional" : 1,
- "description" : "Maximum read I/O speed in operations per second."
- },
- "size" : {
- "format" : "disk-size",
- "description" : "Disk size. This is purely informational and has no effect.",
- "type" : "string",
- "optional" : 1
+ "type" : "string"
},
- "iops_rd_max" : {
- "format_description" : "iops",
- "optional" : 1,
- "type" : "integer",
- "description" : "Maximum unthrottled read I/O pool speed in operations per second."
+ "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",
- "optional" : 1,
+ "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"
- },
- "mbps_wr_max" : {
- "format_description" : "mbps",
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second."
- },
- "bps" : {
- "description" : "Maximum r/w speed speed in bytes per second.",
"optional" : 1,
- "type" : "integer",
- "format_description" : "bps"
+ "type" : "string"
},
"heads" : {
- "format_description" : "count",
"description" : "Force the drive's physical geometry to have a specific head count.",
"optional" : 1,
"type" : "integer"
},
- "serial" : {
- "type" : "string",
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
- "maxLength" : 60,
- "format" : "urlencoded"
+ "type" : "integer"
},
- "discard" : {
- "enum" : [
- "ignore",
- "on"
- ],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "string",
- "format_description" : "ignore|on"
+ "type" : "integer"
},
- "mbps_rd_max" : {
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number",
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "integer"
},
- "mbps_rd" : {
- "type" : "number",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "integer"
},
- "mbps_wr" : {
- "format_description" : "mbps",
+ "iops_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "number",
- "description" : "Maximum write speed speed in megabytes per second."
- },
- "file" : {
- "format" : "pve-volume-id-or-qm-path",
- "format_description" : "volume",
- "default_key" : 1,
- "description" : "The drive's backing volume.",
- "type" : "string"
+ "type" : "integer"
},
- "iops" : {
- "type" : "integer",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool 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"
},
- "werror" : {
- "format_description" : "enospc|ignore|report|stop",
- "description" : "Write error action.",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string",
- "optional" : 1
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
},
- "aio" : {
- "format_description" : "native|threads",
- "enum" : [
- "native",
- "threads"
- ],
- "description" : "AIO type to use.",
+ "iops_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string"
+ "type" : "integer"
},
"iops_wr_max" : {
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "type" : "integer",
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "iops"
+ "type" : "integer"
},
- "backup" : {
- "format_description" : "on|off",
- "type" : "boolean",
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Whether the drive should be included when making backups."
+ "type" : "number"
},
- "bps_rd" : {
- "type" : "integer",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "number"
},
- "queues" : {
- "minimum" : 2,
- "format_description" : "nbqueues",
- "type" : "integer",
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Number of queues."
+ "type" : "number"
},
- "cyls" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "integer"
+ "type" : "number"
},
- "mbps" : {
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
"format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
+ "optional" : 1,
+ "type" : "number"
},
- "volume" : {
- "alias" : "file"
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "trans" : {
- "format_description" : "none|lba|auto",
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
"optional" : 1,
- "type" : "string",
- "description" : "Force disk geometry bios translation mode.",
+ "type" : "string"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
"enum" : [
- "none",
- "lba",
- "auto"
- ]
- }
- },
- "type" : "string",
- "optional" : 1,
- "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13)."
- },
- "virtio[n]" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
- "format" : {
- "cyls" : {
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "type" : "integer",
- "format_description" : "count"
+ "type" : "string"
},
- "mbps" : {
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "type" : "number",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "integer"
},
- "bps_rd" : {
- "description" : "Maximum read 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,
- "type" : "integer",
- "format_description" : "bps"
+ "type" : "string"
},
- "trans" : {
- "format_description" : "none|lba|auto",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "type" : "string",
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
- "description" : "Force disk geometry bios translation mode."
+ "optional" : 1,
+ "type" : "string"
},
"volume" : {
"alias" : "file"
},
- "file" : {
- "default_key" : 1,
- "format" : "pve-volume-id-or-qm-path",
- "format_description" : "volume",
- "type" : "string",
- "description" : "The drive's backing volume."
- },
- "iops" : {
- "format_description" : "iops",
- "description" : "Maximum r/w I/O speed in operations per second.",
- "type" : "integer",
- "optional" : 1
- },
- "mbps_rd" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "mbps_wr" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "iops_wr_max" : {
- "format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "type" : "integer",
- "optional" : 1
- },
- "backup" : {
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off"
- },
+ "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_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+ },
+ "scsi[n]" : {
+ "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+ "format" : {
"aio" : {
- "type" : "string",
- "optional" : 1,
"description" : "AIO type to use.",
"enum" : [
"native",
"threads"
],
- "format_description" : "native|threads"
+ "optional" : 1,
+ "type" : "string"
},
- "werror" : {
- "type" : "string",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "description" : "Write error action.",
- "format_description" : "enospc|ignore|report|stop"
- },
- "iops_rd" : {
- "description" : "Maximum read I/O speed in operations per second.",
- "optional" : 1,
- "type" : "integer",
- "format_description" : "iops"
+ "type" : "boolean"
},
- "size" : {
- "type" : "string",
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect.",
- "format" : "disk-size"
+ "type" : "integer"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "type" : "number",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "integer"
},
- "bps_wr" : {
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
"format_description" : "bps",
- "type" : "integer",
"optional" : 1,
- "description" : "Maximum write speed speed in bytes per second."
+ "type" : "integer"
},
- "discard" : {
- "enum" : [
- "ignore",
- "on"
- ],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "bps_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "format_description" : "ignore|on"
+ "type" : "integer"
},
- "mbps_rd_max" : {
- "type" : "number",
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "integer"
},
- "heads" : {
- "format_description" : "count",
- "type" : "integer",
+ "bps_wr_length" : {
+ "description" : "Maximum length of write 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."
+ "type" : "integer"
},
- "serial" : {
- "format_description" : "serial",
- "format" : "urlencoded",
- "maxLength" : 60,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
"optional" : 1,
"type" : "string"
},
- "iops_rd_max" : {
- "type" : "integer",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "integer"
},
- "mbps_wr_max" : {
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "type" : "number",
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "boolean"
},
- "bps" : {
- "format_description" : "bps",
- "type" : "integer",
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
"optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second."
+ "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",
- "type" : "string",
- "optional" : 1,
+ "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,
+ "type" : "string"
},
- "secs" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
"optional" : 1,
"type" : "integer"
},
- "iops_wr" : {
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
"format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second.",
- "type" : "integer",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "detect_zeroes" : {
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "type" : "integer"
},
- "rerror" : {
- "description" : "Read error action.",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "format_description" : "ignore|report|stop"
+ "type" : "integer"
},
- "cache" : {
- "description" : "The drive's cache mode",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "type" : "string",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "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" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
+ "type" : "integer"
},
"iothread" : {
- "format_description" : "off|on",
"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"
],
- "description" : "The drive's media type.",
- "type" : "string",
"optional" : 1,
- "default" : "disk",
- "format_description" : "cdrom|disk"
+ "type" : "string"
+ },
+ "queues" : {
+ "description" : "Number of queues.",
+ "minimum" : 2,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
},
"snapshot" : {
"description" : "Whether the drive should be included when making snapshots.",
"optional" : 1,
- "type" : "boolean",
- "format_description" : "on|off"
+ "type" : "boolean"
},
- "iops_max" : {
- "format_description" : "iops",
- "type" : "integer",
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second."
+ "type" : "string"
}
- }
- },
- "vga" : {
+ },
"optional" : 1,
"type" : "string",
- "enum" : [
- "std",
- "cirrus",
- "vmware",
- "qxl",
- "serial0",
- "serial1",
- "serial2",
- "serial3",
- "qxl2",
- "qxl3",
- "qxl4"
- ],
- "description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal."
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,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>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
},
- "balloon" : {
- "optional" : 1,
- "type" : "integer",
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
- "minimum" : 0
- },
- "smp" : {
- "description" : "The number of CPUs. Please use option -sockets instead.",
- "default" : 1,
+ "scsihw" : {
+ "default" : "lsi",
+ "description" : "SCSI controller model",
+ "enum" : [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
"optional" : 1,
- "type" : "integer",
- "minimum" : 1
+ "type" : "string"
},
- "machine" : {
- "description" : "Specific the Qemu machine type.",
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3)",
"optional" : 1,
+ "pattern" : "(/dev/.+|socket)",
"type" : "string",
- "maxLength" : 40
+ "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"
},
- "delete" : {
- "format" : "pve-configid-list",
+ "shares" : {
+ "default" : 1000,
+ "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning",
+ "maximum" : 50000,
+ "minimum" : 0,
"optional" : 1,
- "type" : "string",
- "description" : "A list of settings you want to delete."
- },
- "cores" : {
- "minimum" : 1,
- "description" : "The number of cores per socket.",
"type" : "integer",
- "optional" : 1,
- "default" : 1
- },
- "name" : {
- "description" : "Set a name for the VM. Only used on the configuration web interface.",
- "type" : "string",
- "optional" : 1,
- "format" : "dns-name"
+ "typetext" : "<integer> (0 - 50000)"
},
- "agent" : {
- "default" : 0,
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
"type" : "boolean",
- "description" : "Enable/disable Qemu GuestAgent."
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "startup" : {
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 256,
"optional" : 1,
"type" : "string",
- "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+] ",
- "format" : "pve-startup-order"
+ "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
},
- "onboot" : {
- "type" : "boolean",
+ "smp" : {
+ "default" : 1,
+ "description" : "The number of CPUs. Please use option -sockets instead.",
+ "minimum" : 1,
"optional" : 1,
- "default" : 0,
- "description" : "Specifies whether a VM will be started during system bootup."
- },
- "freeze" : {
- "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
- "type" : "boolean",
- "optional" : 1
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
"sockets" : {
- "type" : "integer",
- "optional" : 1,
"default" : 1,
"description" : "The number of CPU sockets.",
- "minimum" : 1
- },
- "vcpus" : {
- "description" : "Number of hotplugged vcpus.",
- "default" : 0,
+ "minimum" : 1,
"optional" : 1,
"type" : "integer",
- "minimum" : 1
+ "typetext" : "<integer> (1 - N)"
},
- "serial[n]" : {
- "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" : "(/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"
+ "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)"
},
- "description" : {
+ "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,
- "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file."
+ "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)."
},
- "acpi" : {
- "description" : "Enable/disable ACPI.",
+ "tdf" : {
+ "default" : 0,
+ "description" : "Enable/disable time drift fix.",
"optional" : 1,
"type" : "boolean",
- "default" : 1
+ "typetext" : "<boolean>"
},
- "migrate_downtime" : {
- "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
- "type" : "number",
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
"optional" : 1,
- "default" : 0.1,
- "minimum" : 0
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "parallel[n]" : {
- "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+",
+ "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",
- "optional" : 1
+ "typetext" : "<string>"
},
- "hotplug" : {
- "format" : "pve-hotplug-features",
- "default" : "network,disk,usb",
- "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"
+ },
+ "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,
- "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",
+ "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
},
- "watchdog" : {
+ "vcpus" : {
+ "default" : 0,
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "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)",
- "format" : "pve-qm-watchdog"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "ide[n]" : {
+ "vga" : {
+ "description" : "Select the VGA type.",
+ "enum" : [
+ "std",
+ "cirrus",
+ "vmware",
+ "qxl",
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3",
+ "qxl2",
+ "qxl3",
+ "qxl4"
+ ],
"optional" : 1,
"type" : "string",
- "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
+ "verbose_description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal."
+ },
+ "virtio[n]" : {
+ "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
"format" : {
- "volume" : {
- "alias" : "file"
- },
- "trans" : {
- "format_description" : "none|lba|auto",
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "description" : "Force disk geometry bios translation mode.",
- "optional" : 1,
- "type" : "string"
- },
- "bps_rd" : {
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "type" : "integer",
- "optional" : 1
- },
- "cyls" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "type" : "integer",
- "optional" : 1
- },
- "mbps" : {
- "format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
- },
- "werror" : {
- "format_description" : "enospc|ignore|report|stop",
- "optional" : 1,
- "type" : "string",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "description" : "Write error action."
- },
"aio" : {
- "optional" : 1,
- "type" : "string",
"description" : "AIO type to use.",
"enum" : [
"native",
"threads"
],
- "format_description" : "native|threads"
- },
- "iops_wr_max" : {
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
"optional" : 1,
- "type" : "integer",
- "format_description" : "iops"
+ "type" : "string"
},
"backup" : {
- "format_description" : "on|off",
- "type" : "boolean",
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "description" : "Whether the drive should be included when making backups."
+ "type" : "boolean"
},
- "mbps_rd" : {
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "mbps_wr" : {
- "format_description" : "mbps",
- "description" : "Maximum write speed speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "model" : {
- "type" : "string",
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
- "format_description" : "model",
- "format" : "urlencoded",
- "maxLength" : 120
+ "type" : "integer"
},
- "file" : {
- "type" : "string",
- "description" : "The drive's backing volume.",
- "default_key" : 1,
- "format" : "pve-volume-id-or-qm-path",
- "format_description" : "volume"
+ "bps_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "iops" : {
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "integer",
- "format_description" : "iops"
+ "type" : "integer"
},
- "mbps_wr_max" : {
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "bps_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "number",
- "format_description" : "mbps"
+ "type" : "integer"
},
- "format" : {
- "format_description" : "drive format",
- "description" : "The drive's backing file's data format.",
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
"optional" : 1,
"type" : "string"
},
- "bps" : {
- "type" : "integer",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "integer"
},
- "iops_rd_max" : {
- "format_description" : "iops",
- "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,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second."
+ "type" : "string"
},
"heads" : {
- "format_description" : "count",
"description" : "Force the drive's physical geometry to have a specific head count.",
"optional" : 1,
"type" : "integer"
},
- "serial" : {
- "format_description" : "serial",
- "format" : "urlencoded",
- "maxLength" : 60,
- "type" : "string",
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long."
+ "type" : "integer"
},
- "discard" : {
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "enum" : [
- "ignore",
- "on"
- ],
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "string",
- "format_description" : "ignore|on"
+ "type" : "integer"
},
- "mbps_rd_max" : {
- "format_description" : "mbps",
+ "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" : "number",
- "description" : "Maximum unthrottled read pool speed in megabytes per second."
+ "type" : "integer"
},
- "bps_wr" : {
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
+ "iops_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
"type" : "integer"
},
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "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" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "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",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
+ "optional" : 1,
+ "type" : "number"
},
- "iops_rd" : {
- "description" : "Maximum read I/O speed in operations per second.",
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "integer",
- "format_description" : "iops"
+ "type" : "number"
},
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
- "type" : "string",
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format" : "disk-size"
+ "type" : "number"
},
- "iops_max" : {
- "type" : "integer",
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "number"
},
- "snapshot" : {
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "on|off"
+ "type" : "number"
},
"media" : {
- "format_description" : "cdrom|disk",
- "type" : "string",
- "optional" : 1,
"default" : "disk",
+ "description" : "The drive's media type.",
"enum" : [
"cdrom",
"disk"
],
- "description" : "The drive's media type."
+ "optional" : 1,
+ "type" : "string"
},
"rerror" : {
+ "description" : "Read error action.",
"enum" : [
"ignore",
"report",
"stop"
],
- "description" : "Read error action.",
- "type" : "string",
"optional" : 1,
- "format_description" : "ignore|report|stop"
+ "type" : "string"
},
- "cache" : {
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
+ "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"
},
- "iops_wr" : {
- "type" : "integer",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "string"
},
- "secs" : {
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
"optional" : 1,
- "type" : "integer",
- "format_description" : "count"
+ "type" : "boolean"
},
- "detect_zeroes" : {
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
"optional" : 1,
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
- }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,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>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
},
- "lock" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "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,
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ],
- "description" : "Lock/unlock the VM."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "hostpci[n]" : {
- "format" : "pve-qm-hostpci",
+ "agent" : {
+ "default" : 0,
+ "description" : "Enable/disable Qemu GuestAgent.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "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,
- "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" : "boolean",
+ "typetext" : "<boolean>"
},
- "keyboard" : {
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
- "enum" : [
- "da",
- "sv",
- "en-gb",
- "lt",
- "is",
- "mk",
- "pl",
- "hu",
- "fr-be",
- "pt-br",
- "de-ch",
- "nl",
- "no",
- "tr",
- "sl",
- "de",
- "fr-ca",
- "ja",
- "es",
- "it",
- "pt",
- "fr",
- "en-us",
- "fi",
- "fr-ch"
+ "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"
],
- "default" : "en-us",
- "type" : "string",
- "optional" : 1
+ "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" : {
- "type" : "string",
+ "description" : "Enable booting from specified disk.",
+ "format" : "pve-qm-bootdisk",
"optional" : 1,
"pattern" : "(ide|sata|scsi|virtio)\\d+",
- "description" : "Enable booting from specified disk.",
- "format" : "pve-qm-bootdisk"
+ "type" : "string"
},
- "revert" : {
- "description" : "Revert a pending change.",
+ "cdrom" : {
+ "description" : "This is an alias for option -ide2",
+ "format" : "pve-qm-ide",
"optional" : 1,
"type" : "string",
- "format" : "pve-configid-list"
+ "typetext" : "<volume>"
},
- "reboot" : {
- "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+ "cores" : {
"default" : 1,
- "type" : "boolean",
- "optional" : 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-noTSX",
+ "Conroe",
+ "core2duo",
+ "coreduo",
+ "Haswell",
+ "Haswell-noTSX",
+ "host",
+ "IvyBridge",
+ "kvm32",
+ "kvm64",
+ "Nehalem",
+ "Opteron_G1",
+ "Opteron_G2",
+ "Opteron_G3",
+ "Opteron_G4",
+ "Opteron_G5",
+ "Penryn",
+ "pentium",
+ "pentium2",
+ "pentium3",
+ "phenom",
+ "qemu32",
+ "qemu64",
+ "SandyBridge",
+ "Westmere"
+ ],
+ "type" : "string"
+ },
+ "hidden" : {
+ "default" : 0,
+ "description" : "Do not identify as a KVM virtual machine.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[cputype=]<enum> [,hidden=<1|0>]"
+ },
+ "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" : {
- "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" : 1024,
+ "description" : "CPU weight for a VM.",
"maximum" : 500000,
- "default" : 1000,
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 0
+ "typetext" : "<integer> (0 - 500000)",
+ "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0."
},
- "numa" : {
- "description" : "Enable/disable NUMA.",
- "default" : 0,
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"optional" : 1,
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "smbios1" : {
- "description" : "Specify SMBIOS type 1 fields.",
+ "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",
- "format" : "pve-qm-smbios1",
- "maxLength" : 256
+ "typetext" : "<string>"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- }
- },
- "additionalProperties" : 0
- },
- "name" : "update_vm_async",
- "protected" : 1
- },
- "GET" : {
- "returns" : {
- "type" : "object",
- "properties" : {
"digest" : {
- "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
- "type" : "string"
- }
- }
- },
- "method" : "GET",
- "name" : "vm_config",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
+ "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-node"
+ "typetext" : "<string>"
},
- "current" : {
- "description" : "Get current values (instead of pending values).",
+ "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",
- "default" : 0
- },
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "proxyto" : "node",
- "description" : "Get current virtual machine configuration. This does not include pending configuration changes (see 'pending' API)."
- },
- "PUT" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "numa" : {
- "description" : "Enable/disable NUMA.",
- "type" : "boolean",
- "optional" : 1,
- "default" : 0
+ "typetext" : "<boolean>"
},
- "cpuunits" : {
- "type" : "integer",
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
"optional" : 1,
- "maximum" : 500000,
- "default" : 1000,
- "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
- },
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "minimum" : 1
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "smbios1" : {
- "format" : "pve-qm-smbios1",
- "maxLength" : 256,
- "type" : "string",
+ "hostpci[n]" : {
+ "description" : "Map host PCI devices into guest.",
+ "format" : "pve-qm-hostpci",
"optional" : 1,
- "description" : "Specify SMBIOS type 1 fields."
- },
- "bootdisk" : {
- "format" : "pve-qm-bootdisk",
- "description" : "Enable booting from specified disk.",
- "pattern" : "(ide|sata|scsi|virtio)\\d+",
"type" : "string",
- "optional" : 1
- },
- "revert" : {
- "format" : "pve-configid-list",
- "description" : "Revert a pending change.",
- "optional" : 1,
- "type" : "string"
+ "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,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"
},
- "reboot" : {
- "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
- "default" : 1,
+ "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" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "lock" : {
+ "hugepages" : {
+ "description" : "Enable/disable hugepages memory.",
"enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
+ "any",
+ "2",
+ "1024"
],
- "description" : "Lock/unlock the VM.",
- "optional" : 1,
- "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",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-qm-hostpci"
- },
- "keyboard" : {
- "enum" : [
- "da",
- "sv",
- "en-gb",
- "lt",
- "is",
- "mk",
- "pl",
- "hu",
- "fr-be",
- "pt-br",
- "de-ch",
- "nl",
- "no",
- "tr",
- "sl",
- "de",
- "fr-ca",
- "ja",
- "es",
- "it",
- "pt",
- "fr",
- "en-us",
- "fi",
- "fr-ch"
- ],
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
- "optional" : 1,
- "type" : "string",
- "default" : "en-us"
- },
- "hotplug" : {
- "format" : "pve-hotplug-features",
- "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'.",
- "default" : "network,disk,usb",
"optional" : 1,
"type" : "string"
},
"ide[n]" : {
- "type" : "string",
- "optional" : 1,
"description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
"format" : {
- "mbps_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
"optional" : 1,
- "type" : "number"
+ "type" : "string"
},
- "size" : {
- "format" : "disk-size",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "type" : "string",
- "description" : "Disk size. This is purely informational and has no effect."
+ "type" : "boolean"
},
- "iops_rd" : {
- "format_description" : "iops",
- "type" : "integer",
+ "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" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "integer"
},
"bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
"format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
- "type" : "integer",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "mbps_rd_max" : {
+ "bps_wr_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" : "number",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "boolean"
},
"discard" : {
- "format_description" : "ignore|on",
"description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"enum" : [
"ignore",
"on"
],
- "type" : "string",
- "optional" : 1
- },
- "bps" : {
- "type" : "integer",
"optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "string"
},
- "mbps_wr_max" : {
- "format_description" : "mbps",
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second."
+ "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.",
"enum" : [
"raw",
"cow",
"vmdk",
"cloop"
],
- "description" : "The drive's backing file's data format.",
- "type" : "string",
- "optional" : 1
- },
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "type" : "integer",
- "optional" : 1,
- "format_description" : "iops"
- },
- "serial" : {
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
"optional" : 1,
- "type" : "string",
- "format" : "urlencoded",
- "maxLength" : 60,
- "format_description" : "serial"
+ "type" : "string"
},
"heads" : {
- "format_description" : "count",
+ "description" : "Force the drive's physical geometry to have a specific head count.",
"optional" : 1,
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific head count."
- },
- "cache" : {
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "description" : "The drive's cache mode",
- "type" : "string",
- "optional" : 1
+ "type" : "integer"
},
- "rerror" : {
- "format_description" : "ignore|report|stop",
- "description" : "Read error action.",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "string"
+ "type" : "integer"
},
- "detect_zeroes" : {
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "type" : "integer"
},
- "iops_wr" : {
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "integer"
},
- "secs" : {
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "type" : "integer",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "count"
+ "type" : "integer"
},
- "media" : {
- "format_description" : "cdrom|disk",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "description" : "The drive's media type.",
+ "iops_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "default" : "disk"
+ "type" : "integer"
},
- "iops_max" : {
- "type" : "integer",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read 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"
- },
- "snapshot" : {
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean",
- "optional" : 1
+ "type" : "integer"
},
- "mbps" : {
- "format_description" : "mbps",
- "type" : "number",
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second."
+ "type" : "integer"
},
- "cyls" : {
+ "iops_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "format_description" : "count"
+ "type" : "integer"
},
- "bps_rd" : {
- "type" : "integer",
+ "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"
- },
- "volume" : {
- "alias" : "file"
+ "type" : "integer"
},
- "trans" : {
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "string",
- "description" : "Force disk geometry bios translation mode.",
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "format_description" : "none|lba|auto"
+ "type" : "number"
},
- "model" : {
- "format" : "urlencoded",
- "maxLength" : 120,
- "format_description" : "model",
- "type" : "string",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "The drive's reported model name, url-encoded, up to 40 bytes long."
+ "type" : "number"
},
- "iops" : {
- "format_description" : "iops",
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum r/w I/O speed in operations per second."
+ "type" : "number"
},
- "file" : {
- "description" : "The drive's backing volume.",
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "format_description" : "volume",
- "default_key" : 1
+ "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",
- "description" : "Maximum write speed speed in megabytes per second."
+ "type" : "number"
},
- "mbps_rd" : {
- "description" : "Maximum read speed speed in megabytes per second.",
- "type" : "number",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "number"
},
- "backup" : {
- "format_description" : "on|off",
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
"optional" : 1,
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups."
+ "type" : "string"
},
- "iops_wr_max" : {
- "format_description" : "iops",
- "type" : "integer",
+ "model" : {
+ "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "model",
+ "maxLength" : 120,
"optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second."
+ "type" : "string"
},
- "werror" : {
+ "rerror" : {
+ "description" : "Read error action.",
"enum" : [
- "enospc",
"ignore",
"report",
"stop"
],
- "description" : "Write error action.",
- "type" : "string",
"optional" : 1,
- "format_description" : "enospc|ignore|report|stop"
+ "type" : "string"
},
- "aio" : {
- "format_description" : "native|threads",
- "enum" : [
- "native",
- "threads"
- ],
- "description" : "AIO type to use.",
- "type" : "string",
- "optional" : 1
+ "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"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "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"
}
- }
- },
- "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)",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-qm-watchdog"
- },
- "acpi" : {
- "default" : 1,
- "optional" : 1,
- "type" : "boolean",
- "description" : "Enable/disable ACPI."
- },
- "migrate_downtime" : {
- "minimum" : 0,
- "type" : "number",
+ },
"optional" : 1,
- "default" : 0.1,
- "description" : "Set maximum tolerated downtime (in seconds) for migrations."
- },
- "parallel[n]" : {
- "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",
- "optional" : 1
- },
- "description" : {
- "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
"type" : "string",
- "optional" : 1
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
},
- "vcpus" : {
- "default" : 0,
+ "keyboard" : {
+ "default" : "en-us",
+ "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.conf' configuration file.",
+ "enum" : [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
"optional" : 1,
- "type" : "integer",
- "description" : "Number of hotplugged vcpus.",
- "minimum" : 1
+ "type" : "string"
},
- "serial[n]" : {
+ "kvm" : {
+ "default" : 1,
+ "description" : "Enable/disable KVM hardware virtualization.",
"optional" : 1,
- "type" : "string",
- "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",
- "pattern" : "(/dev/.+|socket)"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string",
+ "localtime" : {
+ "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
"optional" : 1,
- "maxLength" : 40
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "startup" : {
- "type" : "string",
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "migrate",
+ "backup",
+ "snapshot",
+ "rollback"
+ ],
"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+] ",
- "format" : "pve-startup-order"
+ "type" : "string"
},
- "agent" : {
- "type" : "boolean",
+ "machine" : {
+ "description" : "Specific the Qemu machine type.",
+ "maxLength" : 40,
"optional" : 1,
- "default" : 0,
- "description" : "Enable/disable Qemu GuestAgent."
+ "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
+ "type" : "string"
},
- "sockets" : {
- "minimum" : 1,
- "default" : 1,
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+ "minimum" : 16,
"optional" : 1,
"type" : "integer",
- "description" : "The number of CPU sockets."
+ "typetext" : "<integer> (16 - N)"
},
- "onboot" : {
- "description" : "Specifies whether a VM will be started during system bootup.",
- "type" : "boolean",
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "minimum" : 0,
"optional" : 1,
- "default" : 0
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
},
- "freeze" : {
- "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+ "migrate_speed" : {
+ "default" : 0,
+ "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+ "minimum" : 0,
"optional" : 1,
- "type" : "boolean"
- },
- "cores" : {
- "default" : 1,
"type" : "integer",
- "optional" : 1,
- "description" : "The number of cores per socket.",
- "minimum" : 1
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
+ "typetext" : "<integer> (0 - N)"
},
"name" : {
- "format" : "dns-name",
"description" : "Set a name for the VM. Only used on the configuration web interface.",
+ "format" : "dns-name",
"optional" : 1,
- "type" : "string"
- },
- "smp" : {
- "description" : "The number of CPUs. Please use option -sockets instead.",
- "default" : 1,
- "optional" : 1,
- "type" : "integer",
- "minimum" : 1
- },
- "machine" : {
- "maxLength" : 40,
"type" : "string",
- "optional" : 1,
- "description" : "Specific the Qemu machine type.",
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)"
+ "typetext" : "<string>"
},
"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",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-qm-net"
- },
- "vga" : {
- "type" : "string",
- "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"
- ]
- },
- "virtio[n]" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
+ "description" : "Specify network devices.",
"format" : {
- "bps_wr" : {
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
+ "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" : "integer"
+ "type" : "string"
},
- "mbps_max" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "e1000" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "iops_rd" : {
- "format_description" : "iops",
- "optional" : 1,
- "type" : "integer",
- "description" : "Maximum read I/O speed in operations per second."
+ "e1000-82540em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "size" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Disk size. This is purely informational and has no effect.",
- "format" : "disk-size"
+ "e1000-82544gc" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "mbps_wr_max" : {
+ "e1000-82545em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "firewall" : {
+ "description" : "Whether this interface should be protected by the firewall.",
"optional" : 1,
- "type" : "number",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "boolean"
},
- "bps" : {
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
+ "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" : "integer"
+ "type" : "boolean"
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "type" : "integer",
+ "macaddr" : {
+ "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
"optional" : 1,
- "format_description" : "iops"
+ "pattern" : "(?^i:[0-9a-f]{2}(?::[0-9a-f]{2}){5})",
+ "type" : "string"
},
- "format" : {
- "format_description" : "drive format",
- "description" : "The drive's backing file's data 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"
],
- "optional" : 1,
"type" : "string"
},
- "heads" : {
- "optional" : 1,
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count"
+ "ne2k_isa" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "serial" : {
+ "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" : "string",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
- "format" : "urlencoded",
- "maxLength" : 60
+ "type" : "integer"
},
- "discard" : {
- "type" : "string",
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 0,
"optional" : 1,
- "enum" : [
- "ignore",
- "on"
- ],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "format_description" : "ignore|on"
+ "type" : "number"
},
- "mbps_rd_max" : {
- "type" : "number",
+ "rtl8139" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "tag" : {
+ "description" : "VLAN tag to apply to packets on this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
"optional" : 1,
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "integer"
},
- "media" : {
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "default" : "disk",
+ "trunks" : {
+ "description" : "VLAN trunks to pass through this interface.",
+ "format_description" : "vlanid[;vlanid...]",
"optional" : 1,
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
"type" : "string"
},
- "iothread" : {
- "format_description" : "off|on",
- "description" : "Whether to use iothreads for this drive",
- "type" : "boolean",
- "optional" : 1
+ "virtio" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "rerror" : {
- "format_description" : "ignore|report|stop",
- "optional" : 1,
- "type" : "string",
- "description" : "Read error action.",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ]
+ "vmxnet3" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ }
+ },
+ "optional" : 1,
+ "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>]"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "numa" : {
+ "default" : 0,
+ "description" : "Enable/disable NUMA.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<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"
},
- "cache" : {
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
+ "hostnodes" : {
+ "description" : "Host NUMA nodes to use.",
+ "format_description" : "id[-id];...",
"optional" : 1,
- "type" : "string",
- "description" : "The drive's cache mode",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
},
- "secs" : {
- "format_description" : "count",
- "type" : "integer",
+ "memory" : {
+ "description" : "Amount of memory this NUMA node provides.",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count."
+ "type" : "number"
},
- "iops_wr" : {
- "format_description" : "iops",
- "type" : "integer",
+ "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" : [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+ },
+ "parallel[n]" : {
+ "description" : "Map host parallel devices (n is 0 to 2).",
+ "optional" : 1,
+ "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
+ "type" : "string",
+ "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "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" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second."
+ "type" : "string"
},
- "detect_zeroes" : {
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean",
- "optional" : 1
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "iops_max" : {
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "integer"
},
- "snapshot" : {
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean",
- "optional" : 1
+ "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",
- "description" : "Maximum read speed speed in bytes per second."
+ "type" : "integer"
},
- "cyls" : {
- "type" : "integer",
+ "bps_rd_length" : {
+ "description" : "Maximum length of read 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.",
- "format_description" : "count"
+ "type" : "integer"
},
- "mbps" : {
- "format_description" : "mbps",
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "number",
- "description" : "Maximum r/w speed speed in megabytes per second."
+ "type" : "integer"
},
- "volume" : {
- "alias" : "file"
+ "bps_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "trans" : {
- "description" : "Force disk geometry bios translation mode.",
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
"none",
- "lba",
- "auto"
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
"optional" : 1,
- "type" : "string",
- "format_description" : "none|lba|auto"
+ "type" : "string"
},
- "mbps_rd" : {
- "type" : "number",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "integer"
},
- "mbps_wr" : {
- "type" : "number",
+ "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,
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "string"
},
"file" : {
+ "default_key" : 1,
"description" : "The drive's backing volume.",
- "type" : "string",
"format" : "pve-volume-id-or-qm-path",
"format_description" : "volume",
- "default_key" : 1
+ "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",
- "type" : "integer",
"optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second."
+ "type" : "integer"
},
- "werror" : {
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "string",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "description" : "Write error action.",
- "format_description" : "enospc|ignore|report|stop"
+ "type" : "integer"
},
- "aio" : {
- "format_description" : "native|threads",
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "description" : "AIO type to use.",
- "enum" : [
- "native",
- "threads"
- ]
- },
- "iops_wr_max" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "integer"
},
- "backup" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off"
- }
- }
- },
- "balloon" : {
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
- "type" : "integer",
- "optional" : 1,
- "minimum" : 0
- },
- "scsi[n]" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
- "format" : {
- "heads" : {
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count"
+ "type" : "integer"
},
- "serial" : {
+ "iops_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
- "maxLength" : 60,
- "format" : "urlencoded"
+ "type" : "integer"
},
"iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "optional" : 1,
- "type" : "integer",
- "format_description" : "iops"
- },
- "bps" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum r/w speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "integer"
},
- "mbps_wr_max" : {
- "type" : "number",
+ "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.",
- "format_description" : "mbps"
+ "type" : "integer"
},
- "format" : {
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "description" : "The drive's backing file's data format.",
- "type" : "string",
+ "iops_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "drive format"
+ "type" : "integer"
},
- "discard" : {
- "format_description" : "ignore|on",
- "type" : "string",
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool 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" : "integer"
},
- "mbps_rd_max" : {
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
"format_description" : "mbps",
"optional" : 1,
- "type" : "number",
- "description" : "Maximum unthrottled read pool speed in megabytes per second."
- },
- "bps_wr" : {
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
- "type" : "integer",
- "optional" : 1
+ "type" : "number"
},
- "iops_rd" : {
- "format_description" : "iops",
- "type" : "integer",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "number"
},
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "string",
- "format" : "disk-size"
+ "type" : "number"
},
- "mbps_max" : {
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
"format_description" : "mbps",
- "type" : "number",
"optional" : 1,
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second."
+ "type" : "number"
},
- "snapshot" : {
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "boolean",
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off"
- },
- "iops_max" : {
- "format_description" : "iops",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "type" : "integer",
- "optional" : 1
+ "type" : "number"
},
- "iothread" : {
- "format_description" : "off|on",
- "type" : "boolean",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Whether to use iothreads for this drive"
+ "type" : "number"
},
"media" : {
- "format_description" : "cdrom|disk",
+ "default" : "disk",
+ "description" : "The drive's media type.",
"enum" : [
"cdrom",
"disk"
],
- "description" : "The drive's media type.",
- "type" : "string",
"optional" : 1,
- "default" : "disk"
+ "type" : "string"
+ },
+ "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.",
- "type" : "integer",
"optional" : 1,
- "format_description" : "count"
+ "type" : "integer"
},
- "iops_wr" : {
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations 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,
- "type" : "integer"
+ "type" : "string"
},
- "detect_zeroes" : {
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "type" : "string"
},
- "cache" : {
- "type" : "string",
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
"optional" : 1,
- "description" : "The drive's cache mode",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
+ "type" : "boolean"
},
"trans" : {
- "optional" : 1,
- "type" : "string",
"description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
- "format_description" : "none|lba|auto"
+ "optional" : 1,
+ "type" : "string"
},
"volume" : {
"alias" : "file"
},
- "bps_rd" : {
- "format_description" : "bps",
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum read speed speed in bytes per second."
+ "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_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+ },
+ "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"
},
- "queues" : {
- "format_description" : "nbqueues",
- "minimum" : 2,
- "description" : "Number of queues.",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "type" : "integer"
+ "type" : "boolean"
},
- "cyls" : {
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "type" : "integer",
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "count"
+ "type" : "integer"
},
- "mbps" : {
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "type" : "number",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "integer"
},
- "aio" : {
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "string",
- "enum" : [
- "native",
- "threads"
- ],
- "description" : "AIO type to use.",
- "format_description" : "native|threads"
+ "type" : "integer"
},
- "werror" : {
- "format_description" : "enospc|ignore|report|stop",
- "type" : "string",
+ "bps_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Write error action.",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ]
+ "type" : "integer"
},
- "iops_wr_max" : {
- "format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "type" : "integer",
- "optional" : 1
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "backup" : {
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making backups.",
- "type" : "boolean",
- "optional" : 1
+ "bps_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "mbps_rd" : {
- "format_description" : "mbps",
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
"optional" : 1,
- "type" : "number",
- "description" : "Maximum read speed speed in megabytes per second."
+ "type" : "string"
},
- "mbps_wr" : {
- "format_description" : "mbps",
- "type" : "number",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
- "description" : "Maximum write speed speed in megabytes per second."
+ "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" : {
- "format_description" : "volume",
- "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",
+ "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",
- "description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops"
- }
- }
- },
- "protection" : {
- "default" : 0,
- "optional" : 1,
- "type" : "boolean",
- "description" : "Sets the protection flag of the VM. This will prevent the remove operation."
- },
- "usb[n]" : {
- "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",
- "format" : {
- "host" : {
- "description" : "The Host USB device or port or the value spice",
- "type" : "string",
- "format_description" : "HOSTUSBDEVICE|spice",
- "format" : "pve-qm-usb-device",
- "default_key" : 1
+ "type" : "integer"
},
- "usb3" : {
- "description" : "Specifies whether if given host option is a USB3 device or port",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "boolean",
- "format_description" : "yes|no"
+ "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" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "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" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "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"
+ },
+ "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"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
- }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,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>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
},
"scsihw" : {
- "description" : "scsi controller model",
+ "default" : "lsi",
+ "description" : "SCSI controller model",
"enum" : [
"lsi",
"lsi53c810",
"megasas",
"pvscsi"
],
- "default" : "lsi",
"optional" : 1,
"type" : "string"
},
- "cdrom" : {
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3)",
"optional" : 1,
+ "pattern" : "(/dev/.+|socket)",
"type" : "string",
- "description" : "This is an alias for option -ide2",
- "typetext" : "volume",
- "format" : "pve-qm-drive"
+ "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"
},
- "cpu" : {
- "description" : "Emulated CPU type.",
+ "shares" : {
+ "default" : 1000,
+ "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning",
+ "maximum" : 50000,
+ "minimum" : 0,
"optional" : 1,
- "type" : "string",
- "format" : {
- "cputype" : {
- "default" : "kvm64",
- "type" : "string",
- "description" : "Emulated CPU type.",
- "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"
- },
- "hidden" : {
- "description" : "Do not identify as a KVM virtual machine.",
- "optional" : 1,
- "type" : "boolean",
- "default" : 0
- }
- }
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 50000)"
},
"skiplock" : {
"description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "memory" : {
- "minimum" : 16,
- "type" : "integer",
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 256,
"optional" : 1,
- "default" : 512,
- "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device."
+ "type" : "string",
+ "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
},
- "args" : {
- "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
+ "smp" : {
+ "default" : 1,
+ "description" : "The number of CPUs. Please use option -sockets instead.",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "template" : {
+ "sockets" : {
+ "default" : 1,
+ "description" : "The number of CPU sockets.",
+ "minimum" : 1,
"optional" : 1,
- "type" : "boolean",
- "default" : 0,
- "description" : "Enable/disable Template."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "bios" : {
- "enum" : [
- "seabios",
- "ovmf"
- ],
- "description" : "Select BIOS implementation.",
- "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,
- "default" : "seabios"
+ "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)"
},
- "shares" : {
- "default" : 1000,
- "maximum" : 50000,
+ "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" : "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",
- "minimum" : 0
+ "type" : "string",
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
},
- "ostype" : {
- "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",
+ "tablet" : {
+ "default" : 1,
+ "description" : "Enable/disable the USB tablet device.",
"optional" : 1,
- "type" : "string"
+ "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)."
},
- "unused[n]" : {
- "type" : "string",
+ "tdf" : {
+ "default" : 0,
+ "description" : "Enable/disable time drift fix.",
"optional" : 1,
- "description" : "Reference to unused volumes.",
- "format" : "pve-volume-id"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "boot" : {
- "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
- "pattern" : "[acdn]{1,4}",
- "default" : "cdn",
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
"optional" : 1,
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "numa[n]" : {
- "description" : "numa topology",
- "type" : "string",
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : "pve-volume-id",
"optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "usb[n]" : {
+ "description" : "Configure an USB device (n is 0 to 4).",
"format" : {
- "hostnodes" : {
- "format_description" : "id[-id];...",
- "type" : "string",
- "optional" : 1,
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "description" : "host numa nodes to use"
- },
- "cpus" : {
- "format_description" : "id[-id];...",
- "type" : "string",
- "description" : "CPUs accessing this numa node.",
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)"
- },
- "policy" : {
- "type" : "string",
- "optional" : 1,
- "enum" : [
- "preferred",
- "bind",
- "interleave"
- ],
- "description" : "numa allocation policy.",
- "format_description" : "preferred|bind|interleave"
+ "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"
},
- "memory" : {
- "format_description" : "mb",
- "description" : "Amount of memory this numa node provides.",
+ "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" : "number"
+ "type" : "boolean"
}
- }
- },
- "autostart" : {
- "default" : 0,
- "type" : "boolean",
+ },
"optional" : 1,
- "description" : "Automatic restart after crash (currently ignored)."
+ "type" : "string",
+ "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
},
- "tdf" : {
- "optional" : 1,
- "type" : "boolean",
+ "vcpus" : {
"default" : 0,
- "description" : "Enable/disable time drift fix."
- },
- "tablet" : {
- "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",
- "optional" : 1
- },
- "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.",
- "type" : "number",
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
"optional" : 1,
- "default" : 0,
- "maximum" : 128,
- "minimum" : 0
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "kvm" : {
- "default" : 1,
- "type" : "boolean",
+ "vga" : {
+ "description" : "Select the VGA type.",
+ "enum" : [
+ "std",
+ "cirrus",
+ "vmware",
+ "qxl",
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3",
+ "qxl2",
+ "qxl3",
+ "qxl4"
+ ],
"optional" : 1,
- "description" : "Enable/disable KVM hardware virtualization."
+ "type" : "string",
+ "verbose_description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal."
},
- "sata[n]" : {
+ "virtio[n]" : {
+ "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
"format" : {
- "file" : {
- "type" : "string",
- "description" : "The drive's backing volume.",
- "default_key" : 1,
- "format" : "pve-volume-id-or-qm-path",
- "format_description" : "volume"
- },
- "iops" : {
- "description" : "Maximum r/w I/O speed in operations per second.",
- "type" : "integer",
- "optional" : 1,
- "format_description" : "iops"
- },
- "mbps_rd" : {
- "format_description" : "mbps",
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second."
- },
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "optional" : 1,
- "type" : "number",
- "format_description" : "mbps"
- },
- "iops_wr_max" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "format_description" : "iops"
- },
- "backup" : {
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making backups.",
- "type" : "boolean",
- "optional" : 1
- },
"aio" : {
- "format_description" : "native|threads",
- "optional" : 1,
- "type" : "string",
"description" : "AIO type to use.",
"enum" : [
"native",
"threads"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "werror" : {
- "type" : "string",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "description" : "Write error action.",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "format_description" : "enospc|ignore|report|stop"
+ "type" : "boolean"
},
- "cyls" : {
- "type" : "integer",
+ "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 cylinder count.",
- "format_description" : "count"
+ "type" : "integer"
},
- "mbps" : {
- "format_description" : "mbps",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "number",
- "description" : "Maximum r/w speed speed in megabytes per second."
+ "type" : "integer"
},
"bps_rd" : {
- "description" : "Maximum read speed speed in bytes per second.",
- "type" : "integer",
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "bps"
- },
- "trans" : {
- "format_description" : "none|lba|auto",
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "description" : "Force disk geometry bios translation mode.",
- "type" : "string",
- "optional" : 1
- },
- "volume" : {
- "alias" : "file"
+ "type" : "integer"
},
- "iops_wr" : {
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second.",
+ "bps_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
"type" : "integer"
},
- "secs" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
"type" : "integer"
},
- "detect_zeroes" : {
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean",
- "optional" : 1
- },
- "rerror" : {
- "format_description" : "ignore|report|stop",
+ "bps_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
- "description" : "Read error action."
+ "type" : "integer"
},
"cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
"none",
"writethrough",
"unsafe",
"directsync"
],
- "description" : "The drive's cache mode",
"optional" : 1,
- "type" : "string",
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
+ "type" : "string"
},
- "media" : {
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "default" : "disk",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
- "type" : "string",
- "format_description" : "cdrom|disk"
+ "type" : "integer"
},
- "snapshot" : {
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean",
+ "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,
- "format_description" : "on|off"
+ "type" : "integer"
},
"iops_max" : {
- "type" : "integer",
+ "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.",
- "format_description" : "iops"
+ "type" : "integer"
},
"iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
"format_description" : "iops",
- "type" : "integer",
"optional" : 1,
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "integer"
},
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
- "type" : "string",
+ "iops_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "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" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "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,
- "format" : "disk-size"
+ "type" : "number"
},
"mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "type" : "number",
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "number"
},
- "bps_wr" : {
- "description" : "Maximum write speed speed in bytes per second.",
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "integer",
- "format_description" : "bps"
+ "type" : "number"
},
- "discard" : {
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "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" : [
- "ignore",
- "on"
+ "cdrom",
+ "disk"
],
- "type" : "string",
"optional" : 1,
- "format_description" : "ignore|on"
+ "type" : "string"
},
- "mbps_rd_max" : {
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "type" : "number",
- "format_description" : "mbps"
+ "type" : "string"
},
- "heads" : {
- "type" : "integer",
+ "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 head count.",
- "format_description" : "count"
+ "type" : "integer"
},
"serial" : {
"description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "optional" : 1,
- "type" : "string",
"format" : "urlencoded",
+ "format_description" : "serial",
"maxLength" : 60,
- "format_description" : "serial"
+ "optional" : 1,
+ "type" : "string"
},
- "format" : {
- "format_description" : "drive format",
- "description" : "The drive's backing file's data format.",
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "type" : "string",
- "optional" : 1
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
},
- "bps" : {
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum r/w speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "boolean"
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
"optional" : 1,
- "type" : "integer",
- "format_description" : "iops"
+ "type" : "string"
},
- "mbps_wr_max" : {
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "type" : "number",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "string"
}
},
"optional" : 1,
"type" : "string",
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5)."
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,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>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
},
- "localtime" : {
- "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
- "type" : "boolean",
- "optional" : 1
- },
- "migrate_speed" : {
- "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
- "default" : 0,
- "optional" : 1,
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "minimum" : 0
+ "typetext" : "<integer> (1 - N)"
},
- "startdate" : {
- "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)",
- "type" : "string",
+ "watchdog" : {
+ "description" : "Create a virtual hardware watchdog device.",
+ "format" : "pve-qm-watchdog",
"optional" : 1,
- "default" : "now",
- "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
- "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'."
- },
- "force" : {
- "requires" : "delete",
- "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.",
- "type" : "boolean",
- "optional" : 1
- },
- "node" : {
"type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "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)"
}
}
},
- "name" : "update_vm",
- "protected" : 1,
- "method" : "PUT",
"permissions" : {
"check" : [
"perm",
1
]
},
+ "protected" : 1,
"proxyto" : "node",
- "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"
}
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/config",
"text" : "config"
},
{
"info" : {
"GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "key" : {
- "description" : "Configuration option name.",
- "type" : "string"
- },
- "value" : {
- "description" : "Current value.",
- "optional" : 1,
- "type" : "string"
- },
- "delete" : {
- "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
- "type" : "integer",
- "optional" : 1,
- "maximum" : 2,
- "minimum" : 0
- },
- "pending" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Pending value."
- }
- },
- "type" : "object"
- }
- },
+ "description" : "Get virtual machine configuration, including pending changes.",
"method" : "GET",
+ "name" : "vm_pending",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"vmid" : {
- "minimum" : 1,
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
]
},
- "name" : "vm_pending",
"proxyto" : "node",
- "description" : "Get virtual machine configuration, including pending changes."
+ "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"
+ }
}
},
- "text" : "pending",
"leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/pending"
+ "path" : "/nodes/{node}/qemu/{vmid}/pending",
+ "text" : "pending"
},
{
- "text" : "unlink",
"info" : {
"PUT" : {
- "returns" : {
- "type" : "null"
- },
"description" : "Unlink/delete disk images.",
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk"
- ]
- ]
- },
"method" : "PUT",
- "protected" : 1,
"name" : "unlink",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- },
"force" : {
- "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,
- "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."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"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",
- "format" : "pve-configid-list"
+ "typetext" : "<string>"
},
"vmid" : {
- "type" : "integer",
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/unlink",
- "leaf" : 1
+ "text" : "unlink"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
"info" : {
"POST" : {
- "protected" : 1,
"description" : "Creates a TCP VNC proxy connections.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
- },
+ "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.",
- "type" : "integer",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
"websocket" : {
"description" : "starts websockify instead of vncproxy",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "vncproxy",
- "method" : "POST",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
"returns" : {
"additionalProperties" : 0,
"properties" : {
"cert" : {
"type" : "string"
},
- "upid" : {
- "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" : {
"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.",
+ "method" : "GET",
+ "name" : "vncwebsocket",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "port" : {
- "minimum" : 5900,
- "description" : "Port number returned by previous vncproxy call.",
- "type" : "integer",
- "maximum" : 5999
- },
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vncticket" : {
- "maxLength" : 512,
- "description" : "Ticket from previous call to vncproxy.",
- "type" : "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",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vncticket" : {
+ "description" : "Ticket from previous call to vncproxy.",
+ "maxLength" : 512,
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ],
+ "description" : "You also need to pass a valid ticket (vncticket)."
},
- "name" : "vncwebsocket",
- "description" : "Opens a weksocket for VNC traffic.",
- "method" : "GET",
"returns" : {
"properties" : {
"port" : {
}
}
},
- "text" : "vncwebsocket",
"leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket"
+ "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
+ "text" : "vncwebsocket"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
"info" : {
"POST" : {
- "protected" : 1,
+ "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>"
+ },
"proxy" : {
+ "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
"format" : "address",
- "type" : "string",
"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" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "POST",
- "description" : "Returns a SPICE configuration to connect to the VM.",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
+ "additionalProperties" : 1,
+ "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
"properties" : {
- "proxy" : {
+ "host" : {
"type" : "string"
},
- "tls-port" : {
- "type" : "integer"
- },
"password" : {
"type" : "string"
},
- "type" : {
+ "proxy" : {
"type" : "string"
},
- "host" : {
+ "tls-port" : {
+ "type" : "integer"
+ },
+ "type" : {
"type" : "string"
}
- },
- "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
- "additionalProperties" : 1
+ }
}
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
"text" : "spiceproxy"
},
{
- "info" : {
- "GET" : {
- "method" : "GET",
- "returns" : {
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
- ],
- "items" : {
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- },
- "description" : "Directory index",
- "proxyto" : "node",
- "permissions" : {
- "user" : "all"
- },
- "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"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "vmcmdidx"
- }
- },
"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,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "vm_status",
- "protected" : 1,
- "method" : "GET",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Get virtual machine status.",
"returns" : {
"type" : "object"
}
}
},
- "text" : "current",
"leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/status/current"
+ "path" : "/nodes/{node}/qemu/{vmid}/status/current",
+ "text" : "current"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/status/start",
- "leaf" : 1,
- "text" : "start",
"info" : {
"POST" : {
+ "description" : "Start virtual machine.",
"method" : "POST",
- "protected" : 1,
+ "name" : "vm_start",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "stateuri" : {
- "description" : "Some command save/restore state from this location.",
- "type" : "string",
+ "machine" : {
+ "description" : "Specific the Qemu machine type.",
+ "maxLength" : 40,
"optional" : 1,
- "maxLength" : 128
+ "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
+ "type" : "string"
},
- "node" : {
- "type" : "string",
+ "migratedfrom" : {
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "machine" : {
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
- "description" : "Specific the Qemu machine type.",
+ "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,
- "maxLength" : 40
+ "type" : "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,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stateuri" : {
+ "description" : "Some command save/restore state from this location.",
+ "maxLength" : 128,
"optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option."
+ "type" : "string",
+ "typetext" : "<string>"
},
"vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
"description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "migratedfrom" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-node"
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
- },
- "name" : "vm_start",
- "returns" : {
- "type" : "string"
+ }
},
- "proxyto" : "node",
- "description" : "Start virtual machine.",
"permissions" : {
"check" : [
"perm",
"VM.PowerMgmt"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/start",
+ "text" : "start"
},
{
- "text" : "stop",
"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",
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "returns" : {
- "type" : "string"
- },
- "protected" : 1,
+ "method" : "POST",
+ "name" : "vm_stop",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "timeout" : {
- "minimum" : 0,
+ "keepActive" : {
+ "default" : 0,
+ "description" : "Do not deactivate storage volumes.",
"optional" : 1,
- "type" : "integer",
- "description" : "Wait maximal timeout seconds."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"migratedfrom" : {
"description" : "The cluster node name.",
- "type" : "string",
+ "format" : "pve-node",
"optional" : 1,
- "format" : "pve-node"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "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"
- },
- "keepActive" : {
- "description" : "Do not decativate storage volumes.",
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "timeout" : {
+ "description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
"optional" : 1,
- "default" : 0
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "vm_stop",
- "method" : "POST"
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
- "leaf" : 1
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
- "leaf" : 1,
- "text" : "reset",
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "description" : "Reset virtual machine.",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "protected" : 1,
+ }
+ }
+ },
+ "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" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"skiplock" : {
- "type" : "boolean",
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "name" : "vm_reset",
- "method" : "POST"
- }
- }
- },
- {
- "text" : "shutdown",
- "info" : {
- "POST" : {
"permissions" : {
"check" : [
"perm",
]
]
},
- "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.",
+ "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" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- },
"forceStop" : {
"default" : 0,
+ "description" : "Make sure the VM stops.",
"optional" : 1,
"type" : "boolean",
- "description" : "Make sure the VM stops."
+ "typetext" : "<boolean>"
},
"keepActive" : {
+ "default" : 0,
+ "description" : "Do not deactivate storage volumes.",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "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,
- "default" : 0,
- "description" : "Do not decativate storage volumes."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"timeout" : {
- "minimum" : 0,
"description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
"optional" : 1,
- "type" : "integer"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
"description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "skiplock" : {
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1,
- "type" : "boolean"
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
"protected" : 1,
- "method" : "POST"
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
- "leaf" : 1
+ "text" : "shutdown"
},
{
- "text" : "suspend",
"info" : {
"POST" : {
+ "description" : "Suspend virtual machine.",
"method" : "POST",
+ "name" : "vm_suspend",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"skiplock" : {
"description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
- },
- "name" : "vm_suspend",
- "protected" : 1,
- "returns" : {
- "type" : "string"
+ }
},
"permissions" : {
"check" : [
]
]
},
- "description" : "Suspend virtual machine.",
- "proxyto" : "node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
- "leaf" : 1
+ "text" : "suspend"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
"info" : {
"POST" : {
- "protected" : 1,
+ "description" : "Resume virtual machine.",
+ "method" : "POST",
"name" : "vm_resume",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "nocheck" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"skiplock" : {
"description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
"vmid" : {
- "type" : "integer",
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1
- },
- "nocheck" : {
- "type" : "boolean",
- "optional" : 1
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "method" : "POST",
- "description" : "Resume virtual machine.",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
}
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
"text" : "resume"
}
],
- "text" : "status",
+ "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)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
"leaf" : 0,
- "path" : "/nodes/{node}/qemu/{vmid}/status"
+ "path" : "/nodes/{node}/qemu/{vmid}/status",
+ "text" : "status"
},
{
- "text" : "sendkey",
"info" : {
"PUT" : {
- "proxyto" : "node",
"description" : "Send key event to virtual machine.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
- },
- "returns" : {
- "type" : "null"
- },
- "protected" : 1,
+ "method" : "PUT",
+ "name" : "vm_sendkey",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"key" : {
"description" : "The key (qemu monitor encoding).",
- "type" : "string"
+ "type" : "string",
+ "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,
"type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option."
+ "typetext" : "<boolean>"
},
"vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
"description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "vm_sendkey",
- "method" : "PUT"
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
- "leaf" : 1
- },
- {
- "info" : {
- "GET" : {
- "returns" : {
- "type" : "object",
- "properties" : {
- "hasFeature" : {
- "type" : "boolean"
- },
- "nodes" : {
- "type" : "array",
- "items" : {
- "type" : "string"
- }
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "description" : "Check if feature for virtual machine is available.",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.Console"
]
]
},
- "method" : "GET",
"protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
+ "text" : "sendkey"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Check if feature for virtual machine is available.",
+ "method" : "GET",
"name" : "vm_feature",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
"feature" : {
+ "description" : "Feature to check.",
"enum" : [
"snapshot",
"clone",
"copy"
],
- "description" : "Feature to check.",
"type" : "string"
},
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"snapname" : {
- "maxLength" : 40,
- "format" : "pve-configid",
"description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
"optional" : 1,
- "type" : "string"
- },
- "node" : {
"type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "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"
+ },
+ "nodes" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
}
},
- "additionalProperties" : 0
+ "type" : "object"
}
}
},
- "text" : "feature",
"leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/feature"
+ "path" : "/nodes/{node}/qemu/{vmid}/feature",
+ "text" : "feature"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/clone",
"info" : {
"POST" : {
+ "description" : "Create a copy of virtual machine/template.",
"method" : "POST",
- "protected" : 1,
"name" : "clone_vm",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "newid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "description" : "VMID for the clone.",
- "type" : "integer"
- },
- "storage" : {
- "format" : "pve-storage-id",
- "description" : "Target storage for full clone.",
- "requires" : "full",
+ "description" : {
+ "description" : "Description for the new VM.",
"optional" : 1,
- "type" : "string"
- },
- "target" : {
- "format" : "pve-node",
- "description" : "Target node. Only allowed if the original VM is on shared storage.",
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "snapname" : {
- "format" : "pve-configid",
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "type" : "string",
- "optional" : 1
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
+ "format" : {
+ "description" : "Target format for file storage.",
+ "enum" : [
+ "raw",
+ "qcow2",
+ "vmdk"
+ ],
+ "optional" : 1,
+ "requires" : "full",
"type" : "string"
},
+ "full" : {
+ "default" : 0,
+ "description" : "Create a full copy of all disk. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"name" : {
+ "description" : "Set a name for the new VM.",
+ "format" : "dns-name",
"optional" : 1,
"type" : "string",
- "description" : "Set a name for the new VM.",
- "format" : "dns-name"
+ "typetext" : "<string>"
+ },
+ "newid" : {
+ "description" : "VMID for the clone.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"pool" : {
"description" : "Add the new VM to the specified pool.",
- "type" : "string",
+ "format" : "pve-poolid",
"optional" : 1,
- "format" : "pve-poolid"
- },
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "format" : {
- "enum" : [
- "raw",
- "qcow2",
- "vmdk"
- ],
- "description" : "Target format for file storage.",
- "requires" : "full",
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "full" : {
+ "storage" : {
+ "description" : "Target storage for full clone.",
+ "format" : "pve-storage-id",
"optional" : 1,
- "type" : "boolean",
- "default" : 0,
- "description" : "Create a full copy of all disk. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default."
+ "requires" : "full",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "description" : {
- "description" : "Description for the new VM.",
+ "target" : {
+ "description" : "Target node. Only allowed if the original VM is on shared storage.",
+ "format" : "pve-node",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "returns" : {
- "type" : "string"
- },
- "description" : "Create a copy of virtual machine/template.",
- "proxyto" : "node",
"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",
[
"pool"
]
]
- ]
+ ],
+ "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage."
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/clone",
"text" : "clone"
},
{
- "text" : "move_disk",
"info" : {
"POST" : {
- "proxyto" : "node",
"description" : "Move volume to different storage.",
- "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."
- },
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- },
- "protected" : 1,
+ "method" : "POST",
+ "name" : "move_vm_disk",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- },
"delete" : {
+ "default" : 0,
"description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
- "type" : "boolean",
"optional" : 1,
- "default" : 0
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "storage" : {
+ "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" : "Target storage.",
- "format" : "pve-storage-id"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "typetext" : "<string>"
},
"disk" : {
- "type" : "string",
"description" : "The disk you want to move.",
"enum" : [
"ide0",
"sata2",
"sata3",
"sata4",
- "sata5"
- ]
- },
- "digest" : {
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "sata5",
+ "efidisk0"
+ ],
+ "type" : "string"
},
"format" : {
"description" : "Target Format.",
],
"optional" : 1,
"type" : "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)"
}
}
},
- "name" : "move_vm_disk",
- "method" : "POST"
+ "permissions" : {
+ "check" : [
+ "and",
+ [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk"
+ ]
+ ],
+ [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.AllocateSpace"
+ ]
+ ]
+ ],
+ "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage."
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/move_disk",
- "leaf" : 1
+ "text" : "move_disk"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/migrate",
"info" : {
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Migrate"
- ]
- ]
- },
- "proxyto" : "node",
"description" : "Migrate virtual machine. Creates a new migration task.",
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- },
+ "method" : "POST",
"name" : "migrate_vm",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "force" : {
+ "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"online" : {
+ "description" : "Use online/live migration.",
"optional" : 1,
"type" : "boolean",
- "description" : "Use online/live migration."
+ "typetext" : "<boolean>"
},
- "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",
+ "typetext" : "<string>"
},
"vmid" : {
- "type" : "integer",
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
- },
- "target" : {
- "type" : "string",
- "description" : "Target node.",
- "format" : "pve-node"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Migrate"
+ ]
+ ]
},
"protected" : 1,
- "method" : "POST"
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/migrate",
"text" : "migrate"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/monitor",
- "leaf" : 1,
- "text" : "monitor",
"info" : {
"POST" : {
+ "description" : "Execute Qemu monitor commands.",
"method" : "POST",
+ "name" : "monitor",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "format" : "pve-node",
+ "command" : {
+ "description" : "The monitor command.",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "command" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "The monitor command."
+ "typetext" : "<string>"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "name" : "monitor",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ],
+ "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
+ },
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/monitor",
+ "text" : "monitor"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Execute Qemu Guest Agent commands.",
+ "method" : "POST",
+ "name" : "agent",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "command" : {
+ "description" : "The QGA command.",
+ "enum" : [
+ "ping",
+ "get-time",
+ "info",
+ "fsfreeze-status",
+ "fsfreeze-freeze",
+ "fsfreeze-thaw",
+ "fstrim",
+ "network-get-interfaces",
+ "get-vcpus",
+ "get-fsinfo",
+ "get-memory-blocks",
+ "get-memory-block-info",
+ "suspend-hybrid",
+ "suspend-ram",
+ "suspend-disk",
+ "shutdown"
+ ],
+ "type" : "string"
+ },
+ "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" : [
]
]
},
- "description" : "Execute Qemu monitor commands.",
- "proxyto" : "node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property. The type of that\nproperty depends on the executed command.",
+ "type" : "object"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent",
+ "text" : "agent"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/resize",
"info" : {
"PUT" : {
- "protected" : 1,
+ "description" : "Extend volume size.",
+ "method" : "PUT",
+ "name" : "resize_vm",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "format" : "pve-node",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
"type" : "string",
- "description" : "The cluster node name."
- },
- "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"
+ "typetext" : "<string>"
},
"disk" : {
- "type" : "string",
"description" : "The disk you want to resize.",
"enum" : [
"ide0",
"sata2",
"sata3",
"sata4",
- "sata5"
- ]
+ "sata5",
+ "efidisk0"
+ ],
+ "type" : "string"
},
- "digest" : {
- "maxLength" : 40,
- "optional" : 1,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "typetext" : "<string>"
},
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid"
+ "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"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "resize_vm",
- "method" : "PUT",
- "description" : "Extend volume size.",
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk"
- ]
- ]
- },
- "returns" : {
- "type" : "null"
- }
- }
- },
- "text" : "resize"
- },
- {
- "leaf" : 0,
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
- "info" : {
- "POST" : {
- "protected" : 1,
- "name" : "snapshot",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmstate" : {
- "description" : "Save the vmstate",
- "optional" : 1,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"vmid" : {
- "type" : "integer",
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1
- },
- "snapname" : {
- "type" : "string",
- "description" : "The name of the snapshot.",
- "format" : "pve-configid",
- "maxLength" : 40
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- },
- "description" : {
- "description" : "A textual description or comment.",
- "optional" : 1,
- "type" : "string"
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "method" : "POST",
- "proxyto" : "node",
- "description" : "Snapshot a VM.",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Snapshot"
+ "VM.Config.Disk"
]
]
},
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- }
- },
- "GET" : {
- "method" : "GET",
- "name" : "snapshot_list",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
"protected" : 1,
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
"proxyto" : "node",
- "description" : "List all snapshots."
+ "returns" : {
+ "type" : "null"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/resize",
+ "text" : "resize"
+ },
+ {
"children" : [
{
- "leaf" : 0,
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
- "info" : {
- "GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{cmd}",
- "rel" : "child"
- }
- ]
- },
- "name" : "snapshot_cmd_idx",
- "permissions" : {
- "user" : "all"
- },
- "parameters" : {
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "snapname" : {
- "format" : "pve-configid",
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "description" : ""
- },
- "DELETE" : {
- "proxyto" : "node",
- "description" : "Delete a VM snapshot.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- },
- "protected" : 1,
- "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"
- },
- "snapname" : {
- "maxLength" : 40,
- "format" : "pve-configid",
- "description" : "The name of the snapshot.",
- "type" : "string"
- },
- "force" : {
- "description" : "For removal from config file, even if removing disk snapshots fails.",
- "optional" : 1,
- "type" : "boolean"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "delsnapshot",
- "method" : "DELETE"
- }
- },
- "text" : "{snapname}",
"children" : [
{
- "text" : "config",
"info" : {
- "PUT" : {
- "protected" : 1,
+ "GET" : {
+ "description" : "Get snapshot configuration",
+ "method" : "GET",
+ "name" : "get_snapshot_config",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "description" : {
- "type" : "string",
- "optional" : 1,
- "description" : "A textual description or comment."
- },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"snapname" : {
- "maxLength" : 40,
+ "description" : "The name of the snapshot.",
"format" : "pve-configid",
+ "maxLength" : 40,
"type" : "string",
- "description" : "The name of the snapshot."
+ "typetext" : "<string>"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "update_snapshot_config",
- "method" : "PUT",
- "proxyto" : "node",
- "description" : "Update snapshot metadata.",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "proxyto" : "node",
"returns" : {
- "type" : "null"
+ "type" : "object"
}
},
- "GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "object"
- },
- "proxyto" : "node",
- "description" : "Get snapshot configuration",
+ "PUT" : {
+ "description" : "Update snapshot metadata.",
+ "method" : "PUT",
+ "name" : "update_snapshot_config",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
+ "description" : {
+ "description" : "A textual description or comment.",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"snapname" : {
"description" : "The name of the snapshot.",
- "type" : "string",
+ "format" : "pve-configid",
"maxLength" : 40,
- "format" : "pve-configid"
+ "type" : "string",
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "get_snapshot_config",
"permissions" : {
"check" : [
"perm",
"VM.Snapshot"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
- "leaf" : 1
+ "text" : "config"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
"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",
- "description" : "The name of the snapshot."
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "name" : "rollback",
- "protected" : 1,
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- },
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Rollback VM state to specified snapshot."
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
"text" : "rollback"
}
- ]
+ ],
+ "info" : {
+ "DELETE" : {
+ "description" : "Delete a VM snapshot.",
+ "method" : "DELETE",
+ "name" : "delsnapshot",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "description" : "For removal from config file, even if removing disk snapshots fails.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<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"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
+ "text" : "{snapname}"
}
],
- "text" : "snapshot"
- },
- {
- "text" : "template",
"info" : {
- "POST" : {
- "name" : "template",
+ "GET" : {
+ "description" : "List all snapshots.",
+ "method" : "GET",
+ "name" : "snapshot_list",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "disk" : {
- "description" : "If you want to convert only 1 disk to base image.",
- "enum" : [
- "ide0",
- "ide1",
- "ide2",
- "ide3",
- "scsi0",
- "scsi1",
- "scsi2",
- "scsi3",
- "scsi4",
- "scsi5",
- "scsi6",
- "scsi7",
- "scsi8",
- "scsi9",
- "scsi10",
- "scsi11",
- "scsi12",
- "scsi13",
- "virtio0",
- "virtio1",
- "virtio2",
- "virtio3",
- "virtio4",
- "virtio5",
+ "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" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Snapshot a VM.",
+ "method" : "POST",
+ "name" : "snapshot",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "description" : {
+ "description" : "A textual description or comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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)"
+ },
+ "vmstate" : {
+ "description" : "Save the vmstate",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
+ "text" : "snapshot"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Create a Template.",
+ "method" : "POST",
+ "name" : "template",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "disk" : {
+ "description" : "If you want to convert only 1 disk to base image.",
+ "enum" : [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
"virtio6",
"virtio7",
"virtio8",
"sata2",
"sata3",
"sata4",
- "sata5"
+ "sata5",
+ "efidisk0"
],
"optional" : 1,
"type" : "string"
},
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "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)"
}
}
},
- "protected" : 1,
- "method" : "POST",
"permissions" : {
"check" : [
"perm",
],
"description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Create a Template.",
"returns" : {
"type" : "null"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/template",
- "leaf" : 1
+ "text" : "template"
}
],
"info" : {
- "GET" : {
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- }
- },
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- },
- "method" : "GET",
- "permissions" : {
- "user" : "all"
- },
- "name" : "vmdiridx",
+ "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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"vmid" : {
- "minimum" : 1,
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Directory index",
- "proxyto" : "node"
- },
- "DELETE" : {
- "proxyto" : "node",
- "description" : "Destroy the vm (also delete all used/owned volumes).",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "protected" : 1,
+ }
+ },
+ "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" : {
- "minimum" : 1,
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "skiplock" : {
- "optional" : 1,
- "type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option."
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "destroy_vm",
- "method" : "DELETE"
+ "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}"
}
],
- "text" : "qemu",
"info" : {
- "POST" : {
- "method" : "POST",
+ "GET" : {
+ "description" : "Virtual machine index (per node).",
+ "method" : "GET",
+ "name" : "vmlist",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "serial[n]" : {
- "type" : "string",
- "optional" : 1,
- "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",
- "pattern" : "(/dev/.+|socket)"
- },
- "vcpus" : {
- "minimum" : 1,
- "default" : 0,
- "type" : "integer",
+ "full" : {
+ "description" : "Determine the full status of active VMs.",
"optional" : 1,
- "description" : "Number of hotplugged vcpus."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "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"
- },
- "parallel[n]" : {
- "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
- "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",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "optional" : 1
- },
+ "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" : {},
+ "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" : {
- "description" : "Enable/disable ACPI.",
"default" : 1,
+ "description" : "Enable/disable ACPI.",
"optional" : 1,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "migrate_downtime" : {
- "minimum" : 0,
- "default" : 0.1,
+ "agent" : {
+ "default" : 0,
+ "description" : "Enable/disable Qemu GuestAgent.",
"optional" : 1,
- "type" : "number",
- "description" : "Set maximum tolerated downtime (in seconds) for migrations."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "name" : {
- "description" : "Set a name for the VM. Only used on the configuration web interface.",
- "type" : "string",
+ "archive" : {
+ "description" : "The backup file.",
+ "maxLength" : 255,
"optional" : 1,
- "format" : "dns-name"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "pool" : {
- "format" : "pve-poolid",
- "description" : "Add the VM to the specified pool.",
+ "args" : {
+ "description" : "Arbitrary arguments passed to kvm.",
+ "optional" : 1,
"type" : "string",
- "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"
},
- "cores" : {
- "minimum" : 1,
- "default" : 1,
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
"optional" : 1,
- "type" : "integer",
- "description" : "The number of cores per socket."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "sockets" : {
- "description" : "The number of CPU sockets.",
- "default" : 1,
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 1
+ "typetext" : "<integer> (0 - N)"
},
- "storage" : {
- "type" : "string",
+ "bios" : {
+ "default" : "seabios",
+ "description" : "Select BIOS implementation.",
+ "enum" : [
+ "seabios",
+ "ovmf"
+ ],
"optional" : 1,
- "description" : "Default storage.",
- "format" : "pve-storage-id"
+ "type" : "string"
},
- "freeze" : {
+ "boot" : {
+ "default" : "cdn",
+ "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
"optional" : 1,
- "type" : "boolean",
- "description" : "Freeze CPU at startup (use 'c' monitor command to start execution)."
+ "pattern" : "[acdn]{1,4}",
+ "type" : "string"
},
- "onboot" : {
+ "bootdisk" : {
+ "description" : "Enable booting from specified disk.",
+ "format" : "pve-qm-bootdisk",
"optional" : 1,
- "type" : "boolean",
- "default" : 0,
- "description" : "Specifies whether a VM will be started during system bootup."
+ "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "type" : "string"
},
- "startup" : {
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
- "format" : "pve-startup-order",
+ "cdrom" : {
+ "description" : "This is an alias for option -ide2",
+ "format" : "pve-qm-ide",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<volume>"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
"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."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "agent" : {
+ "cpu" : {
+ "description" : "Emulated CPU type.",
+ "format" : {
+ "cputype" : {
+ "default" : "kvm64",
+ "default_key" : 1,
+ "description" : "Emulated CPU type.",
+ "enum" : [
+ "486",
+ "athlon",
+ "Broadwell",
+ "Broadwell-noTSX",
+ "Conroe",
+ "core2duo",
+ "coreduo",
+ "Haswell",
+ "Haswell-noTSX",
+ "host",
+ "IvyBridge",
+ "kvm32",
+ "kvm64",
+ "Nehalem",
+ "Opteron_G1",
+ "Opteron_G2",
+ "Opteron_G3",
+ "Opteron_G4",
+ "Opteron_G5",
+ "Penryn",
+ "pentium",
+ "pentium2",
+ "pentium3",
+ "phenom",
+ "qemu32",
+ "qemu64",
+ "SandyBridge",
+ "Westmere"
+ ],
+ "type" : "string"
+ },
+ "hidden" : {
+ "default" : 0,
+ "description" : "Do not identify as a KVM virtual machine.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[cputype=]<enum> [,hidden=<1|0>]"
+ },
+ "cpulimit" : {
"default" : 0,
- "type" : "boolean",
+ "description" : "Limit of CPU usage.",
+ "maximum" : 128,
+ "minimum" : 0,
"optional" : 1,
- "description" : "Enable/disable Qemu GuestAgent."
+ "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."
},
- "reboot" : {
- "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
- "type" : "boolean",
+ "cpuunits" : {
+ "default" : 1024,
+ "description" : "CPU weight for a VM.",
+ "maximum" : 500000,
+ "minimum" : 0,
"optional" : 1,
- "default" : 1
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 500000)",
+ "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0."
},
- "bootdisk" : {
- "description" : "Enable booting from specified disk.",
- "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "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>"
+ },
+ "force" : {
+ "description" : "Allow to overwrite existing VM.",
"optional" : 1,
- "format" : "pve-qm-bootdisk"
+ "requires" : "archive",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "smbios1" : {
- "description" : "Specify SMBIOS type 1 fields.",
- "type" : "string",
+ "hostpci[n]" : {
+ "description" : "Map host PCI devices into guest.",
+ "format" : "pve-qm-hostpci",
"optional" : 1,
- "maxLength" : 256,
- "format" : "pve-qm-smbios1"
+ "type" : "string",
+ "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,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"
},
- "numa" : {
- "description" : "Enable/disable NUMA.",
- "default" : 0,
+ "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" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "cpuunits" : {
- "minimum" : 0,
- "default" : 1000,
- "maximum" : 500000,
- "type" : "integer",
+ "hugepages" : {
+ "description" : "Enable/disable hugepages memory.",
+ "enum" : [
+ "any",
+ "2",
+ "1024"
+ ],
"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."
+ "type" : "string"
},
"ide[n]" : {
+ "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
"format" : {
- "bps_rd" : {
- "format_description" : "bps",
- "type" : "integer",
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second."
+ "type" : "string"
},
- "cyls" : {
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "type" : "integer",
- "format_description" : "count"
+ "type" : "boolean"
},
- "mbps" : {
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "type" : "number",
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "integer"
},
- "trans" : {
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "description" : "Force disk geometry bios translation mode.",
- "type" : "string",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "none|lba|auto"
- },
- "volume" : {
- "alias" : "file"
+ "type" : "integer"
},
- "mbps_rd" : {
- "description" : "Maximum read speed speed in megabytes per second.",
- "type" : "number",
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "integer"
},
- "mbps_wr" : {
- "format_description" : "mbps",
- "type" : "number",
+ "bps_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Maximum write speed speed in megabytes per second."
+ "type" : "integer"
},
- "file" : {
- "description" : "The drive's backing volume.",
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "format_description" : "volume",
- "default_key" : 1
- },
- "iops" : {
- "format_description" : "iops",
- "description" : "Maximum r/w I/O speed in operations per second.",
- "type" : "integer",
- "optional" : 1
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "model" : {
- "maxLength" : 120,
- "format" : "urlencoded",
- "format_description" : "model",
- "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+ "bps_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string"
+ "type" : "integer"
},
- "aio" : {
- "format_description" : "native|threads",
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
- "native",
- "threads"
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
- "description" : "AIO type to use.",
"optional" : 1,
"type" : "string"
},
- "werror" : {
- "format_description" : "enospc|ignore|report|stop",
- "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" : [
- "enospc",
"ignore",
- "report",
- "stop"
+ "on"
],
- "description" : "Write error action."
+ "optional" : 1,
+ "type" : "string"
},
- "iops_wr_max" : {
+ "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",
- "type" : "integer",
"optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second."
+ "type" : "integer"
},
- "backup" : {
- "type" : "boolean",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off"
+ "type" : "integer"
},
- "bps_wr" : {
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
- "type" : "integer",
- "optional" : 1
+ "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",
- "description" : "Maximum read I/O speed in operations per second.",
- "type" : "integer",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "size" : {
- "format" : "disk-size",
- "description" : "Disk size. This is purely informational and has no effect.",
+ "iops_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string"
+ "type" : "integer"
},
- "mbps_max" : {
- "format_description" : "mbps",
- "type" : "number",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second."
+ "type" : "integer"
},
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "integer",
- "format_description" : "count"
+ "type" : "integer"
},
- "serial" : {
+ "iops_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format" : "urlencoded",
- "maxLength" : 60,
- "format_description" : "serial"
+ "type" : "integer"
},
- "mbps_wr_max" : {
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
"format_description" : "mbps",
- "type" : "number",
"optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second."
+ "type" : "number"
},
- "format" : {
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "string",
- "description" : "The drive's backing file's data format.",
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "format_description" : "drive format"
+ "type" : "number"
},
- "iops_rd_max" : {
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "number"
},
- "bps" : {
- "description" : "Maximum r/w speed speed in bytes per second.",
- "type" : "integer",
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "bps"
+ "type" : "number"
},
- "discard" : {
- "format_description" : "ignore|on",
- "type" : "string",
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "enum" : [
- "ignore",
- "on"
- ]
+ "type" : "number"
},
- "mbps_rd_max" : {
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "number"
},
"media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
"enum" : [
"cdrom",
"disk"
],
- "description" : "The drive's media type.",
- "optional" : 1,
- "type" : "string",
- "default" : "disk",
- "format_description" : "cdrom|disk"
- },
- "secs" : {
- "optional" : 1,
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count"
- },
- "iops_wr" : {
- "type" : "integer",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "string"
},
- "detect_zeroes" : {
+ "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" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "type" : "string"
},
"rerror" : {
- "format_description" : "ignore|report|stop",
- "type" : "string",
- "optional" : 1,
"description" : "Read error action.",
"enum" : [
"ignore",
"report",
"stop"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "cache" : {
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"optional" : 1,
- "type" : "string",
- "description" : "The drive's cache mode",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
+ "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"
+ },
+ "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" : "Whether the drive should be included when making snapshots.",
"optional" : 1,
- "type" : "boolean",
- "description" : "Whether the drive should be included when making snapshots."
+ "type" : "boolean"
},
- "iops_max" : {
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
},
- "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
"optional" : 1,
- "type" : "string"
- },
- "archive" : {
- "maxLength" : 255,
- "description" : "The backup file.",
- "optional" : 1,
- "type" : "string"
- },
- "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)",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-qm-watchdog"
- },
- "hotplug" : {
- "type" : "string",
- "optional" : 1,
- "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"
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
},
"keyboard" : {
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
+ "default" : "en-us",
+ "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.conf' configuration file.",
"enum" : [
+ "de",
+ "de-ch",
"da",
- "sv",
"en-gb",
- "lt",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
"is",
+ "it",
+ "ja",
+ "lt",
"mk",
- "pl",
- "hu",
- "fr-be",
- "pt-br",
- "de-ch",
"nl",
"no",
- "tr",
- "sl",
- "de",
- "fr-ca",
- "ja",
- "es",
- "it",
+ "pl",
"pt",
- "fr",
- "en-us",
- "fi",
- "fr-ch"
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
],
- "default" : "en-us",
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "hostpci[n]" : {
- "format" : "pve-qm-hostpci",
+ "kvm" : {
+ "default" : 1,
+ "description" : "Enable/disable KVM hardware virtualization.",
"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"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "lock" : {
+ "localtime" : {
+ "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
"optional" : 1,
- "type" : "string",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
"enum" : [
"migrate",
"backup",
"snapshot",
"rollback"
],
- "description" : "Lock/unlock the VM."
+ "optional" : 1,
+ "type" : "string"
},
- "autostart" : {
- "description" : "Automatic restart after crash (currently ignored).",
+ "machine" : {
+ "description" : "Specific the Qemu machine type.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
+ "type" : "string"
+ },
+ "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" : "boolean"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "tdf" : {
- "description" : "Enable/disable time drift fix.",
+ "name" : {
+ "description" : "Set a name for the VM. Only used on the configuration web interface.",
+ "format" : "dns-name",
+ "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,
+ "type" : "string"
+ },
+ "e1000" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82540em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82544gc" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82545em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "firewall" : {
+ "description" : "Whether this interface should be protected by the firewall.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "i82551" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82557b" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82559er" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "link_down" : {
+ "description" : "Whether this interface should be disconnected (like pulling the plug).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "macaddr" : {
+ "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "pattern" : "(?^i:[0-9a-f]{2}(?::[0-9a-f]{2}){5})",
+ "type" : "string"
+ },
+ "model" : {
+ "default_key" : 1,
+ "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
+ "enum" : [
+ "rtl8139",
+ "ne2k_pci",
+ "e1000",
+ "pcnet",
+ "virtio",
+ "ne2k_isa",
+ "i82551",
+ "i82557b",
+ "i82559er",
+ "vmxnet3",
+ "e1000-82540em",
+ "e1000-82544gc",
+ "e1000-82545em"
+ ],
+ "type" : "string"
+ },
+ "ne2k_isa" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "ne2k_pci" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "pcnet" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "queues" : {
+ "description" : "Number of packet queues to be used on the device.",
+ "maximum" : 16,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number"
+ },
+ "rtl8139" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "tag" : {
+ "description" : "VLAN tag to apply to packets on this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "trunks" : {
+ "description" : "VLAN trunks to pass through this interface.",
+ "format_description" : "vlanid[;vlanid...]",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "virtio" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "vmxnet3" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[model=]<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>]"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "numa" : {
"default" : 0,
+ "description" : "Enable/disable NUMA.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
"numa[n]" : {
+ "description" : "NUMA topology.",
"format" : {
- "hostnodes" : {
- "description" : "host numa nodes to use",
+ "cpus" : {
+ "description" : "CPUs accessing this NUMA node.",
+ "format_description" : "id[-id];...",
"pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "optional" : 1,
- "type" : "string",
- "format_description" : "id[-id];..."
+ "type" : "string"
},
- "cpus" : {
+ "hostnodes" : {
+ "description" : "Host NUMA nodes to use.",
"format_description" : "id[-id];...",
- "type" : "string",
- "description" : "CPUs accessing this numa node.",
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)"
+ "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.",
+ "description" : "NUMA allocation policy.",
"enum" : [
"preferred",
"bind",
"interleave"
],
- "type" : "string",
- "optional" : 1,
- "format_description" : "preferred|bind|interleave"
- },
- "memory" : {
- "format_description" : "mb",
- "type" : "number",
"optional" : 1,
- "description" : "Amount of memory this numa node provides."
+ "type" : "string"
}
},
"optional" : 1,
"type" : "string",
- "description" : "numa topology"
+ "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
},
- "boot" : {
- "default" : "cdn",
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
"optional" : 1,
- "type" : "string",
- "pattern" : "[acdn]{1,4}",
- "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)."
- },
- "unused[n]" : {
- "format" : "pve-volume-id",
- "description" : "Reference to unused volumes.",
- "type" : "string",
- "optional" : 1
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"ostype" : {
- "type" : "string",
- "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",
+ "description" : "Specify guest operating system.",
"enum" : [
"other",
"wxp",
"wvista",
"win7",
"win8",
+ "win10",
"l24",
"l26",
"solaris"
- ]
- },
- "unique" : {
- "requires" : "archive",
- "description" : "Assign a unique random ethernet address.",
+ ],
"optional" : 1,
- "type" : "boolean"
+ "type" : "string",
+ "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
},
- "migrate_speed" : {
- "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
- "default" : 0,
+ "parallel[n]" : {
+ "description" : "Map host parallel devices (n is 0 to 2).",
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "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"
},
- "startdate" : {
- "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
- "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'.",
- "default" : "now",
+ "pool" : {
+ "description" : "Add the VM to the specified pool.",
+ "format" : "pve-poolid",
"optional" : 1,
"type" : "string",
- "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
+ "typetext" : "<string>"
},
- "localtime" : {
+ "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" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS."
+ "typetext" : "<boolean>"
},
- "kvm" : {
- "description" : "Enable/disable KVM hardware virtualization.",
+ "reboot" : {
"default" : 1,
+ "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
"sata[n]" : {
+ "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
"format" : {
- "mbps_rd" : {
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second.",
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
"optional" : 1,
- "type" : "number"
+ "type" : "string"
},
- "mbps_wr" : {
- "type" : "number",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "file" : {
- "description" : "The drive's backing volume.",
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "format_description" : "volume",
- "default_key" : 1
+ "type" : "boolean"
},
- "iops" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops"
- },
- "werror" : {
- "description" : "Write error action.",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string",
- "optional" : 1,
- "format_description" : "enospc|ignore|report|stop"
- },
- "aio" : {
- "enum" : [
- "native",
- "threads"
- ],
- "description" : "AIO type to use.",
- "type" : "string",
- "optional" : 1,
- "format_description" : "native|threads"
- },
- "iops_wr_max" : {
- "format_description" : "iops",
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second."
+ "type" : "integer"
},
- "backup" : {
- "type" : "boolean",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off"
+ "type" : "integer"
},
"bps_rd" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
- },
- "cyls" : {
- "optional" : 1,
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "format_description" : "count"
- },
- "mbps" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "number",
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "volume" : {
- "alias" : "file"
+ "type" : "integer"
},
- "trans" : {
- "format_description" : "none|lba|auto",
- "type" : "string",
+ "bps_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "description" : "Force disk geometry bios translation mode."
+ "type" : "integer"
},
- "media" : {
- "format_description" : "cdrom|disk",
- "type" : "string",
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "default" : "disk",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "description" : "The drive's media type."
+ "type" : "integer"
},
- "rerror" : {
- "description" : "Read error action.",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
+ "bps_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "format_description" : "ignore|report|stop"
+ "type" : "integer"
},
"cache" : {
- "type" : "string",
- "optional" : 1,
"description" : "The drive's cache mode",
"enum" : [
"none",
"unsafe",
"directsync"
],
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
- },
- "secs" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "type" : "integer",
- "optional" : 1
+ "optional" : 1,
+ "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"
},
"optional" : 1,
"type" : "boolean"
},
- "iops_max" : {
- "format_description" : "iops",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "type" : "integer",
- "optional" : 1
- },
- "snapshot" : {
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
- "optional" : 1,
- "type" : "boolean"
- },
- "bps_wr" : {
- "format_description" : "bps",
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum write speed speed in bytes per second."
- },
- "mbps_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
- },
- "iops_rd" : {
- "format_description" : "iops",
- "optional" : 1,
- "type" : "integer",
- "description" : "Maximum read I/O speed in operations per second."
- },
- "size" : {
- "format" : "disk-size",
- "type" : "string",
- "optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
- },
- "iops_rd_max" : {
- "format_description" : "iops",
- "optional" : 1,
- "type" : "integer",
- "description" : "Maximum unthrottled read I/O pool speed in operations per second."
- },
- "mbps_wr_max" : {
- "format_description" : "mbps",
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
"optional" : 1,
- "type" : "number",
- "description" : "Maximum unthrottled write pool speed in megabytes per second."
+ "type" : "string"
},
- "bps" : {
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
- "optional" : 1,
- "type" : "integer"
+ "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.",
- "type" : "string",
"optional" : 1,
- "format_description" : "drive format"
+ "type" : "string"
},
"heads" : {
- "optional" : 1,
- "type" : "integer",
"description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count"
- },
- "serial" : {
- "format_description" : "serial",
- "format" : "urlencoded",
- "maxLength" : 60,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "type" : "string",
- "optional" : 1
- },
- "discard" : {
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "enum" : [
- "ignore",
- "on"
- ],
- "type" : "string",
"optional" : 1,
- "format_description" : "ignore|on"
+ "type" : "integer"
},
- "mbps_rd_max" : {
- "format_description" : "mbps",
- "optional" : 1,
- "type" : "number",
- "description" : "Maximum unthrottled read pool speed in megabytes per second."
- }
- },
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
- "type" : "string",
- "optional" : 1
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- },
- "force" : {
- "requires" : "archive",
- "description" : "Allow to overwrite existing VM.",
- "type" : "boolean",
- "optional" : 1
- },
- "cpulimit" : {
- "minimum" : 0,
- "default" : 0,
- "maximum" : 128,
- "type" : "number",
- "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."
- },
- "tablet" : {
- "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).",
- "optional" : 1,
- "type" : "boolean",
- "default" : 1
- },
- "vga" : {
- "type" : "string",
- "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"
- ]
- },
- "virtio[n]" : {
- "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
- "optional" : 1,
- "type" : "string",
- "format" : {
- "snapshot" : {
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean",
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "on|off"
+ "type" : "integer"
},
"iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
"format_description" : "iops",
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second."
+ "type" : "integer"
},
- "iothread" : {
- "format_description" : "off|on",
- "type" : "boolean",
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Whether to use iothreads for this drive"
+ "type" : "integer"
},
- "media" : {
- "format_description" : "cdrom|disk",
- "default" : "disk",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "string",
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
- ]
+ "type" : "integer"
},
- "secs" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "iops_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
"type" : "integer"
},
"iops_wr" : {
- "type" : "integer",
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "integer"
},
- "detect_zeroes" : {
+ "iops_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "type" : "integer"
},
- "rerror" : {
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "string",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
- "description" : "Read error action.",
- "format_description" : "ignore|report|stop"
- },
- "cache" : {
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "description" : "The drive's cache mode",
- "optional" : 1,
- "type" : "string"
- },
- "heads" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count"
- },
- "serial" : {
- "format_description" : "serial",
- "maxLength" : 60,
- "format" : "urlencoded",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "type" : "string",
- "optional" : 1
+ "type" : "integer"
},
- "mbps_wr_max" : {
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
"format_description" : "mbps",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
- },
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "type" : "integer",
"optional" : 1,
- "format_description" : "iops"
+ "type" : "number"
},
- "format" : {
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "description" : "The drive's backing file's data format.",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "string",
- "format_description" : "drive format"
+ "type" : "number"
},
- "bps" : {
- "format_description" : "bps",
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum r/w speed speed in bytes per second."
- },
- "discard" : {
- "format_description" : "ignore|on",
- "enum" : [
- "ignore",
- "on"
- ],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "type" : "string",
- "optional" : 1
+ "type" : "number"
},
"mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "number",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "bps_wr" : {
- "description" : "Maximum write speed speed in bytes per second.",
- "type" : "integer",
- "optional" : 1,
- "format_description" : "bps"
- },
- "iops_rd" : {
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second.",
- "type" : "integer",
- "optional" : 1
+ "type" : "number"
},
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "string",
- "format" : "disk-size"
+ "type" : "number"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "number",
- "format_description" : "mbps"
+ "type" : "number"
},
- "aio" : {
- "type" : "string",
- "optional" : 1,
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
"enum" : [
- "native",
- "threads"
+ "cdrom",
+ "disk"
],
- "description" : "AIO type to use.",
- "format_description" : "native|threads"
- },
- "werror" : {
"optional" : 1,
- "type" : "string",
- "description" : "Write error action.",
+ "type" : "string"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
"enum" : [
- "enospc",
"ignore",
"report",
"stop"
],
- "format_description" : "enospc|ignore|report|stop"
+ "optional" : 1,
+ "type" : "string"
},
- "iops_wr_max" : {
- "format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"optional" : 1,
"type" : "integer"
},
- "backup" : {
- "format_description" : "on|off",
- "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" : "Whether the drive should be included when making backups."
- },
- "mbps_rd" : {
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
+ "type" : "string"
},
- "mbps_wr" : {
- "format_description" : "mbps",
- "type" : "number",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "description" : "Maximum write speed speed in megabytes per second."
- },
- "file" : {
- "type" : "string",
- "description" : "The drive's backing volume.",
- "default_key" : 1,
- "format_description" : "volume",
- "format" : "pve-volume-id-or-qm-path"
+ "type" : "string"
},
- "iops" : {
- "format_description" : "iops",
- "type" : "integer",
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
"optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second."
+ "type" : "boolean"
},
"trans" : {
- "type" : "string",
- "optional" : 1,
"description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
- "format_description" : "none|lba|auto"
- },
- "volume" : {
- "alias" : "file"
- },
- "bps_rd" : {
- "description" : "Maximum read speed speed in bytes per second.",
- "type" : "integer",
- "optional" : 1,
- "format_description" : "bps"
- },
- "cyls" : {
- "type" : "integer",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "format_description" : "count"
+ "type" : "string"
},
- "mbps" : {
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "optional" : 1,
- "type" : "number",
- "format_description" : "mbps"
- }
- }
- },
- "balloon" : {
- "optional" : 1,
- "type" : "integer",
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
- "minimum" : 0
- },
- "scsi[n]" : {
- "format" : {
"volume" : {
"alias" : "file"
},
- "trans" : {
- "type" : "string",
- "optional" : 1,
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "description" : "Force disk geometry bios translation mode.",
- "format_description" : "none|lba|auto"
- },
- "queues" : {
- "minimum" : 2,
- "format_description" : "nbqueues",
- "optional" : 1,
- "type" : "integer",
- "description" : "Number of queues."
- },
- "bps_rd" : {
- "format_description" : "bps",
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum read speed speed in bytes per second."
- },
- "mbps" : {
- "format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "optional" : 1,
- "type" : "number"
- },
- "cyls" : {
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "optional" : 1,
- "type" : "integer",
- "format_description" : "count"
- },
"werror" : {
+ "description" : "Write error action.",
"enum" : [
"enospc",
"ignore",
"report",
"stop"
],
- "description" : "Write error action.",
"optional" : 1,
- "type" : "string",
- "format_description" : "enospc|ignore|report|stop"
- },
+ "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_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+ },
+ "scsi[n]" : {
+ "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+ "format" : {
"aio" : {
- "format_description" : "native|threads",
- "optional" : 1,
- "type" : "string",
+ "description" : "AIO type to use.",
"enum" : [
"native",
"threads"
],
- "description" : "AIO type to use."
+ "optional" : 1,
+ "type" : "string"
},
"backup" : {
- "format_description" : "on|off",
+ "description" : "Whether the drive should be included when making backups.",
"optional" : 1,
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups."
+ "type" : "boolean"
},
- "iops_wr_max" : {
- "format_description" : "iops",
- "type" : "integer",
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second."
- },
- "mbps_wr" : {
- "format_description" : "mbps",
- "description" : "Maximum write speed speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
+ "type" : "integer"
},
- "mbps_rd" : {
- "format_description" : "mbps",
- "type" : "number",
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second."
+ "type" : "integer"
},
- "iops" : {
- "format_description" : "iops",
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
"type" : "integer"
},
- "file" : {
- "format" : "pve-volume-id-or-qm-path",
- "format_description" : "volume",
- "default_key" : 1,
- "description" : "The drive's backing volume.",
- "type" : "string"
- },
- "bps" : {
- "type" : "integer",
+ "bps_rd_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 bytes per second.",
- "format_description" : "bps"
+ "type" : "integer"
},
- "mbps_wr_max" : {
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "number",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "integer"
},
- "format" : {
+ "bps_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
- "raw",
- "cow",
+ "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"
],
- "description" : "The drive's backing file's data format.",
- "format_description" : "drive format"
+ "optional" : 1,
+ "type" : "string"
},
- "iops_rd_max" : {
+ "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",
- "type" : "integer",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second."
+ "type" : "integer"
},
- "serial" : {
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "string",
- "format_description" : "serial",
- "format" : "urlencoded",
- "maxLength" : 60
+ "type" : "integer"
},
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "type" : "integer",
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "count"
+ "type" : "integer"
},
- "mbps_rd_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number",
- "optional" : 1
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
},
- "discard" : {
- "enum" : [
- "ignore",
- "on"
- ],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "type" : "string",
+ "iops_rd_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "ignore|on"
+ "type" : "integer"
},
- "bps_wr" : {
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
"type" : "integer"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "type" : "number",
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "integer"
},
- "size" : {
- "format" : "disk-size",
- "description" : "Disk size. This is purely informational and has no effect.",
- "type" : "string",
- "optional" : 1
+ "iops_wr_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "iops_rd" : {
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
"format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second.",
"optional" : 1,
"type" : "integer"
},
- "iops_max" : {
- "format_description" : "iops",
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
"optional" : 1,
- "type" : "integer",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second."
+ "type" : "boolean"
},
- "snapshot" : {
- "description" : "Whether the drive should be included when making snapshots.",
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "boolean",
- "format_description" : "on|off"
+ "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" : {
- "format_description" : "cdrom|disk",
+ "default" : "disk",
"description" : "The drive's media type.",
"enum" : [
"cdrom",
"disk"
],
- "default" : "disk",
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "iothread" : {
- "format_description" : "off|on",
- "description" : "Whether to use iothreads for this drive",
- "type" : "boolean",
- "optional" : 1
+ "queues" : {
+ "description" : "Number of queues.",
+ "minimum" : 2,
+ "optional" : 1,
+ "type" : "integer"
},
- "cache" : {
- "description" : "The drive's cache mode",
+ "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"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
+ "lba",
+ "auto"
],
"optional" : 1,
- "type" : "string",
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
- },
- "detect_zeroes" : {
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean",
- "optional" : 1
+ "type" : "string"
},
- "iops_wr" : {
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second.",
- "type" : "integer",
- "optional" : 1
+ "volume" : {
+ "alias" : "file"
},
- "secs" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "type" : "integer",
- "optional" : 1
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
},
- "type" : "string",
- "optional" : 1,
- "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13)."
- },
- "net[n]" : {
"optional" : 1,
"type" : "string",
- "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",
- "format" : "pve-qm-net"
- },
- "machine" : {
- "maxLength" : 40,
- "description" : "Specific the Qemu machine type.",
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
- "optional" : 1,
- "type" : "string"
- },
- "smp" : {
- "description" : "The number of CPUs. Please use option -sockets instead.",
- "optional" : 1,
- "type" : "integer",
- "default" : 1,
- "minimum" : 1
- },
- "bios" : {
- "description" : "Select BIOS implementation.",
- "enum" : [
- "seabios",
- "ovmf"
- ],
- "default" : "seabios",
- "optional" : 1,
- "type" : "string"
- },
- "shares" : {
- "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",
- "type" : "integer",
- "optional" : 1,
- "default" : 1000,
- "maximum" : 50000,
- "minimum" : 0
- },
- "template" : {
- "description" : "Enable/disable Template.",
- "default" : 0,
- "optional" : 1,
- "type" : "boolean"
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,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>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
},
"scsihw" : {
+ "default" : "lsi",
+ "description" : "SCSI controller model",
"enum" : [
"lsi",
"lsi53c810",
"megasas",
"pvscsi"
],
- "description" : "scsi controller model",
- "type" : "string",
"optional" : 1,
- "default" : "lsi"
+ "type" : "string"
},
- "usb[n]" : {
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3)",
+ "optional" : 1,
+ "pattern" : "(/dev/.+|socket)",
"type" : "string",
+ "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "shares" : {
+ "default" : 1000,
+ "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning",
+ "maximum" : 50000,
+ "minimum" : 0,
"optional" : 1,
- "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",
+ "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)"
+ },
+ "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,
+ "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)."
+ },
+ "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" : {
"host" : {
"default_key" : 1,
- "format_description" : "HOSTUSBDEVICE|spice",
+ "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",
- "type" : "string",
- "description" : "The Host USB device or port or the value spice"
+ "format_description" : "HOSTUSBDEVICE|spice",
+ "type" : "string"
},
"usb3" : {
- "format_description" : "yes|no",
- "description" : "Specifies whether if given host option is a USB3 device or port",
+ "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"
}
- }
- },
- "cpu" : {
- "format" : {
- "hidden" : {
- "description" : "Do not identify as a KVM virtual machine.",
- "type" : "boolean",
- "optional" : 1,
- "default" : 0
- },
- "cputype" : {
- "description" : "Emulated CPU type.",
- "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" : "kvm64",
- "type" : "string",
- "format_description" : "cputype",
- "default_key" : 1
- }
},
- "type" : "string",
"optional" : 1,
- "description" : "Emulated CPU type."
- },
- "cdrom" : {
- "format" : "pve-qm-drive",
- "typetext" : "volume",
- "description" : "This is an alias for option -ide2",
"type" : "string",
- "optional" : 1
+ "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
},
- "memory" : {
- "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
- "default" : 512,
+ "vcpus" : {
+ "default" : 0,
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
"optional" : 1,
"type" : "integer",
- "minimum" : 16
- },
- "args" : {
- "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
- "type" : "string",
- "optional" : 1
+ "typetext" : "<integer> (1 - N)"
},
- "protection" : {
- "description" : "Sets the protection flag of the VM. This will prevent the remove operation.",
- "default" : 0,
- "type" : "boolean",
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- },
- "name" : "create_vm",
- "protected" : 1,
- "returns" : {
- "type" : "string"
- },
- "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"
- },
- "description" : "Create or restore a virtual machine.",
- "proxyto" : "node"
- },
- "GET" : {
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
+ "vga" : {
+ "description" : "Select the VGA type.",
+ "enum" : [
+ "std",
+ "cirrus",
+ "vmware",
+ "qxl",
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3",
+ "qxl2",
+ "qxl3",
+ "qxl4"
+ ],
+ "optional" : 1,
"type" : "string",
- "description" : "The cluster node name."
+ "verbose_description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal."
},
- "full" : {
- "optional" : 1,
- "type" : "boolean",
- "description" : "Determine the full status of active VMs."
- }
- },
- "additionalProperties" : 0
- },
- "name" : "vmlist",
- "method" : "GET",
- "description" : "Virtual machine index (per node).",
- "proxyto" : "node",
- "permissions" : {
- "user" : "all",
- "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>."
- },
- "returns" : {
- "type" : "array",
- "links" : [
- {
- "href" : "{vmid}",
- "rel" : "child"
- }
- ],
- "items" : {
- "properties" : {},
- "type" : "object"
- }
- }
- }
- },
- "path" : "/nodes/{node}/qemu",
- "leaf" : 0
- },
- {
- "path" : "/nodes/{node}/lxc",
- "leaf" : 0,
- "text" : "lxc",
- "children" : [
- {
- "path" : "/nodes/{node}/lxc/{vmid}",
- "leaf" : 0,
- "children" : [
- {
- "text" : "config",
- "info" : {
- "PUT" : {
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "cmode" : {
- "optional" : 1,
- "type" : "string",
- "default" : "tty",
- "enum" : [
- "shell",
- "console",
- "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)."
- },
- "description" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Container description. Only used on the configuration web interface."
- },
- "swap" : {
- "minimum" : 0,
- "description" : "Amount of SWAP for the VM in MB.",
- "optional" : 1,
- "type" : "integer",
- "default" : 512
- },
- "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",
- "unmanaged"
- ],
- "type" : "string",
- "optional" : 1
- },
- "unprivileged" : {
- "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
- "type" : "boolean",
- "optional" : 1,
- "default" : 0
- },
- "unused[n]" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Reference to unused volumes.",
- "format" : "pve-volume-id"
+ "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" : {
+ "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" : {
+ "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" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "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" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "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"
+ },
+ "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"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_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_length=<seconds>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_length=<seconds>] [,iops_wr_max=<iops>] [,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>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "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>"
+ },
+ "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" : {
+ "digest" : {
+ "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
+ "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"
+ ],
+ "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",
- "description" : "A list of settings you want to delete."
+ "typetext" : "<string>"
},
- "console" : {
- "description" : "Attach a console device (/dev/console) to the container.",
- "default" : 1,
+ "description" : {
+ "description" : "Container description. Only used on the configuration web interface.",
"optional" : 1,
- "type" : "boolean"
+ "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>"
+ },
+ "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" : [
+ "migrate",
+ "backup",
+ "snapshot",
+ "rollback"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB.",
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - N)"
},
"mp[n]" : {
+ "description" : "Use volume as container mount point.",
"format" : {
- "ro" : {
- "format_description" : "ro",
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "type" : "boolean",
- "optional" : 1
- },
"acl" : {
"description" : "Explicitly enable or disable ACL support.",
- "type" : "boolean",
- "optional" : 1,
- "format_description" : "acl"
- },
- "size" : {
- "format_description" : "DiskSize",
- "format" : "disk-size",
"optional" : 1,
- "type" : "string",
- "description" : "Volume size (read only value)."
+ "type" : "boolean"
},
"backup" : {
- "description" : "Whether to include the mountpoint in backups.",
+ "description" : "Whether to include the mount point in backups.",
"optional" : 1,
"type" : "boolean",
- "format_description" : "[1|0]"
+ "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"
+ },
+ "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,
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
- "format_description" : "[0|1]"
+ "type" : "string"
},
"volume" : {
"default_key" : 1,
- "format_description" : "volume",
- "format" : "pve-lxc-mp-string",
- "type" : "string",
- "description" : "Volume, device or directory to mount into the container."
- },
- "mp" : {
- "description" : "Path to the mountpoint as seen from inside the container.",
- "type" : "string",
+ "description" : "Volume, device or directory to mount into the container.",
"format" : "pve-lxc-mp-string",
- "format_description" : "Path"
+ "format_description" : "volume",
+ "type" : "string"
}
},
- "type" : "string",
- "optional" : 1,
- "description" : "Use volume as container mount point (experimental feature)."
- },
- "cpulimit" : {
- "optional" : 1,
- "type" : "number",
- "maximum" : 128,
- "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.",
- "minimum" : 0
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- },
- "startup" : {
- "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
- "type" : "string",
"optional" : 1,
- "format" : "pve-startup-order",
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
- },
- "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
- },
- "onboot" : {
- "description" : "Specifies whether a VM will be started during system bootup.",
- "default" : 0,
- "type" : "boolean",
- "optional" : 1
+ "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
},
- "tty" : {
- "minimum" : 0,
- "type" : "integer",
+ "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,
- "default" : 2,
- "maximum" : 6,
- "description" : "Specify the number of tty available to the container"
- },
- "arch" : {
- "description" : "OS architecture type.",
- "enum" : [
- "amd64",
- "i386"
- ],
- "default" : "amd64",
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
"net[n]" : {
+ "description" : "Specifies network interfaces for the container.",
"format" : {
- "firewall" : {
- "format_description" : "[1|0]",
- "optional" : 1,
- "type" : "boolean",
- "description" : "Controls whether this interface's firewall rules should be used."
- },
- "type" : {
- "type" : "string",
+ "bridge" : {
+ "description" : "Bridge to attach the network device to.",
+ "format_description" : "bridge",
"optional" : 1,
- "enum" : [
- "veth"
- ],
- "description" : "Network interface type."
+ "pattern" : "[-_.\\w\\d]+",
+ "type" : "string"
},
- "ip" : {
- "description" : "IPv4 address in CIDR format.",
+ "firewall" : {
+ "description" : "Controls whether this interface's firewall rules should be used.",
"optional" : 1,
- "type" : "string",
- "format_description" : "IPv4Format/CIDR",
- "format" : "pve-ipv4-config"
+ "type" : "boolean"
},
- "trunks" : {
- "type" : "string",
+ "gw" : {
+ "description" : "Default gateway for IPv4 traffic.",
+ "format" : "ipv4",
+ "format_description" : "GatewayIPv4",
"optional" : 1,
- "description" : "VLAN ids to pass through the interface",
- "pattern" : "(?^:\\d+(?:;\\d+)*)",
- "format_description" : "vlanid[;vlanid...]"
+ "type" : "string"
},
"gw6" : {
- "format_description" : "GatewayIPv6",
- "format" : "ipv6",
"description" : "Default gateway for IPv6 traffic.",
+ "format" : "ipv6",
+ "format_description" : "GatewayIPv6",
"optional" : 1,
"type" : "string"
},
- "tag" : {
- "format_description" : "VlanNo",
- "minimum" : "2",
- "description" : "VLAN tag for this interface.",
+ "hwaddr" : {
+ "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
"optional" : 1,
- "type" : "integer",
- "maximum" : "4094"
+ "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})",
+ "type" : "string"
},
- "ip6" : {
+ "ip" : {
+ "description" : "IPv4 address in CIDR format.",
+ "format" : "pve-ipv4-config",
+ "format_description" : "IPv4Format/CIDR",
"optional" : 1,
- "type" : "string",
+ "type" : "string"
+ },
+ "ip6" : {
"description" : "IPv6 address in CIDR format.",
"format" : "pve-ipv6-config",
- "format_description" : "IPv6Format/CIDR"
- },
- "gw" : {
- "format" : "ipv4",
- "format_description" : "GatewayIPv4",
+ "format_description" : "IPv6Format/CIDR",
"optional" : 1,
- "type" : "string",
- "description" : "Default gateway for IPv4 traffic."
+ "type" : "string"
},
- "bridge" : {
- "format_description" : "vmbr<Number>",
+ "mtu" : {
+ "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
+ "minimum" : 64,
"optional" : 1,
- "type" : "string",
- "description" : "Bridge to attach the network device to.",
- "pattern" : "[-_.\\w\\d]+"
+ "type" : "integer"
},
"name" : {
- "format_description" : "String",
- "type" : "string",
+ "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
+ "format_description" : "string",
"pattern" : "[-_.\\w\\d]+",
- "description" : "Name of the network device as seen from inside the container. (lxc.network.name)"
+ "type" : "string"
},
- "hwaddr" : {
- "description" : "Bridge to attach the network device to. (lxc.network.hwaddr)",
- "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})",
+ "rate" : {
+ "description" : "Apply rate limiting to the interface",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "string",
- "format_description" : "MAC"
+ "type" : "number"
},
- "mtu" : {
- "minimum" : 64,
- "format_description" : "Number",
- "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
+ "tag" : {
+ "description" : "VLAN tag for this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
"optional" : 1,
"type" : "integer"
},
- "rate" : {
- "description" : "Apply rate limiting to the interface",
- "type" : "number",
+ "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,
- "format_description" : "mbps"
+ "type" : "string"
}
},
- "description" : "Specifies network interfaces for the container.",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
},
- "searchdomain" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"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.",
- "format" : "dns-name-list"
+ "typetext" : "<string>"
},
- "cpuunits" : {
- "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 the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
- "type" : "integer",
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
"optional" : 1,
- "default" : 1024,
- "maximum" : 500000
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "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.",
- "type" : "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,
- "format" : "address-list"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "type" : "string"
},
- "hostname" : {
- "maxLength" : 255,
- "format" : "dns-name",
- "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,
- "description" : "Set a host name for the container."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"rootfs" : {
"description" : "Use volume as container root.",
- "optional" : 1,
- "type" : "string",
"format" : {
"acl" : {
- "format_description" : "acl",
- "type" : "boolean",
+ "description" : "Explicitly enable or disable ACL support.",
"optional" : 1,
- "description" : "Explicitly enable or disable ACL support."
+ "type" : "boolean"
},
- "ro" : {
- "format_description" : "ro",
- "description" : "Read-only mountpoint (not supported with bind mounts)",
+ "quota" : {
+ "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
"optional" : 1,
"type" : "boolean"
},
- "backup" : {
- "format_description" : "[1|0]",
- "description" : "Whether to include the mountpoint in backups.",
+ "ro" : {
+ "description" : "Read-only mount point",
"optional" : 1,
"type" : "boolean"
},
- "size" : {
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
"optional" : 1,
- "type" : "string",
+ "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",
- "format" : "disk-size"
- },
- "quota" : {
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
"optional" : 1,
- "type" : "boolean",
- "format_description" : "[0|1]"
+ "type" : "string"
},
"volume" : {
- "format" : "pve-lxc-mp-string",
- "format_description" : "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>] [,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",
- "default" : 0
+ "typetext" : "<boolean>"
},
- "lock" : {
- "description" : "Lock/unlock the VM.",
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ],
- "type" : "string",
- "optional" : 1
+ "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)"
},
- "protection" : {
- "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
+ "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,
- "default" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
- "memory" : {
- "description" : "Amount of RAM for the VM in MB.",
- "default" : 512,
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "optional" : 1,
- "minimum" : 16
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "update_vm",
- "method" : "PUT",
- "proxyto" : "node",
- "description" : "Set container options.",
"permissions" : {
"check" : [
"perm",
1
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "null"
}
- },
- "GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "object",
- "properties" : {
- "digest" : {
- "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
- "type" : "string"
- }
- }
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "minimum" : 1,
- "format" : "pve-vmid"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "name" : "vm_config",
- "description" : "Get container configuration.",
- "proxyto" : "node"
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/config",
- "leaf" : 1
+ "text" : "config"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/status",
- "leaf" : 0,
- "text" : "status",
"children" : [
{
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/status/current",
"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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
- },
- "name" : "vm_status",
- "protected" : 1,
- "returns" : {
- "type" : "object"
+ }
},
"permissions" : {
"check" : [
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Get virtual machine status."
+ "returns" : {
+ "type" : "object"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/current",
"text" : "current"
},
{
"info" : {
"POST" : {
- "proxyto" : "node",
"description" : "Start the container.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "returns" : {
- "type" : "string"
- },
- "protected" : 1,
+ "method" : "POST",
"name" : "vm_start",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
"type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option."
+ "typetext" : "<boolean>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "method" : "POST"
- }
- },
- "text" : "start",
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/status/start"
- },
- {
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
- },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Stop the container. This will abruptly stop all processes running in the container.",
+ "protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/start",
+ "text" : "start"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Stop the container. This will abruptly stop all processes running in the container.",
"method" : "POST",
"name" : "vm_stop",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"skiplock" : {
"description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
- "text" : "stop",
"leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/status/stop"
+ "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
+ "text" : "stop"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
"info" : {
"POST" : {
- "protected" : 1,
+ "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" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- },
"forceStop" : {
+ "default" : 0,
"description" : "Make sure the Container stops.",
"optional" : 1,
"type" : "boolean",
- "default" : 0
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"timeout" : {
- "description" : "Wait maximal timeout seconds.",
"default" : 60,
- "type" : "integer",
+ "description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
"optional" : 1,
- "minimum" : 0
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
"description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "POST",
- "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
}
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
"text" : "shutdown"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
"info" : {
"POST" : {
- "returns" : {
- "type" : "string"
- },
- "proxyto" : "node",
"description" : "Suspend the container.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
"method" : "POST",
- "protected" : 1,
"name" : "vm_suspend",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "minimum" : 1
- },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
- }
- }
- },
- "text" : "suspend"
- },
- {
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
},
- "description" : "Resume the container.",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
- "method" : "POST",
"protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
+ "text" : "suspend"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Resume the container.",
+ "method" : "POST",
+ "name" : "vm_resume",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"vmid" : {
- "type" : "integer",
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
},
- "name" : "vm_resume"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
"text" : "resume"
}
],
"info" : {
"GET" : {
- "proxyto" : "node",
"description" : "Directory index",
+ "method" : "GET",
"name" : "vmcmdidx",
- "permissions" : {
- "user" : "all"
- },
"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.",
"format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "method" : "GET",
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"subdir" : {
},
"links" : [
{
- "rel" : "child",
- "href" : "{subdir}"
+ "href" : "{subdir}",
+ "rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/status",
+ "text" : "status"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
- "leaf" : 0,
- "text" : "snapshot",
"children" : [
{
- "text" : "{snapname}",
"children" : [
{
"info" : {
"POST" : {
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- },
- "proxyto" : "node",
"description" : "Rollback LXC state to specified snapshot.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
"method" : "POST",
- "protected" : 1,
+ "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,
- "description" : "The name of the snapshot.",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"vmid" : {
- "minimum" : 1,
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
},
- "name" : "rollback"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
}
},
- "text" : "rollback",
"leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback"
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
+ "text" : "rollback"
},
{
- "text" : "config",
"info" : {
"GET" : {
- "returns" : {
- "type" : "object"
- },
- "method" : "GET",
"description" : "Get snapshot configuration",
- "proxyto" : "node",
+ "method" : "GET",
+ "name" : "get_snapshot_config",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid"
- },
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"snapname" : {
+ "description" : "The name of the snapshot.",
"format" : "pve-configid",
"maxLength" : 40,
"type" : "string",
- "description" : "The name of the snapshot."
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
]
]
},
- "name" : "get_snapshot_config"
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
},
"PUT" : {
- "protected" : 1,
+ "description" : "Update snapshot metadata.",
+ "method" : "PUT",
"name" : "update_snapshot_config",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
+ "description" : {
+ "description" : "A textual description or comment.",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"snapname" : {
"description" : "The name of the snapshot.",
- "type" : "string",
"format" : "pve-configid",
- "maxLength" : 40
- },
- "description" : {
- "description" : "A textual description or comment.",
+ "maxLength" : 40,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
"vmid" : {
- "minimum" : 1,
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "method" : "PUT",
- "description" : "Update snapshot metadata.",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "null"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
- "leaf" : 1
+ "text" : "config"
}
],
"info" : {
- "GET" : {
+ "DELETE" : {
+ "description" : "Delete a LXC snapshot.",
+ "method" : "DELETE",
+ "name" : "delsnapshot",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "minimum" : 1,
- "format" : "pve-vmid"
+ "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" : {
- "type" : "string",
"description" : "The name of the snapshot.",
"format" : "pve-configid",
- "maxLength" : 40
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "snapshot_cmd_idx",
- "permissions" : {
- "user" : "all"
- },
- "description" : "",
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{cmd}",
- "rel" : "child"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- ],
- "type" : "array"
+ }
},
- "method" : "GET"
- },
- "DELETE" : {
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Delete a LXC snapshot.",
"returns" : {
"description" : "the task ID.",
"type" : "string"
- },
- "name" : "delsnapshot",
+ }
+ },
+ "GET" : {
+ "description" : "",
+ "method" : "GET",
+ "name" : "snapshot_cmd_idx",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid"
- },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
- },
- "force" : {
- "description" : "For removal from config file, even if removing disk snapshots fails.",
- "type" : "boolean",
- "optional" : 1
+ "typetext" : "<string>"
},
"snapname" : {
- "maxLength" : 40,
+ "description" : "The name of the snapshot.",
"format" : "pve-configid",
+ "maxLength" : 40,
"type" : "string",
- "description" : "The name of the snapshot."
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "protected" : 1,
- "method" : "DELETE"
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cmd}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
},
+ "leaf" : 0,
"path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
- "leaf" : 0
+ "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)"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "List all snapshots.",
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
"links" : [
{
"href" : "{name}",
"rel" : "child"
}
],
- "items" : {
- "properties" : {},
- "type" : "object"
- },
"type" : "array"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "list",
- "protected" : 1,
- "method" : "GET"
+ }
},
"POST" : {
+ "description" : "Snapshot a container.",
+ "method" : "POST",
+ "name" : "snapshot",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
"description" : {
- "type" : "string",
+ "description" : "A textual description or comment.",
"optional" : 1,
- "description" : "A textual description or comment."
- },
- "snapname" : {
- "description" : "The name of the snapshot.",
"type" : "string",
- "maxLength" : 40,
- "format" : "pve-configid"
+ "typetext" : "<string>"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "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)"
}
}
},
- "name" : "snapshot",
- "protected" : 1,
- "method" : "POST",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Snapshot a container.",
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
"description" : "the task ID.",
"type" : "string"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
+ "text" : "snapshot"
},
{
"children" : [
{
- "text" : "rules",
"children" : [
{
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
- "leaf" : 1,
- "text" : "{pos}",
"info" : {
- "GET" : {
- "returns" : {
+ "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" : {
- "type" : "integer"
+ "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)"
}
- },
- "type" : "object"
+ }
+ },
+ "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" : {
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "minimum" : 1
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"pos" : {
- "type" : "integer",
- "optional" : 1,
"description" : "Update rule at position <pos>.",
- "minimum" : 0
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "get_rule",
"permissions" : {
"check" : [
"perm",
]
},
"proxyto" : null,
- "description" : "Get single rule data."
+ "returns" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
},
"PUT" : {
+ "description" : "Modify rule data.",
+ "method" : "PUT",
+ "name" : "update_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "dest" : {
- "type" : "string",
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
"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"
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "source" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"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",
+ "typetext" : "<string>"
},
- "moveto" : {
- "minimum" : 0,
- "type" : "integer",
+ "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."
- },
- "node" : {
"type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "comment" : {
+ "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"
- },
- "delete" : {
"type" : "string",
- "optional" : 1,
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list"
+ "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",
- "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."
- },
- "type" : {
"optional" : 1,
"type" : "string",
- "enum" : [
- "in",
- "out",
- "group"
- ]
+ "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.",
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
"optional" : 1,
- "type" : "string",
- "format" : "pve-fw-sport-spec"
+ "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,
- "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"
- },
- "pos" : {
"optional" : 1,
- "type" : "integer",
- "description" : "Update rule at position <pos>.",
- "minimum" : 0
- },
- "proto" : {
"type" : "string",
- "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"
- },
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "typetext" : "<string>"
},
"macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
"optional" : 1,
"type" : "string",
- "maxLength" : 128
+ "typetext" : "<string>"
},
- "enable" : {
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
"minimum" : 0,
+ "optional" : 1,
"type" : "integer",
- "optional" : 1
+ "typetext" : "<integer> (0 - N)"
},
- "action" : {
- "type" : "string",
- "optional" : 1,
- "minLength" : 2,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 20
- }
- },
- "additionalProperties" : 0
- },
- "name" : "update_rule",
- "protected" : 1,
- "method" : "PUT",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Modify rule data.",
- "proxyto" : null,
- "returns" : {
- "type" : "null"
- }
- },
- "DELETE" : {
- "name" : "delete_rule",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "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,
- "description" : "Update rule at position <pos>."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "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>"
},
- "digest" : {
- "maxLength" : 40,
+ "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,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "protected" : 1,
- "method" : "DELETE",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : null,
- "description" : "Delete rule.",
"returns" : {
"type" : "null"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
+ "text" : "{pos}"
}
],
"info" : {
"GET" : {
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
]
},
- "name" : "get_rules",
"proxyto" : null,
- "description" : "List rules.",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"pos" : {
},
"links" : [
{
- "rel" : "child",
- "href" : "{pos}"
+ "href" : "{pos}",
+ "rel" : "child"
}
- ]
- },
- "method" : "GET"
+ ],
+ "type" : "array"
+ }
},
"POST" : {
- "protected" : 1,
+ "description" : "Create new rule.",
+ "method" : "POST",
"name" : "create_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "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"
},
- "proto" : {
+ "comment" : {
+ "description" : "Descriptive comment.",
"optional" : 1,
"type" : "string",
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "format" : "pve-fw-protocol-spec"
+ "typetext" : "<string>"
},
- "pos" : {
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
+ "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" : "integer"
- },
- "macro" : {
"type" : "string",
- "optional" : 1,
- "maxLength" : 128
+ "typetext" : "<string>"
},
- "action" : {
- "maxLength" : 20,
+ "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",
- "optional" : 0,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "minLength" : 2
+ "typetext" : "<string>"
},
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 0,
- "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.",
+ "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,
- "minimum" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
- "dport" : {
- "format" : "pve-fw-dport-spec",
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
"optional" : 1,
"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."
+ "typetext" : "<string>"
},
- "sport" : {
- "format" : "pve-fw-sport-spec",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"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."
+ "typetext" : "<string>"
},
- "dest" : {
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
"optional" : 1,
- "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.",
- "format" : "pve-fw-addr-spec"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "digest" : {
- "maxLength" : 40,
+ "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" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "typetext" : "<string>"
},
"source" : {
- "format" : "pve-fw-addr-spec",
"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"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "comment" : {
+ "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"
- },
- "node" : {
- "description" : "The cluster node name.",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "iface" : {
- "maxLength" : 20,
- "format" : "pve-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.",
- "minLength" : 2,
- "optional" : 1,
+ "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)"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "POST",
- "description" : "Create new rule.",
- "proxyto" : null,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : null,
"returns" : {
"type" : "null"
}
}
},
+ "leaf" : 0,
"path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
- "leaf" : 0
+ "text" : "rules"
},
{
"children" : [
{
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
- "leaf" : 1,
- "text" : "{name}",
"info" : {
- "GET" : {
- "returns" : {
- "type" : "object"
- },
- "method" : "GET",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
+ "DELETE" : {
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "node" : {
- "format" : "pve-node",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"name" : {
- "type" : "string",
- "minLength" : 2,
"description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64
- }
- },
- "additionalProperties" : 0
- },
- "name" : "read_alias",
- "description" : "Read alias."
- },
- "PUT" : {
- "protected" : 1,
- "description" : "Update IP or Network alias.",
- "parameters" : {
- "properties" : {
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "rename" : {
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Rename an existing alias.",
- "minLength" : 2,
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
"maxLength" : 64,
- "type" : "string",
"minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Alias name."
+ "type" : "string"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
- },
- "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
- },
- "cidr" : {
- "type" : "string",
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDR"
+ "typetext" : "<string>"
},
"vmid" : {
- "minimum" : 1,
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "update_alias",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "method" : "PUT"
+ }
},
- "DELETE" : {
- "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)"
+ }
+ }
},
- "method" : "DELETE",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Config.Network"
+ "VM.Audit"
]
]
},
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "maxLength" : 64,
+ "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\\-\\_]+",
- "minLength" : 2
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "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" : {
- "type" : "integer",
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
- },
- "digest" : {
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "name" : "remove_alias",
- "protected" : 1,
- "description" : "Remove IP or Network alias."
- }
- }
- }
- ],
- "text" : "aliases",
- "info" : {
- "GET" : {
- "method" : "GET",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "digest" : {
- "maxLength" : 40,
- "type" : "string",
- "optional" : 0,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "cidr" : {
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "name" : {
- "type" : "string"
- }
- }
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- },
- "description" : "List aliases",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
},
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "minimum" : 1
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "name" : "get_aliases"
- },
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "method" : "POST",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
+ "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" : {
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
- "type" : "string",
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 64
- },
"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
- },
- "cidr" : {
- "type" : "string",
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDR"
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "name" : "create_alias",
- "description" : "Create IP or Network Alias.",
- "protected" : 1
- }
- },
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
- "leaf" : 0
- },
- {
- "leaf" : 0,
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
- "info" : {
- "GET" : {
"permissions" : {
"check" : [
"perm",
]
]
},
- "name" : "ipset_index",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid"
- }
- }
- },
- "description" : "List IPSets",
- "method" : "GET",
"returns" : {
- "type" : "array",
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
"items" : {
- "type" : "object",
"properties" : {
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "cidr" : {
+ "type" : "string"
},
- "name" : {
- "maxLength" : 64,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
+ "comment" : {
+ "optional" : 1,
"type" : "string"
},
"digest" : {
- "type" : "string",
- "optional" : 0,
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
+ "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",
- "returns" : {
- "type" : "null"
- },
- "protected" : 1,
- "description" : "Create new IPSet",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
+ "name" : "create_alias",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "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"
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
},
"comment" : {
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "rename" : {
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
"minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
- "type" : "string",
- "optional" : 1,
- "maxLength" : 64
+ "type" : "string"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "name" : {
- "minLength" : 2,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string",
- "maxLength" : 64
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "name" : "create_ipset"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "text" : "ipset",
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
+ "text" : "aliases"
+ },
+ {
"children" : [
{
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
- "leaf" : 0,
"children" : [
{
"info" : {
"DELETE" : {
- "returns" : {
- "type" : "null"
- },
+ "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",
]
]
},
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read IP or Network settings from IPSet.",
+ "method" : "GET",
+ "name" : "read_ip",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "minimum" : 1,
- "format" : "pve-vmid"
- },
- "digest" : {
- "maxLength" : 40,
- "type" : "string",
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
"cidr" : {
- "type" : "string",
"description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias"
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
},
"name" : {
+ "description" : "IP set name.",
"maxLength" : 64,
"minLength" : 2,
- "description" : "IP set name.",
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "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)"
}
}
},
- "name" : "remove_ip",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
"protected" : 1,
- "description" : "Remove IP or Network from IPSet."
+ "returns" : {
+ "type" : "object"
+ }
},
"PUT" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "Update IP or Network settings",
"method" : "PUT",
+ "name" : "update_ip",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"cidr" : {
- "format" : "IPorCIDRorAlias",
"description" : "Network/IP specification in CIDR format.",
- "type" : "string"
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "digest" : {
+ "comment" : {
"optional" : 1,
"type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
+ "typetext" : "<string>"
},
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid"
- },
- "nomatch" : {
+ "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"
- },
- "node" : {
"type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"name" : {
+ "description" : "IP set name.",
"maxLength" : 64,
"minLength" : 2,
- "description" : "IP set name.",
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
- "comment" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "optional" : 1
+ "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)"
}
}
},
]
]
},
- "name" : "update_ip",
- "description" : "Update IP or Network settings",
- "protected" : 1
- },
- "GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "object"
- },
- "name" : "read_ip",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "cidr" : {
- "format" : "IPorCIDRorAlias",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- },
- "name" : {
- "maxLength" : 64,
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "minLength" : 2
- }
- },
- "additionalProperties" : 0
- },
"protected" : 1,
- "description" : "Read IP or Network settings from IPSet."
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "text" : "{cidr}",
"leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}"
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
+ "text" : "{cidr}"
}
],
- "text" : "{name}",
"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)"
+ }
+ }
+ },
+ "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.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "maxLength" : 64,
"minLength" : 2,
- "type" : "string",
- "maxLength" : 64
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "name" : "get_ipset",
"permissions" : {
"check" : [
"perm",
]
},
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
"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",
- "maxLength" : 40
- },
- "comment" : {
- "optional" : 1,
"type" : "string"
},
"nomatch" : {
- "type" : "boolean",
- "optional" : 1
+ "optional" : 1,
+ "type" : "boolean"
}
- }
+ },
+ "type" : "object"
},
"links" : [
{
- "rel" : "child",
- "href" : "{cidr}"
+ "href" : "{cidr}",
+ "rel" : "child"
}
- ]
- },
- "method" : "GET"
+ ],
+ "type" : "array"
+ }
},
- "DELETE" : {
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE",
- "name" : "delete_ipset",
+ "POST" : {
+ "description" : "Add IP or Network to IPSet.",
+ "method" : "POST",
+ "name" : "create_ip",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "node" : {
+ "comment" : {
+ "optional" : 1,
"type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"name" : {
- "minLength" : 2,
"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",
- "maxLength" : 64
+ "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)"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
]
},
- "protected" : 1,
- "description" : "Delete IPSet"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{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"
},
- "POST" : {
- "description" : "Add IP or Network to IPSet.",
- "protected" : 1,
- "name" : "create_ip",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "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>"
},
- "parameters" : {
- "properties" : {
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
- },
- "name" : {
- "maxLength" : 64,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDRorAlias"
- },
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- }
- },
- "additionalProperties" : 0
+ "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>"
},
- "returns" : {
- "type" : "null"
+ "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"
},
- "method" : "POST"
+ "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}/lxc/{vmid}/firewall/ipset",
+ "text" : "ipset"
},
{
- "text" : "options",
"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" : {
- "type" : "object",
"properties" : {
- "log_level_in" : {
+ "dhcp" : {
+ "description" : "Enable DHCP.",
"optional" : 1,
- "type" : "string",
+ "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",
"info",
"debug",
"nolog"
- ]
- },
- "policy_out" : {
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
],
- "description" : "Output policy.",
"optional" : 1,
"type" : "string"
},
- "radv" : {
- "description" : "Allow sending Router Advertisement.",
- "type" : "boolean",
- "optional" : 1
- },
- "ipfilter" : {
- "optional" : 1,
- "type" : "boolean",
- "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."
- },
- "policy_in" : {
- "description" : "Input policy.",
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
"enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
],
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
"macfilter" : {
"description" : "Enable/disable MAC address filter.",
"type" : "boolean"
},
"ndp" : {
- "optional" : 1,
- "type" : "boolean",
- "description" : "Enable NDP."
- },
- "dhcp" : {
- "description" : "Enable DHCP.",
+ "description" : "Enable NDP.",
"optional" : 1,
"type" : "boolean"
},
- "log_level_out" : {
+ "policy_in" : {
+ "description" : "Input policy.",
"enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
+ "ACCEPT",
+ "REJECT",
+ "DROP"
],
- "description" : "Log level for outgoing traffic.",
"optional" : 1,
"type" : "string"
},
- "enable" : {
- "description" : "Enable/disable firewall rules.",
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
"optional" : 1,
- "type" : "boolean"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "minimum" : 1
+ "type" : "string"
},
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
+ "optional" : 1,
+ "type" : "boolean"
}
},
- "additionalProperties" : 0
- },
- "name" : "get_options",
- "description" : "Get VM firewall options.",
- "proxyto" : "node"
+ "type" : "object"
+ }
},
"PUT" : {
- "protected" : 1,
+ "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"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "log_level_out" : {
- "description" : "Log level for outgoing traffic.",
+ "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",
"debug",
"nolog"
],
- "type" : "string",
- "optional" : 1
- },
- "vmid" : {
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "delete" : {
- "type" : "string",
"optional" : 1,
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list"
- },
- "policy_out" : {
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "description" : "Output policy.",
- "type" : "string",
- "optional" : 1
+ "type" : "string"
},
- "log_level_in" : {
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "description" : "Log level for incoming traffic.",
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "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.",
+ "macfilter" : {
+ "description" : "Enable/disable MAC address filter.",
"optional" : 1,
- "type" : "boolean"
+ "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"
- },
- "radv" : {
- "description" : "Allow sending Router Advertisement.",
- "type" : "boolean",
- "optional" : 1
- },
- "macfilter" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable MAC address filter."
+ "typetext" : "<string>"
},
"policy_in" : {
+ "description" : "Input policy.",
"enum" : [
"ACCEPT",
"REJECT",
"DROP"
],
- "description" : "Input policy.",
- "type" : "string",
- "optional" : 1
- },
- "ndp" : {
- "description" : "Enable NDP.",
- "type" : "boolean",
- "optional" : 1
+ "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.",
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
"optional" : 1,
"type" : "string"
},
- "dhcp" : {
- "type" : "boolean",
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
"optional" : 1,
- "description" : "Enable DHCP."
+ "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
+ }
},
- "method" : "PUT",
- "proxyto" : "node",
- "description" : "Set Firewall options.",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "null"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
- "leaf" : 1
+ "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",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "limit" : {
+ "start" : {
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 0
+ "typetext" : "<integer> (0 - N)"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "start" : {
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
"properties" : {
- "t" : {
- "description" : "Line text",
- "type" : "string"
- },
"n" : {
"description" : "Line number",
"type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
}
},
"type" : "object"
},
"type" : "array"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
- },
- "proxyto" : "node",
- "description" : "Read firewall log"
+ }
}
},
- "text" : "log",
"leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/log"
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
+ "text" : "log"
},
{
- "text" : "refs",
"info" : {
"GET" : {
"description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
+ "method" : "GET",
+ "name" : "refs",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"type" : {
- "type" : "string",
- "optional" : 1,
+ "description" : "Only list references of specified type.",
"enum" : [
"alias",
"ipset"
],
- "description" : "Only list references of specified type."
+ "optional" : 1,
+ "type" : "string"
},
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "name" : "refs",
- "method" : "GET",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
"type" : {
- "type" : "string",
"enum" : [
"alias",
"ipset"
- ]
- },
- "name" : {
+ ],
"type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
}
- }
- }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
- "leaf" : 1
+ "text" : "refs"
}
],
- "text" : "firewall",
"info" : {
"GET" : {
"description" : "Directory index.",
- "permissions" : {
- "user" : "all"
- },
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
- "name" : "index",
- "method" : "GET",
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
- "properties" : {}
+ "properties" : {},
+ "type" : "object"
},
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{name}",
+ "rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
}
},
+ "leaf" : 0,
"path" : "/nodes/{node}/lxc/{vmid}/firewall",
- "leaf" : 0
+ "text" : "firewall"
},
{
- "text" : "rrd",
"info" : {
"GET" : {
"description" : "Read VM RRD statistics (returns PNG)",
- "protected" : 1,
+ "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",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"timeframe" : {
- "type" : "string",
"description" : "Specify the time frame you are interested in.",
"enum" : [
"hour",
"week",
"month",
"year"
- ]
- },
- "ds" : {
- "description" : "The list of datasources you want to display.",
- "type" : "string",
- "format" : "pve-configid-list"
- },
- "cf" : {
- "optional" : 1,
- "type" : "string",
- "enum" : [
- "AVERAGE",
- "MAX"
],
- "description" : "The RRD consolidation function"
+ "type" : "string"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
]
]
},
- "method" : "GET",
+ "protected" : 1,
"returns" : {
"properties" : {
"filename" : {
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/rrd",
- "leaf" : 1
+ "text" : "rrd"
},
{
- "text" : "rrddata",
"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" : {
- "type" : "string",
"description" : "Specify the time frame you are interested in.",
"enum" : [
"hour",
"week",
"month",
"year"
- ]
+ ],
+ "type" : "string"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
- },
- "cf" : {
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "description" : "The RRD consolidation function",
- "type" : "string",
- "optional" : 1
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
]
]
},
- "name" : "rrddata",
- "description" : "Read VM RRD statistics",
"protected" : 1,
"returns" : {
- "type" : "array",
"items" : {
"properties" : {},
"type" : "object"
- }
- },
- "method" : "GET"
+ },
+ "type" : "array"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/rrddata",
- "leaf" : 1
+ "text" : "rrddata"
},
{
- "text" : "vncproxy",
"info" : {
"POST" : {
- "protected" : 1,
"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,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
"websocket" : {
- "type" : "boolean",
+ "description" : "use websocket instead of standard VNC.",
"optional" : 1,
- "description" : "use websocket instead of standard VNC."
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
]
},
- "name" : "vncproxy",
- "method" : "POST",
+ "protected" : 1,
"returns" : {
"additionalProperties" : 0,
"properties" : {
"cert" : {
"type" : "string"
},
- "upid" : {
- "type" : "string"
+ "port" : {
+ "type" : "integer"
},
- "user" : {
+ "ticket" : {
"type" : "string"
},
- "ticket" : {
+ "upid" : {
"type" : "string"
},
- "port" : {
- "type" : "integer"
+ "user" : {
+ "type" : "string"
}
}
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
- "leaf" : 1
+ "text" : "vncproxy"
},
{
- "text" : "vncwebsocket",
"info" : {
"GET" : {
+ "description" : "Opens a weksocket for VNC traffic.",
+ "method" : "GET",
+ "name" : "vncwebsocket",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vncticket" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "Ticket from previous call to vncproxy.",
- "maxLength" : 512
+ "typetext" : "<string>"
},
"port" : {
- "minimum" : 5900,
+ "description" : "Port number returned by previous vncproxy call.",
"maximum" : 5999,
+ "minimum" : 5900,
"type" : "integer",
- "description" : "Port number returned by previous vncproxy call."
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
+ "typetext" : "<integer> (5900 - 5999)"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
"format" : "pve-vmid",
- "minimum" : 1
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vncticket" : {
+ "description" : "Ticket from previous call to vncproxy.",
+ "maxLength" : 512,
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "vncwebsocket",
"permissions" : {
"check" : [
"perm",
],
"description" : "You also need to pass a valid ticket (vncticket)."
},
- "description" : "Opens a weksocket for VNC traffic.",
"returns" : {
- "type" : "object",
"properties" : {
"port" : {
"type" : "string"
}
- }
- },
- "method" : "GET"
+ },
+ "type" : "object"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
- "leaf" : 1
+ "text" : "vncwebsocket"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
- "leaf" : 1,
- "text" : "spiceproxy",
"info" : {
"POST" : {
- "protected" : 1,
+ "description" : "Returns a SPICE configuration to connect to the CT.",
+ "method" : "POST",
+ "name" : "spiceproxy",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "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 resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
+ "format" : "address",
"optional" : 1,
"type" : "string",
- "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
- "format" : "address"
+ "typetext" : "<string>"
},
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "name" : "spiceproxy",
- "method" : "POST",
- "description" : "Returns a SPICE configuration to connect to the CT.",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "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" : {
- "type" : {
+ "host" : {
"type" : "string"
},
- "host" : {
+ "password" : {
"type" : "string"
},
"proxy" : {
"tls-port" : {
"type" : "integer"
},
- "password" : {
+ "type" : {
"type" : "string"
}
}
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
+ "text" : "spiceproxy"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/migrate",
"info" : {
"POST" : {
+ "description" : "Migrate the container to another node. Creates a new migration task.",
"method" : "POST",
+ "name" : "migrate_vm",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "target" : {
- "format" : "pve-node",
- "description" : "Target node.",
- "type" : "string"
+ "force" : {
+ "description" : "Force migration despite local bind / device mounts. NOTE: deprecated, use 'shared' property of mount point instead.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"online" : {
"description" : "Use online/live migration.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "node" : {
+ "target" : {
+ "description" : "Target node.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "force" : {
- "optional" : 1,
- "type" : "boolean",
- "description" : "Force migration despite local bind / device mounts. WARNING: identical bind / device mounts need to be available on the target node."
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
- },
- "name" : "migrate_vm",
- "protected" : 1,
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
+ }
},
"permissions" : {
"check" : [
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Migrate the container to another node. Creates a new migration task."
+ "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"
+ ],
+ "type" : "string"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"snapname" : {
- "type" : "string",
- "optional" : 1,
"description" : "The name of the snapshot.",
"format" : "pve-configid",
- "maxLength" : 40
- },
- "feature" : {
- "enum" : [
- "snapshot"
- ],
- "description" : "Feature to check.",
- "type" : "string"
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
+ "format" : "pve-vmid",
"minimum" : 1,
- "format" : "pve-vmid"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "protected" : 1,
- "method" : "GET",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Check if feature for virtual machine is available.",
"returns" : {
"properties" : {
"hasFeature" : {
}
}
},
- "text" : "feature",
"leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/feature"
+ "path" : "/nodes/{node}/lxc/{vmid}/feature",
+ "text" : "feature"
},
{
- "text" : "template",
"info" : {
"POST" : {
+ "description" : "Create a Template.",
+ "method" : "POST",
"name" : "template",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "experimental" : {
+ "default" : 0,
+ "description" : "The template feature is experimental, set this flag if you know what you are doing.",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "experimental" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "The template feature is experimental, set this flag if you know what you are doing."
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "protected" : 1,
- "method" : "POST",
"permissions" : {
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}",
"check" : [
"perm",
"/vms/{vmid}",
[
"VM.Allocate"
]
- ]
+ ],
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
},
- "description" : "Create a Template.",
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
"type" : "null"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/template",
- "leaf" : 1
+ "text" : "template"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/clone",
- "leaf" : 1,
- "text" : "clone",
"info" : {
"POST" : {
+ "description" : "Create a container clone/copy",
+ "method" : "POST",
"name" : "clone_vm",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "full" : {
+ "description" : {
+ "description" : "Description for the new CT.",
"optional" : 1,
- "type" : "boolean",
- "default" : 0,
- "description" : "Create a full copy of all disk. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default."
+ "type" : "string",
+ "typetext" : "<string>"
},
"experimental" : {
- "type" : "boolean",
"default" : 0,
- "description" : "The clone feature is experimental, set this flag if you know what you are doing."
+ "description" : "The clone feature is experimental, set this flag if you know what you are doing.",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "description" : {
- "description" : "Description for the new CT.",
+ "full" : {
+ "default" : 0,
+ "description" : "Create a full copy of all disk. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default.",
"optional" : 1,
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"hostname" : {
+ "description" : "Set a hostname for the new CT.",
"format" : "dns-name",
- "type" : "string",
"optional" : 1,
- "description" : "Set a hostname for the new CT."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vmid" : {
- "minimum" : 1,
+ "newid" : {
+ "description" : "VMID for the clone.",
"format" : "pve-vmid",
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pool" : {
+ "description" : "Add the new CT to the specified pool.",
+ "format" : "pve-poolid",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"snapname" : {
+ "description" : "The name of the snapshot.",
"format" : "pve-configid",
"maxLength" : 40,
- "type" : "string",
- "optional" : 1,
- "description" : "The name of the snapshot."
- },
- "pool" : {
"optional" : 1,
"type" : "string",
- "description" : "Add the new CT to the specified pool.",
- "format" : "pve-poolid"
- },
- "newid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "VMID for the clone."
+ "typetext" : "<string>"
},
"storage" : {
+ "description" : "Target storage for full clone.",
"format" : "pve-storage-id",
"optional" : 1,
- "type" : "string",
"requires" : "full",
- "description" : "Target storage for full clone."
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "protected" : 1,
- "method" : "POST",
"permissions" : {
"check" : [
"and",
],
"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",
- "description" : "Create a container clone/copy",
"returns" : {
"type" : "string"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/clone",
+ "text" : "clone"
},
{
- "text" : "resize",
"info" : {
"PUT" : {
+ "description" : "Resize a container mount point.",
+ "method" : "PUT",
+ "name" : "resize_vm",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "size" : {
+ "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" : "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]?"
- },
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
+ "typetext" : "<string>"
},
"disk" : {
"description" : "The disk you want to resize.",
],
"type" : "string"
},
- "digest" : {
- "optional" : 1,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
+ "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)"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "resize_vm",
- "protected" : 1,
- "method" : "PUT",
"permissions" : {
"check" : [
"perm",
1
]
},
- "description" : "Resize a container mountpoint.",
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
"description" : "the task ID.",
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/resize",
- "leaf" : 1
+ "text" : "resize"
}
],
- "text" : "{vmid}",
"info" : {
"DELETE" : {
"description" : "Destroy the container (also delete all uses files).",
- "proxyto" : "node",
+ "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",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "protected" : 1,
- "name" : "destroy_vm",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "method" : "DELETE"
+ }
},
"GET" : {
- "returns" : {
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{subdir}"
- }
- ],
- "items" : {
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- },
- "type" : "object"
- }
- },
- "method" : "GET",
- "proxyto" : "node",
"description" : "Directory index",
+ "method" : "GET",
"name" : "vmdiridx",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "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)"
}
}
},
"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" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{vmid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
- }
- ],
- "info" : {
+ },
"POST" : {
+ "description" : "Create or restore a container.",
"method" : "POST",
"name" : "create_vm",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "storage" : {
- "description" : "Default Storage.",
- "default" : "local",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-storage-id"
- },
- "onboot" : {
- "type" : "boolean",
- "optional" : 1,
- "default" : 0,
- "description" : "Specifies whether a VM will be started during system bootup."
- },
- "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.",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-startup-order",
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
- },
- "console" : {
- "description" : "Attach a console device (/dev/console) to the container.",
- "default" : 1,
- "optional" : 1,
- "type" : "boolean"
- },
- "pool" : {
+ "arch" : {
+ "default" : "amd64",
+ "description" : "OS architecture type.",
+ "enum" : [
+ "amd64",
+ "i386"
+ ],
"optional" : 1,
- "type" : "string",
- "description" : "Add the VM to the specified pool.",
- "format" : "pve-poolid"
+ "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"
],
- "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" : "string",
- "optional" : 1,
- "default" : "tty"
- },
- "description" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Container description. Only used on the configuration web interface."
- },
- "lock" : {
"optional" : 1,
- "type" : "string",
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ],
- "description" : "Lock/unlock the VM."
+ "type" : "string"
},
- "rootfs" : {
- "type" : "string",
+ "console" : {
+ "default" : 1,
+ "description" : "Attach a console device (/dev/console) to the container.",
"optional" : 1,
- "description" : "Use volume as container root.",
- "format" : {
- "ro" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "format_description" : "ro"
- },
- "acl" : {
- "description" : "Explicitly enable or disable ACL support.",
- "optional" : 1,
- "type" : "boolean",
- "format_description" : "acl"
- },
- "backup" : {
- "description" : "Whether to include the mountpoint in backups.",
- "type" : "boolean",
- "optional" : 1,
- "format_description" : "[1|0]"
- },
- "size" : {
- "format" : "disk-size",
- "format_description" : "DiskSize",
- "description" : "Volume size (read only value).",
- "optional" : 1,
- "type" : "string"
- },
- "volume" : {
- "default_key" : 1,
- "format" : "pve-lxc-mp-string",
- "format_description" : "volume",
- "type" : "string",
- "description" : "Volume, device or directory to mount into the container."
- },
- "quota" : {
- "format_description" : "[0|1]",
- "optional" : 1,
- "type" : "boolean",
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)"
- }
- }
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "vmid" : {
- "format" : "pve-vmid",
+ "cores" : {
+ "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
+ "maximum" : 128,
"minimum" : 1,
- "description" : "The (unique) ID of the VM.",
- "type" : "integer"
- },
- "cpuunits" : {
- "minimum" : 0,
- "maximum" : 500000,
- "default" : 1024,
- "type" : "integer",
- "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."
- },
- "tty" : {
- "minimum" : 0,
- "description" : "Specify the number of tty available to the container",
- "default" : 2,
- "maximum" : 6,
- "optional" : 1,
- "type" : "integer"
- },
- "arch" : {
- "default" : "amd64",
- "type" : "string",
- "optional" : 1,
- "description" : "OS architecture type.",
- "enum" : [
- "amd64",
- "i386"
- ]
- },
- "ostemplate" : {
- "maxLength" : 255,
- "description" : "The OS template or backup file.",
- "type" : "string"
- },
- "force" : {
- "type" : "boolean",
"optional" : 1,
- "description" : "Allow to overwrite existing container."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 128)"
},
"cpulimit" : {
- "minimum" : 0,
- "type" : "number",
- "optional" : 1,
"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,
- "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."
- },
- "mp[n]" : {
- "format" : {
- "backup" : {
- "optional" : 1,
- "type" : "boolean",
- "description" : "Whether to include the mountpoint in backups.",
- "format_description" : "[1|0]"
- },
- "size" : {
- "format_description" : "DiskSize",
- "format" : "disk-size",
- "type" : "string",
- "optional" : 1,
- "description" : "Volume size (read only value)."
- },
- "acl" : {
- "description" : "Explicitly enable or disable ACL support.",
- "type" : "boolean",
- "optional" : 1,
- "format_description" : "acl"
- },
- "ro" : {
- "format_description" : "ro",
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "type" : "boolean",
- "optional" : 1
- },
- "volume" : {
- "format_description" : "volume",
- "format" : "pve-lxc-mp-string",
- "default_key" : 1,
- "description" : "Volume, device or directory to mount into the container.",
- "type" : "string"
- },
- "quota" : {
- "optional" : 1,
- "type" : "boolean",
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
- "format_description" : "[0|1]"
- },
- "mp" : {
- "type" : "string",
- "description" : "Path to the mountpoint as seen from inside the container.",
- "format_description" : "Path",
- "format" : "pve-lxc-mp-string"
- }
- },
- "description" : "Use volume as container mount point (experimental feature).",
- "type" : "string",
- "optional" : 1
- },
- "unprivileged" : {
- "type" : "boolean",
- "optional" : 1,
- "default" : 0,
- "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)"
- },
- "unused[n]" : {
- "description" : "Reference to unused volumes.",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-volume-id"
- },
- "swap" : {
- "description" : "Amount of SWAP for the VM in MB.",
- "default" : 512,
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "ostype" : {
- "type" : "string",
- "optional" : 1,
- "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",
- "unmanaged"
- ]
- },
- "memory" : {
- "description" : "Amount of RAM for the VM in MB.",
- "type" : "integer",
- "optional" : 1,
- "default" : 512,
- "minimum" : 16
- },
- "ssh-public-keys" : {
- "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
- "optional" : 1,
- "type" : "string"
- },
- "protection" : {
- "type" : "boolean",
+ "minimum" : 0,
"optional" : 1,
- "default" : 0,
- "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation."
- },
- "ignore-unpack-errors" : {
- "type" : "boolean",
+ "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,
- "description" : "Ignore errors when extracting the template."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 500000)"
},
- "template" : {
- "description" : "Enable/disable Template.",
+ "description" : {
+ "description" : "Container description. Only used on the configuration web interface.",
"optional" : 1,
- "type" : "boolean",
- "default" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
- "restore" : {
+ "force" : {
+ "description" : "Allow to overwrite existing container.",
"optional" : 1,
"type" : "boolean",
- "description" : "Mark this as restore task."
+ "typetext" : "<boolean>"
},
"hostname" : {
+ "description" : "Set a host name for the container.",
"format" : "dns-name",
"maxLength" : 255,
- "description" : "Set a host name for the container.",
+ "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" : [
+ "migrate",
+ "backup",
+ "snapshot",
+ "rollback"
+ ],
"optional" : 1,
"type" : "string"
},
- "password" : {
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB.",
+ "minimum" : 16,
"optional" : 1,
- "type" : "string",
- "description" : "Sets root password inside container.",
- "minLength" : 5
+ "type" : "integer",
+ "typetext" : "<integer> (16 - N)"
},
- "searchdomain" : {
- "format" : "dns-name-list",
+ "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"
+ },
+ "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",
- "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver."
+ "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
},
"nameserver" : {
- "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.",
+ "format" : "address-list",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
"net[n]" : {
+ "description" : "Specifies network interfaces for the container.",
"format" : {
- "gw6" : {
- "format" : "ipv6",
- "format_description" : "GatewayIPv6",
- "description" : "Default gateway for IPv6 traffic.",
- "type" : "string",
- "optional" : 1
- },
- "tag" : {
- "description" : "VLAN tag for this interface.",
- "type" : "integer",
+ "bridge" : {
+ "description" : "Bridge to attach the network device to.",
+ "format_description" : "bridge",
"optional" : 1,
- "maximum" : "4094",
- "format_description" : "VlanNo",
- "minimum" : "2"
+ "pattern" : "[-_.\\w\\d]+",
+ "type" : "string"
},
"firewall" : {
- "format_description" : "[1|0]",
"description" : "Controls whether this interface's firewall rules should be used.",
"optional" : 1,
"type" : "boolean"
},
- "type" : {
- "type" : "string",
+ "gw" : {
+ "description" : "Default gateway for IPv4 traffic.",
+ "format" : "ipv4",
+ "format_description" : "GatewayIPv4",
"optional" : 1,
- "description" : "Network interface type.",
- "enum" : [
- "veth"
- ]
+ "type" : "string"
},
- "trunks" : {
- "format_description" : "vlanid[;vlanid...]",
- "type" : "string",
+ "gw6" : {
+ "description" : "Default gateway for IPv6 traffic.",
+ "format" : "ipv6",
+ "format_description" : "GatewayIPv6",
"optional" : 1,
- "pattern" : "(?^:\\d+(?:;\\d+)*)",
- "description" : "VLAN ids to pass through the interface"
+ "type" : "string"
+ },
+ "hwaddr" : {
+ "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})",
+ "type" : "string"
},
"ip" : {
+ "description" : "IPv4 address in CIDR format.",
"format" : "pve-ipv4-config",
"format_description" : "IPv4Format/CIDR",
- "description" : "IPv4 address in CIDR format.",
- "type" : "string",
- "optional" : 1
- },
- "rate" : {
- "description" : "Apply rate limiting to the interface",
"optional" : 1,
- "type" : "number",
- "format_description" : "mbps"
+ "type" : "string"
},
"ip6" : {
- "type" : "string",
- "optional" : 1,
"description" : "IPv6 address in CIDR format.",
"format" : "pve-ipv6-config",
- "format_description" : "IPv6Format/CIDR"
- },
- "gw" : {
- "format" : "ipv4",
- "format_description" : "GatewayIPv4",
- "description" : "Default gateway for IPv4 traffic.",
+ "format_description" : "IPv6Format/CIDR",
"optional" : 1,
"type" : "string"
},
- "bridge" : {
- "format_description" : "vmbr<Number>",
- "optional" : 1,
- "type" : "string",
- "description" : "Bridge to attach the network device to.",
- "pattern" : "[-_.\\w\\d]+"
- },
- "name" : {
- "type" : "string",
- "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
- "pattern" : "[-_.\\w\\d]+",
- "format_description" : "String"
- },
"mtu" : {
"description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
- "type" : "integer",
+ "minimum" : 64,
"optional" : 1,
- "format_description" : "Number",
- "minimum" : 64
+ "type" : "integer"
},
- "hwaddr" : {
- "format_description" : "MAC",
- "description" : "Bridge to attach the network device to. (lxc.network.hwaddr)",
- "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})",
- "type" : "string",
- "optional" : 1
- }
- },
- "description" : "Specifies network interfaces for the container.",
- "optional" : 1,
- "type" : "string"
- }
- }
- },
- "protected" : 1,
- "returns" : {
- "type" : "string"
- },
- "permissions" : {
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore, it is enough if the user has 'VM.Backup' permission and the VM already exists. You also need 'Datastore.AllocateSpace' permissions on the storage.",
- "user" : "all"
- },
- "proxyto" : "node",
- "description" : "Create or restore a container."
- },
- "GET" : {
- "name" : "vmlist",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- }
- }
- },
- "protected" : 1,
- "method" : "GET",
- "permissions" : {
- "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
- "user" : "all"
- },
- "proxyto" : "node",
- "description" : "LXC container index (per node).",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{vmid}"
- }
- ],
- "type" : "array"
- }
- }
- }
- },
- {
- "info" : {
- "GET" : {
- "description" : "Directory index.",
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
- "name" : "index",
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ]
- }
- }
- },
- "children" : [
- {
- "info" : {
- "POST" : {
- "name" : "createosd",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
+ "name" : {
+ "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
+ "format_description" : "string",
+ "pattern" : "[-_.\\w\\d]+",
"type" : "string"
},
- "fstype" : {
- "enum" : [
- "xfs",
- "ext4",
- "btrfs"
- ],
- "description" : "File system type.",
- "type" : "string",
+ "rate" : {
+ "description" : "Apply rate limiting to the interface",
+ "format_description" : "mbps",
"optional" : 1,
- "default" : "xfs"
+ "type" : "number"
},
- "journal_dev" : {
- "type" : "string",
+ "tag" : {
+ "description" : "VLAN tag for this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
"optional" : 1,
- "description" : "Block device name for journal."
+ "type" : "integer"
},
- "dev" : {
- "description" : "Block device name.",
+ "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=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
},
- "proxyto" : "node",
- "description" : "Create OSD",
- "protected" : 1,
- "method" : "POST",
- "returns" : {
+ "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"
- }
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
},
- "proxyto" : "node",
- "description" : "Get Ceph osd list/tree.",
- "returns" : {
- "type" : "object"
+ "password" : {
+ "description" : "Sets root password inside container.",
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "name" : "index",
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
+ "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"
+ },
+ "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"
}
},
- "additionalProperties" : 0
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[volume=]<volume> [,acl=<1|0>] [,quota=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
},
- "protected" : 1,
- "method" : "GET"
+ "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>"
+ },
+ "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)"
+ },
+ "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)"
+ }
}
},
- "children" : [
- {
- "leaf" : 0,
- "path" : "/nodes/{node}/ceph/osd/{osdid}",
- "info" : {
- "DELETE" : {
- "name" : "destroyosd",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "osdid" : {
- "type" : "integer",
- "description" : "OSD ID"
- },
- "cleanup" : {
- "description" : "If set, we remove partition table entries.",
- "optional" : 1,
- "type" : "boolean",
- "default" : 0
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- },
- "protected" : 1,
- "description" : "Destroy OSD",
- "proxyto" : "node",
- "method" : "DELETE",
- "returns" : {
- "type" : "string"
- }
- }
- },
+ "permissions" : {
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore, it is enough if the user has 'VM.Backup' permission and the VM already exists. You also need 'Datastore.AllocateSpace' permissions on the storage.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc",
+ "text" : "lxc"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
"children" : [
{
- "text" : "in",
"info" : {
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
"description" : "ceph osd in",
- "proxyto" : "node",
- "returns" : {
- "type" : "null"
- },
+ "method" : "POST",
"name" : "in",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "osdid" : {
- "type" : "integer",
- "description" : "OSD ID"
- },
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
- "method" : "POST"
- }
- },
- "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
- "leaf" : 1
- },
- {
- "leaf" : 1,
- "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
- "info" : {
- "POST" : {
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "ceph osd out",
"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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"osdid" : {
+ "description" : "OSD ID",
"type" : "integer",
- "description" : "OSD ID"
+ "typetext" : "<integer>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "name" : "out",
"protected" : 1,
- "method" : "POST"
+ "proxyto" : "node",
+ "returns" : {
+ "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}"
}
],
- "text" : "osd",
- "leaf" : 0,
- "path" : "/nodes/{node}/ceph/osd"
- },
- {
- "path" : "/nodes/{node}/ceph/disks",
- "leaf" : 1,
- "text" : "disks",
"info" : {
"GET" : {
- "proxyto" : "node",
- "description" : "List local disks.",
+ "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",
1
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "vendor" : {
- "type" : "string",
- "optional" : 1
- },
- "osdid" : {
- "type" : "integer"
- },
- "serial" : {
- "type" : "string",
- "optional" : 1
- },
- "model" : {
- "type" : "string",
- "optional" : 1
- },
- "used" : {
- "optional" : 1,
- "type" : "string"
- },
- "size" : {
- "type" : "integer"
- },
- "dev" : {
- "type" : "string"
- },
- "gpt" : {
- "type" : "boolean"
- }
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "description" : "Create OSD",
+ "method" : "POST",
+ "name" : "createosd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "dev" : {
+ "description" : "Block device name.",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "type" : "object"
+ "fstype" : {
+ "default" : "xfs",
+ "description" : "File system type.",
+ "enum" : [
+ "xfs",
+ "ext4",
+ "btrfs"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "journal_dev" : {
+ "description" : "Block device name for journal.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
"protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/osd",
+ "text" : "osd"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "List local disks.",
+ "method" : "GET",
"name" : "disks",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"type" : {
- "optional" : 1,
- "type" : "string",
"description" : "Only list specific types of disks.",
"enum" : [
"unused",
"journal_disks"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
}
}
},
- "method" : "GET"
+ "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"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/disks",
+ "text" : "disks"
},
{
- "path" : "/nodes/{node}/ceph/config",
- "leaf" : 1,
- "text" : "config",
"info" : {
"GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "string"
- },
"description" : "Get Ceph configuration.",
+ "method" : "GET",
+ "name" : "config",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "name" : "config",
"permissions" : {
"check" : [
"perm",
"any",
1
]
+ },
+ "returns" : {
+ "type" : "string"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/config",
+ "text" : "config"
},
{
- "path" : "/nodes/{node}/ceph/mon",
- "leaf" : 0,
- "text" : "mon",
"children" : [
{
- "path" : "/nodes/{node}/ceph/mon/{monid}",
- "leaf" : 1,
- "text" : "{monid}",
"info" : {
"DELETE" : {
- "proxyto" : "node",
"description" : "Destroy Ceph monitor.",
+ "method" : "DELETE",
+ "name" : "destroymon",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "monid" : {
+ "description" : "Monitor ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- },
- "monid" : {
- "description" : "Monitor ID",
- "type" : "integer"
- }
- }
- },
- "name" : "destroymon",
- "method" : "DELETE"
+ }
}
- }
+ },
+ "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" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "name" : "listmon",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
"properties" : {
- "name" : {
+ "addr" : {
"type" : "string"
},
- "addr" : {
+ "name" : {
"type" : "string"
}
},
}
],
"type" : "array"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
- "description" : "Get Ceph monitor list.",
- "proxyto" : "node"
+ }
},
"POST" : {
+ "description" : "Create Ceph Monitor",
+ "method" : "POST",
+ "name" : "createmon",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Create Ceph Monitor",
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "name" : "createmon",
- "protected" : 1,
- "method" : "POST"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/mon",
+ "text" : "mon"
},
{
"info" : {
"POST" : {
- "returns" : {
- "type" : "null"
- },
- "proxyto" : "node",
"description" : "Create initial ceph default configuration and setup symlinks.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
"method" : "POST",
- "protected" : 1,
"name" : "init",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "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" : {
- "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.",
"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",
- "minimum" : 6
+ "typetext" : "<integer> (6 - 14)"
},
"size" : {
- "minimum" : 1,
- "maximum" : 3,
"default" : 2,
- "type" : "integer",
- "optional" : 1,
- "description" : "Number of replicas per object"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "network" : {
+ "description" : "Number of replicas per object",
+ "maximum" : 3,
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "description" : "Use specific network for all ceph related traffic",
- "format" : "CIDR",
- "maxLength" : 128
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 3)"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
- "text" : "init",
"leaf" : 1,
- "path" : "/nodes/{node}/ceph/init"
+ "path" : "/nodes/{node}/ceph/init",
+ "text" : "init"
},
{
- "path" : "/nodes/{node}/ceph/stop",
- "leaf" : 1,
- "text" : "stop",
"info" : {
"POST" : {
+ "description" : "Stop ceph services.",
"method" : "POST",
"name" : "stop",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"service" : {
- "type" : "string",
- "optional" : 1,
"description" : "Ceph service name.",
- "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}"
+ "optional" : 1,
+ "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "returns" : {
- "type" : "string"
+ }
},
"permissions" : {
"check" : [
]
]
},
- "description" : "Stop ceph services.",
- "proxyto" : "node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/stop",
+ "text" : "stop"
},
{
- "path" : "/nodes/{node}/ceph/start",
- "leaf" : 1,
- "text" : "start",
"info" : {
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "proxyto" : "node",
"description" : "Start ceph services.",
- "returns" : {
- "type" : "string"
- },
+ "method" : "POST",
"name" : "start",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"service" : {
"description" : "Ceph service name.",
+ "optional" : 1,
"pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}",
- "type" : "string",
- "optional" : 1
+ "type" : "string"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
"protected" : 1,
- "method" : "POST"
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/start",
+ "text" : "start"
},
{
- "text" : "status",
"info" : {
"GET" : {
- "protected" : 1,
+ "description" : "Get ceph status.",
+ "method" : "GET",
+ "name" : "status",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "name" : "status",
- "method" : "GET",
- "description" : "Get ceph status.",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
1
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "object"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/ceph/status",
- "leaf" : 1
+ "text" : "status"
},
{
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Destroy pool",
+ "method" : "DELETE",
+ "name" : "destroypool",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "default" : 0,
+ "description" : "If true, destroys pool even if in use",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "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>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/pools/{name}",
+ "text" : "{name}"
+ }
+ ],
"info" : {
"GET" : {
- "protected" : 1,
+ "description" : "List all pools.",
+ "method" : "GET",
+ "name" : "lspools",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "name" : "lspools",
- "method" : "GET",
- "proxyto" : "node",
- "description" : "List all pools.",
"permissions" : {
"check" : [
"perm",
1
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{pool_name}"
- }
- ],
"items" : {
- "type" : "object",
"properties" : {
- "pool_name" : {
- "type" : "string"
- },
"pool" : {
"type" : "integer"
},
+ "pool_name" : {
+ "type" : "string"
+ },
"size" : {
"type" : "integer"
}
- }
+ },
+ "type" : "object"
},
+ "links" : [
+ {
+ "href" : "{pool_name}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
}
},
"POST" : {
- "returns" : {
- "type" : "null"
- },
- "proxyto" : "node",
"description" : "Create POOL",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
"method" : "POST",
- "protected" : 1,
"name" : "createpool",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "size" : {
- "maximum" : 3,
- "default" : 2,
+ "crush_ruleset" : {
+ "default" : 0,
+ "description" : "The ruleset to use for mapping object placement in the cluster.",
+ "maximum" : 32768,
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "description" : "Number of replicas per object",
- "minimum" : 1
+ "typetext" : "<integer> (0 - 32768)"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "min_size" : {
+ "default" : 1,
+ "description" : "Minimum number of replicas per object",
+ "maximum" : 3,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 3)"
},
"name" : {
"description" : "The name of the pool. It must be unique.",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "crush_ruleset" : {
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "default" : 0,
- "maximum" : 32768,
- "description" : "The ruleset to use for mapping object placement in the cluster."
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"pg_num" : {
- "optional" : 1,
- "type" : "integer",
- "maximum" : 32768,
"default" : 64,
"description" : "Number of placement groups.",
- "minimum" : 8
- },
- "min_size" : {
+ "maximum" : 32768,
+ "minimum" : 8,
"optional" : 1,
"type" : "integer",
+ "typetext" : "<integer> (8 - 32768)"
+ },
+ "size" : {
+ "default" : 2,
+ "description" : "Number of replicas per object",
"maximum" : 3,
- "default" : 1,
- "description" : "Minimum number of replicas per object",
- "minimum" : 1
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 3)"
}
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/pools",
+ "text" : "pools"
+ },
+ {
"children" : [
{
- "path" : "/nodes/{node}/ceph/pools/{name}",
- "leaf" : 1,
- "text" : "{name}",
"info" : {
"DELETE" : {
+ "description" : "Unset a ceph flag",
"method" : "DELETE",
- "protected" : 1,
+ "name" : "unset_flag",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
+ "flag" : {
+ "description" : "The ceph flag to set/unset",
+ "enum" : [
+ "full",
+ "pause",
+ "noup",
+ "nodown",
+ "noout",
+ "noin",
+ "nobackfill",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "nodeep-scrub",
+ "notieragent"
+ ],
"type" : "string"
},
- "name" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "The name of the pool. It must be unique."
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "destroypool",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "null"
+ }
+ },
+ "POST" : {
+ "description" : "Set a ceph flag",
+ "method" : "POST",
+ "name" : "set_flag",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "flag" : {
+ "description" : "The ceph flag to set/unset",
+ "enum" : [
+ "full",
+ "pause",
+ "noup",
+ "nodown",
+ "noout",
+ "noin",
+ "nobackfill",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "nodeep-scrub",
+ "notieragent"
+ ],
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "proxyto" : "node",
- "description" : "Destroy pool",
"permissions" : {
"check" : [
"perm",
"Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/flags/{flag}",
+ "text" : "{flag}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "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"
}
}
- ],
- "text" : "pools",
+ },
"leaf" : 0,
- "path" : "/nodes/{node}/ceph/pools"
+ "path" : "/nodes/{node}/ceph/flags",
+ "text" : "flags"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/ceph/crush",
"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>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
1
]
},
- "description" : "Get OSD crush map",
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "crush",
- "protected" : 1,
- "method" : "GET"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/crush",
"text" : "crush"
},
{
"info" : {
"GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "t" : {
- "type" : "string",
- "description" : "Line text"
- },
- "n" : {
- "type" : "integer",
- "description" : "Line number"
- }
+ "description" : "Read ceph log",
+ "method" : "GET",
+ "name" : "log",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "type" : "object"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
}
},
- "description" : "Read ceph log",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
- "method" : "GET",
"protected" : 1,
- "name" : "log",
+ "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}/ceph/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" : {
+ "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" : {
- "start" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
- },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "limit" : {
- "type" : "integer",
- "optional" : 1,
- "minimum" : 0
+ "volume" : {
+ "description" : "Volume identifier",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "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"
}
}
},
- "text" : "log",
"leaf" : 1,
- "path" : "/nodes/{node}/ceph/log"
+ "path" : "/nodes/{node}/vzdump/extractconfig",
+ "text" : "extractconfig"
}
],
- "text" : "ceph",
- "leaf" : 0,
- "path" : "/nodes/{node}/ceph"
- },
- {
- "text" : "vzdump",
"info" : {
"POST" : {
- "permissions" : {
- "user" : "all",
- "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage."
- },
"description" : "Create backup.",
- "proxyto" : "node",
- "returns" : {
- "type" : "string"
- },
+ "method" : "POST",
"name" : "vzdump",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "exclude" : {
- "format" : "pve-vmid-list",
- "description" : "Exclude specified guest systems (assumes --all)",
- "type" : "string",
- "optional" : 1
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
"optional" : 1,
- "description" : "Only run if executed on this node."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "size" : {
- "description" : "Unused, will be removed in a future release.",
- "type" : "integer",
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (KBytes per second).",
+ "minimum" : 0,
"optional" : 1,
- "default" : 1024,
- "minimum" : 500
- },
- "pigz" : {
"type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo"
+ ],
"optional" : 1,
- "default" : 0,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count."
+ "type" : "string"
},
- "storage" : {
- "format" : "pve-storage-id",
- "description" : "Store resulting file to this storage.",
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "stdexcludes" : {
- "default" : 1,
- "type" : "boolean",
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
"optional" : 1,
- "description" : "Exclude temporary files and logs."
+ "type" : "string",
+ "typetext" : "<string>"
},
"exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs).",
"format" : "string-alist",
- "type" : "string",
- "optional" : 1,
- "description" : "Exclude certain files/directories (shell globs)."
- },
- "quiet" : {
- "description" : "Be quiet.",
"optional" : 1,
- "type" : "boolean",
- "default" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
- "stopwait" : {
+ "ionice" : {
+ "default" : 7,
+ "description" : "Set CFQ ionice priority.",
+ "maximum" : 8,
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "default" : 10,
- "description" : "Maximal time to wait until a guest system is stopped (minutes).",
- "minimum" : 0
- },
- "remove" : {
- "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
- "type" : "boolean",
- "optional" : 1,
- "default" : 1
- },
- "stdout" : {
- "description" : "Write tar to stdout, not to a file.",
- "type" : "boolean",
- "optional" : 1
+ "typetext" : "<integer> (0 - 8)"
},
- "all" : {
- "default" : 0,
- "type" : "boolean",
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Backup all known guest systems on this host."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"mailnotification" : {
+ "default" : "always",
"description" : "Specify when to send an email",
"enum" : [
"always",
"failure"
],
- "default" : "always",
- "type" : "string",
- "optional" : 1
- },
- "lockwait" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "default" : 180,
- "description" : "Maximal time to wait for the global lock (minutes)."
- },
- "script" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Use specified hook script."
- },
- "dumpdir" : {
- "type" : "string",
"optional" : 1,
- "description" : "Store resulting files to specified directory."
+ "type" : "string"
},
"mailto" : {
- "optional" : 1,
- "type" : "string",
"description" : "Comma-separated list of email addresses that should receive email notifications.",
- "format" : "string-list"
- },
- "compress" : {
- "default" : "0",
- "type" : "string",
+ "format" : "string-list",
"optional" : 1,
- "description" : "Compress dump file.",
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo"
- ]
+ "type" : "string",
+ "typetext" : "<string>"
},
- "tmpdir" : {
+ "maxfiles" : {
+ "default" : 1,
+ "description" : "Maximal number of backup files per guest system.",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "description" : "Store temporary files to specified directory."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
"mode" : {
+ "default" : "snapshot",
"description" : "Backup mode.",
"enum" : [
"snapshot",
"suspend",
"stop"
],
- "default" : "snapshot",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "Only run if executed on this node.",
+ "format" : "pve-node",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "maxfiles" : {
+ "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",
- "description" : "Maximal number of backup files per guest system.",
- "minimum" : 1
+ "typetext" : "<integer> (500 - N)"
},
- "stop" : {
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stdout" : {
+ "description" : "Write tar to stdout, not to a file.",
"optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stop" : {
"default" : 0,
- "description" : "Stop runnig backup jobs on this host."
+ "description" : "Stop runnig backup jobs on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "ionice" : {
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
"minimum" : 0,
"optional" : 1,
"type" : "integer",
- "default" : 7,
- "maximum" : 8,
- "description" : "Set CFQ ionice priority."
+ "typetext" : "<integer> (0 - N)"
},
- "bwlimit" : {
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
"optional" : 1,
- "type" : "integer",
- "default" : 0,
- "description" : "Limit I/O bandwidth (KBytes per second).",
- "minimum" : 0
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
"vmid" : {
- "format" : "pve-vmid-list",
"description" : "The ID of the guest system you want to backup.",
+ "format" : "pve-vmid-list",
"optional" : 1,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "method" : "POST"
- }
- },
- "path" : "/nodes/{node}/vzdump",
- "leaf" : 1
- },
- {
- "info" : {
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
"type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
}
},
- "name" : "index",
- "protected" : 1,
- "method" : "GET",
"permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
+ "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",
- "description" : "Service list.",
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{service}"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
+ "type" : "string"
}
}
},
- "text" : "services",
+ "leaf" : 0,
+ "path" : "/nodes/{node}/vzdump",
+ "text" : "vzdump"
+ },
+ {
"children" : [
{
- "leaf" : 0,
- "path" : "/nodes/{node}/services/{service}",
- "info" : {
- "GET" : {
- "method" : "GET",
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{subdir}"
- }
- ],
- "items" : {
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- },
- "description" : "Directory index",
- "name" : "srvcmdidx",
- "parameters" : {
- "properties" : {
- "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"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- }
- }
- },
"children" : [
{
- "leaf" : 1,
- "path" : "/nodes/{node}/services/{service}/state",
"info" : {
"GET" : {
- "returns" : {
- "properties" : {},
- "type" : "object"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "proxyto" : "node",
"description" : "Read service properties",
"method" : "GET",
"name" : "service_state",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"service" : {
+ "description" : "Service ID",
"enum" : [
"pveproxy",
"pvedaemon",
"postfix",
"ksmtuned",
"systemd-timesyncd"
- ],
- "description" : "Service ID",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1
- }
- },
- "text" : "state"
- },
- {
- "text" : "start",
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
+ ],
+ "type" : "string"
+ }
+ }
},
"permissions" : {
"check" : [
"perm",
"/nodes/{node}",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "description" : "Start service.",
+ "protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "properties" : {},
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/state",
+ "text" : "state"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Start service.",
"method" : "POST",
"name" : "service_start",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "service" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
"enum" : [
"pveproxy",
"pvedaemon",
"ksmtuned",
"systemd-timesyncd"
],
- "description" : "Service ID"
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
"type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "protected" : 1
- }
- },
- "path" : "/nodes/{node}/services/{service}/start",
- "leaf" : 1
- },
- {
- "text" : "stop",
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
+ }
},
- "description" : "Stop service.",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
- "method" : "POST",
"protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"service" : {
+ "description" : "Service ID",
"enum" : [
"pveproxy",
"pvedaemon",
"ksmtuned",
"systemd-timesyncd"
],
- "description" : "Service ID",
"type" : "string"
}
}
- }
- }
- },
- "path" : "/nodes/{node}/services/{service}/stop",
- "leaf" : 1
- },
- {
- "path" : "/nodes/{node}/services/{service}/restart",
- "leaf" : 1,
- "text" : "restart",
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "description" : "Restart service.",
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "protected" : 1,
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/stop",
+ "text" : "stop"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Restart service.",
+ "method" : "POST",
+ "name" : "service_restart",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"service" : {
+ "description" : "Service ID",
"enum" : [
"pveproxy",
"pvedaemon",
"ksmtuned",
"systemd-timesyncd"
],
- "description" : "Service ID",
"type" : "string"
}
}
},
- "name" : "service_restart",
- "method" : "POST"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/restart",
+ "text" : "restart"
},
{
- "path" : "/nodes/{node}/services/{service}/reload",
- "leaf" : 1,
- "text" : "reload",
"info" : {
"POST" : {
+ "description" : "Reload service.",
+ "method" : "POST",
"name" : "service_reload",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "service" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
"description" : "Service ID",
"enum" : [
"pveproxy",
"postfix",
"ksmtuned",
"systemd-timesyncd"
- ]
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ ],
+ "type" : "string"
}
}
},
- "protected" : 1,
- "method" : "POST",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Reload service.",
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
"type" : "string"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/reload",
+ "text" : "reload"
}
],
+ "info" : {
+ "GET" : {
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "srvcmdidx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<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.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "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"
+ "path" : "/nodes/{node}/services",
+ "text" : "services"
},
{
- "text" : "subscription",
"info" : {
"GET" : {
- "permissions" : {
- "user" : "all"
- },
+ "description" : "Read subscription info.",
+ "method" : "GET",
+ "name" : "get",
"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"
},
- "name" : "get",
- "description" : "Read subscription info.",
"proxyto" : "node",
"returns" : {
"type" : "object"
- },
- "method" : "GET"
+ }
},
- "PUT" : {
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT",
+ "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>"
+ },
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
- },
- "key" : {
- "description" : "Proxmox VE subscription key",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "name" : "set",
"protected" : 1,
- "description" : "Set subscription key.",
- "proxyto" : "node"
- },
- "POST" : {
"proxyto" : "node",
- "protected" : 1,
- "description" : "Update subscription info.",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "PUT" : {
+ "description" : "Set subscription key.",
+ "method" : "PUT",
+ "name" : "set",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "force" : {
- "description" : "Always connect to server, even if we have up to date info inside local cache.",
- "default" : 0,
- "type" : "boolean",
- "optional" : 1
+ "key" : {
+ "description" : "Proxmox VE subscription key",
+ "type" : "string",
+ "typetext" : "<string>"
},
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "name" : "update",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "null"
- },
- "method" : "POST"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/subscription",
- "leaf" : 1
+ "text" : "subscription"
},
{
- "path" : "/nodes/{node}/network",
- "leaf" : 0,
"children" : [
{
"info" : {
"DELETE" : {
- "returns" : {
- "type" : "null"
+ "description" : "Delete network device configuration",
+ "method" : "DELETE",
+ "name" : "delete_network",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
"permissions" : {
"check" : [
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Delete network device configuration",
- "method" : "DELETE",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read network device configuration",
+ "method" : "GET",
+ "name" : "network_config",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
"iface" : {
- "maxLength" : 20,
- "format" : "pve-iface",
"description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
"minLength" : 2,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "name" : "delete_network",
- "protected" : 1
- },
- "PUT" : {
- "returns" : {
- "type" : "null"
+ }
},
"permissions" : {
"check" : [
"perm",
"/nodes/{node}",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
"proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "method" : {
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
"description" : "Update network device configuration",
"method" : "PUT",
"name" : "update_network",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "slaves" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Specify the interfaces used by the bonding device.",
- "format" : "pve-iface-list"
- },
- "netmask" : {
- "format" : "ipv4mask",
- "optional" : 1,
- "type" : "string",
- "description" : "Network mask.",
- "requires" : "address"
- },
"address" : {
+ "description" : "IP address.",
"format" : "ipv4",
+ "optional" : 1,
"requires" : "netmask",
- "description" : "IP address.",
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "bridge_ports" : {
- "format" : "pve-iface-list",
- "description" : "Specify the iterfaces you want to add to your bridge.",
+ "address6" : {
+ "description" : "IP address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "requires" : "netmask6",
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
"autostart" : {
+ "description" : "Automatically start interface on boot.",
"optional" : 1,
"type" : "boolean",
- "description" : "Automatically start interface on boot."
+ "typetext" : "<boolean>"
},
- "type" : {
- "type" : "string",
- "description" : "Network interface type",
+ "bond_mode" : {
+ "description" : "Bonding mode.",
"enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "unknown"
- ]
- },
- "gateway6" : {
- "type" : "string",
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
"optional" : 1,
- "description" : "Default ipv6 gateway address.",
- "format" : "ipv6"
+ "type" : "string"
},
- "gateway" : {
- "format" : "ipv4",
+ "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",
- "description" : "Default gateway address."
+ "type" : "string"
},
- "ovs_bridge" : {
- "type" : "string",
+ "bridge_ports" : {
+ "description" : "Specify the iterfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
"optional" : 1,
- "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
- "format" : "pve-iface"
- },
- "delete" : {
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "bridge_vlan_aware" : {
+ "description" : "Enable bridge vlan support.",
"optional" : 1,
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"comments" : {
"description" : "Comments",
- "type" : "string",
- "optional" : 1
- },
- "ovs_tag" : {
- "optional" : 1,
- "type" : "integer",
- "maximum" : 4094,
- "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
- "minimum" : 1
- },
- "ovs_options" : {
- "description" : "OVS interface options.",
"optional" : 1,
"type" : "string",
- "maxLength" : 1024
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"comments6" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Comments"
- },
- "bridge_vlan_aware" : {
- "optional" : 1,
- "type" : "boolean",
- "description" : "Enable bridge vlan support."
- },
- "address6" : {
- "format" : "ipv6",
+ "description" : "Comments",
"optional" : 1,
"type" : "string",
- "description" : "IP address.",
- "requires" : "netmask6"
+ "typetext" : "<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"
- ],
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "ovs_bonds" : {
- "format" : "pve-iface-list",
- "description" : "Specify the interfaces used by the bonding device.",
+ "gateway" : {
+ "description" : "Default gateway address.",
+ "format" : "ipv4",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "bond_mode" : {
+ "gateway6" : {
+ "description" : "Default ipv6 gateway address.",
+ "format" : "ipv6",
"optional" : 1,
"type" : "string",
- "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"
- ]
+ "typetext" : "<string>"
},
"iface" : {
+ "description" : "Network interface name.",
"format" : "pve-iface",
"maxLength" : 20,
"minLength" : 2,
- "description" : "Network interface name.",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "ovs_ports" : {
- "format" : "pve-iface-list",
+ "netmask" : {
+ "description" : "Network mask.",
+ "format" : "ipv4mask",
"optional" : 1,
+ "requires" : "address",
"type" : "string",
- "description" : "Specify the iterfaces you want to add to your bridge."
+ "typetext" : "<string>"
},
"netmask6" : {
+ "description" : "Network mask.",
"maximum" : 128,
- "type" : "integer",
+ "minimum" : 0,
"optional" : 1,
"requires" : "address6",
- "description" : "Network mask.",
- "minimum" : 0
- }
- }
- },
- "protected" : 1
- },
- "GET" : {
- "description" : "Read network device configuration",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 128)"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "iface" : {
+ "ovs_bonds" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
"type" : "string",
- "description" : "Network interface name.",
- "minLength" : 2,
- "maxLength" : 20,
- "format" : "pve-iface"
+ "typetext" : "<string>"
+ },
+ "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",
+ "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"
}
}
},
- "name" : "network_config",
"permissions" : {
"check" : [
"perm",
"/nodes/{node}",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "properties" : {
- "method" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "method" : "GET"
+ "type" : "null"
+ }
}
},
- "text" : "{iface}",
"leaf" : 1,
- "path" : "/nodes/{node}/network/{iface}"
+ "path" : "/nodes/{node}/network/{iface}",
+ "text" : "{iface}"
}
],
- "text" : "network",
"info" : {
- "GET" : {
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{iface}"
+ "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>"
}
- ],
- "type" : "array"
+ }
},
- "method" : "GET",
- "proxyto" : "node",
- "description" : "List available networks",
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "List available networks",
+ "method" : "GET",
"name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "type" : {
- "optional" : 1,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
"description" : "Only list specific interface types.",
"enum" : [
"bridge",
"OVSPort",
"OVSIntPort",
"any_bridge"
- ]
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
+ ],
+ "optional" : 1,
"type" : "string"
}
}
- }
- },
- "DELETE" : {
- "proxyto" : "node",
- "description" : "Revert network configuration changes.",
+ },
"permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
+ "user" : "all"
},
+ "proxyto" : "node",
"returns" : {
- "type" : "null"
- },
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{iface}",
+ "rel" : "child"
}
- }
- },
- "name" : "revert_network_changes",
- "method" : "DELETE"
+ ],
+ "type" : "array"
+ }
},
"POST" : {
- "protected" : 1,
+ "description" : "Create network device configuration",
+ "method" : "POST",
"name" : "create_network",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "ovs_bridge" : {
- "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-iface"
- },
- "gateway" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Default gateway address.",
- "format" : "ipv4"
- },
- "gateway6" : {
- "format" : "ipv6",
- "description" : "Default ipv6 gateway address.",
- "type" : "string",
- "optional" : 1
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "ovs_options" : {
- "maxLength" : 1024,
- "description" : "OVS interface options.",
- "type" : "string",
- "optional" : 1
- },
- "comments" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Comments"
- },
- "ovs_tag" : {
- "optional" : 1,
- "type" : "integer",
- "maximum" : 4094,
- "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
- "minimum" : 1
- },
- "netmask" : {
- "optional" : 1,
- "type" : "string",
- "requires" : "address",
- "description" : "Network mask.",
- "format" : "ipv4mask"
- },
- "slaves" : {
- "type" : "string",
+ "address" : {
+ "description" : "IP address.",
+ "format" : "ipv4",
"optional" : 1,
- "description" : "Specify the interfaces used by the bonding device.",
- "format" : "pve-iface-list"
- },
- "type" : {
- "enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "unknown"
- ],
- "description" : "Network interface type",
- "type" : "string"
- },
- "autostart" : {
- "description" : "Automatically start interface on boot.",
- "type" : "boolean",
- "optional" : 1
- },
- "bridge_ports" : {
- "format" : "pve-iface-list",
+ "requires" : "netmask",
"type" : "string",
- "optional" : 1,
- "description" : "Specify the iterfaces you want to add to your bridge."
+ "typetext" : "<string>"
},
- "address" : {
- "requires" : "netmask",
+ "address6" : {
"description" : "IP address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "requires" : "netmask6",
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "autostart" : {
+ "description" : "Automatically start interface on boot.",
"optional" : 1,
- "format" : "ipv4"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"bond_mode" : {
"description" : "Bonding mode.",
"optional" : 1,
"type" : "string"
},
- "ovs_bonds" : {
+ "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,
- "description" : "Specify the interfaces used by the bonding device."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "netmask6" : {
- "minimum" : 0,
+ "comments" : {
+ "description" : "Comments",
"optional" : 1,
- "type" : "integer",
- "maximum" : 128,
- "description" : "Network mask.",
- "requires" : "address6"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "ovs_ports" : {
+ "comments6" : {
+ "description" : "Comments",
"optional" : 1,
"type" : "string",
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "format" : "pve-iface-list"
+ "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",
- "description" : "Network interface name.",
- "minLength" : 2
+ "typetext" : "<string>"
},
- "comments6" : {
+ "netmask" : {
+ "description" : "Network mask.",
+ "format" : "ipv4mask",
"optional" : 1,
+ "requires" : "address",
"type" : "string",
- "description" : "Comments"
+ "typetext" : "<string>"
},
- "bridge_vlan_aware" : {
- "description" : "Enable bridge vlan support.",
+ "netmask6" : {
+ "description" : "Network mask.",
+ "maximum" : 128,
+ "minimum" : 0,
"optional" : 1,
- "type" : "boolean"
+ "requires" : "address6",
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 128)"
},
- "address6" : {
- "format" : "ipv6",
- "description" : "IP address.",
- "requires" : "netmask6",
+ "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"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "bond_xmit_hash_policy" : {
+ "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",
+ "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" : [
- "layer2",
- "layer2+3",
- "layer3+4"
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "unknown"
],
- "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes."
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "POST",
- "proxyto" : "node",
- "description" : "Create network device configuration",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "null"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/network",
+ "text" : "network"
},
{
- "path" : "/nodes/{node}/tasks",
- "leaf" : 0,
- "text" : "tasks",
"children" : [
{
- "leaf" : 0,
- "path" : "/nodes/{node}/tasks/{upid}",
- "info" : {
- "DELETE" : {
- "returns" : {
- "type" : "null"
- },
- "permissions" : {
- "user" : "all",
- "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if the task does not belong to him."
- },
- "description" : "Stop a task.",
- "proxyto" : "node",
- "method" : "DELETE",
- "name" : "stop_task",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- },
- "upid" : {
- "type" : "string"
- }
- }
- },
- "protected" : 1
- },
- "GET" : {
- "method" : "GET",
- "returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
- },
- "description" : "",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- },
- "upid" : {
- "type" : "string"
- }
- }
- },
- "name" : "upid_index",
- "permissions" : {
- "user" : "all"
- }
- }
- },
"children" : [
{
"info" : {
"GET" : {
+ "description" : "Read task log.",
"method" : "GET",
"name" : "read_task_log",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "start" : {
+ "limit" : {
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "minimum" : 0
- },
- "upid" : {
- "type" : "string"
+ "typetext" : "<integer> (0 - N)"
},
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "limit" : {
- "type" : "integer",
+ "start" : {
+ "minimum" : 0,
"optional" : 1,
- "minimum" : 0
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "n" : {
- "type" : "integer",
- "description" : "Line number"
- },
- "t" : {
- "type" : "string",
- "description" : "Line text"
- }
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "upid" : {
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
"description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if the task does not belong to him.",
"user" : "all"
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Read task log."
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
- "text" : "log",
"leaf" : 1,
- "path" : "/nodes/{node}/tasks/{upid}/log"
+ "path" : "/nodes/{node}/tasks/{upid}/log",
+ "text" : "log"
},
{
- "path" : "/nodes/{node}/tasks/{upid}/status",
- "leaf" : 1,
- "text" : "status",
"info" : {
"GET" : {
+ "description" : "Read task status.",
+ "method" : "GET",
"name" : "read_task_status",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"upid" : {
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
- "method" : "GET",
"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",
- "description" : "Read task status.",
"returns" : {
"properties" : {
"pid" : {
"type" : "integer"
},
"status" : {
- "type" : "string",
"enum" : [
"running",
"stopped"
- ]
+ ],
+ "type" : "string"
}
},
"type" : "object"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/tasks/{upid}/status",
+ "text" : "status"
}
],
- "text" : "{upid}"
- }
- ],
- "info" : {
- "GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "upid" : {
- "type" : "string"
+ "info" : {
+ "DELETE" : {
+ "description" : "Stop a task.",
+ "method" : "DELETE",
+ "name" : "stop_task",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "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"
}
},
- "links" : [
- {
- "rel" : "child",
- "href" : "{upid}"
+ "GET" : {
+ "description" : "",
+ "method" : "GET",
+ "name" : "upid_index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "upid" : {
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
- ]
+ }
},
- "method" : "GET",
- "proxyto" : "node",
+ "leaf" : 0,
+ "path" : "/nodes/{node}/tasks/{upid}",
+ "text" : "{upid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
"description" : "Read task list for one node (finished tasks).",
- "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)."
- },
+ "method" : "GET",
+ "name" : "node_tasks",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "Only list tasks for this VM.",
- "type" : "integer",
+ "errors" : {
"optional" : 1,
- "format" : "pve-vmid",
- "minimum" : 1
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "start" : {
+ "limit" : {
"minimum" : 0,
"optional" : 1,
- "type" : "integer"
- },
- "errors" : {
- "optional" : 1,
- "type" : "boolean"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "limit" : {
+ "start" : {
"minimum" : 0,
+ "optional" : 1,
"type" : "integer",
- "optional" : 1
+ "typetext" : "<integer> (0 - N)"
},
"userfilter" : {
+ "optional" : 1,
"type" : "string",
- "optional" : 1
- }
- }
- },
- "name" : "node_tasks"
- }
- }
- },
- {
- "leaf" : 0,
- "path" : "/nodes/{node}/scan",
- "info" : {
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "Only list tasks for this VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
"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"
},
- "name" : "index",
- "description" : "Index of available scan methods",
- "method" : "GET",
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
- "method" : {
+ "upid" : {
"type" : "string"
}
},
},
"links" : [
{
- "rel" : "child",
- "href" : "{method}"
+ "href" : "{upid}",
+ "rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
}
},
+ "leaf" : 0,
+ "path" : "/nodes/{node}/tasks",
+ "text" : "tasks"
+ },
+ {
"children" : [
{
"info" : {
"GET" : {
- "proxyto" : "node",
"description" : "Scan zfs pool list on local node.",
+ "method" : "GET",
+ "name" : "zfsscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"pool" : {
}
},
"type" : "object"
- }
- },
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
},
- "additionalProperties" : 0
- },
- "name" : "zfsscan",
- "method" : "GET"
+ "type" : "array"
+ }
}
},
- "text" : "zfs",
"leaf" : 1,
- "path" : "/nodes/{node}/scan/zfs"
+ "path" : "/nodes/{node}/scan/zfs",
+ "text" : "zfs"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/scan/nfs",
"info" : {
"GET" : {
"description" : "Scan remote NFS server.",
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "path" : {
- "type" : "string"
- },
- "options" : {
- "type" : "string"
- }
- }
- }
- },
- "protected" : 1,
+ "method" : "GET",
"name" : "nfsscan",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
- },
- "server" : {
- "format" : "pve-storage-server",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "GET"
- }
- },
- "text" : "nfs"
- },
- {
- "leaf" : 1,
- "path" : "/nodes/{node}/scan/glusterfs",
- "info" : {
- "GET" : {
- "returns" : {
- "items" : {
- "properties" : {
- "volname" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server" : {
+ "format" : "pve-storage-server",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
"permissions" : {
"check" : [
]
]
},
- "description" : "Scan remote GlusterFS server.",
+ "protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "options" : {
+ "type" : "string"
+ },
+ "path" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/nfs",
+ "text" : "nfs"
+ },
+ {
+ "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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"server" : {
"format" : "pve-storage-server",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "volname" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/glusterfs",
"text" : "glusterfs"
},
{
- "text" : "iscsi",
"info" : {
"GET" : {
- "proxyto" : "node",
"description" : "Scan remote iSCSI server.",
+ "method" : "GET",
+ "name" : "iscsiscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "portal" : {
+ "format" : "pve-storage-portal-dns",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
- "target" : {
+ "portal" : {
"type" : "string"
},
- "portal" : {
+ "target" : {
"type" : "string"
}
},
"type" : "object"
- }
- },
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "portal" : {
- "type" : "string",
- "format" : "pve-storage-portal-dns"
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- }
},
- "additionalProperties" : 0
- },
- "name" : "iscsiscan",
- "method" : "GET"
+ "type" : "array"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/scan/iscsi",
- "leaf" : 1
+ "text" : "iscsi"
},
{
"info" : {
"GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "vg" : {
- "type" : "string"
- }
+ "description" : "List local LVM volume groups.",
+ "method" : "GET",
+ "name" : "lvmscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "proxyto" : "node",
- "description" : "List local LVM volume groups.",
"permissions" : {
"check" : [
"perm",
]
]
},
- "method" : "GET",
"protected" : 1,
- "name" : "lvmscan",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- }
- }
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "vg" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
- "text" : "lvm",
"leaf" : 1,
- "path" : "/nodes/{node}/scan/lvm"
+ "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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
"vg" : {
+ "maxLength" : 100,
"pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
- "type" : "string",
- "maxLength" : 100
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "lvmthinscan",
- "protected" : 1,
- "method" : "GET",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "List local LVM Thin Pools.",
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"lv" : {
}
},
"type" : "object"
- }
+ },
+ "type" : "array"
}
}
},
- "text" : "lvmthin",
"leaf" : 1,
- "path" : "/nodes/{node}/scan/lvmthin"
+ "path" : "/nodes/{node}/scan/lvmthin",
+ "text" : "lvmthin"
},
{
- "path" : "/nodes/{node}/scan/usb",
- "leaf" : 1,
- "text" : "usb",
"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",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "List local USB devices.",
"returns" : {
"items" : {
"properties" : {
- "speed" : {
- "type" : "string"
- },
- "serial" : {
- "optional" : 1,
- "type" : "string"
+ "busnum" : {
+ "type" : "integer"
},
- "product" : {
- "type" : "string",
- "optional" : 1
+ "class" : {
+ "type" : "integer"
},
"devnum" : {
"type" : "integer"
},
- "vendid" : {
+ "level" : {
+ "type" : "integer"
+ },
+ "manufacturer" : {
+ "optional" : 1,
"type" : "string"
},
- "busnum" : {
+ "port" : {
"type" : "integer"
},
- "class" : {
- "type" : "integer"
+ "prodid" : {
+ "type" : "string"
},
- "usbpath" : {
+ "product" : {
"optional" : 1,
"type" : "string"
},
- "prodid" : {
+ "serial" : {
+ "optional" : 1,
"type" : "string"
},
- "level" : {
- "type" : "integer"
+ "speed" : {
+ "type" : "string"
},
- "manufacturer" : {
+ "usbpath" : {
"optional" : 1,
"type" : "string"
},
- "port" : {
- "type" : "integer"
+ "vendid" : {
+ "type" : "string"
}
},
"type" : "object"
},
"type" : "array"
- },
- "name" : "usbscan",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
+ }
+ }
+ },
+ "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"
}
},
- "protected" : 1,
- "method" : "GET"
- }
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{method}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
- ],
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/scan",
"text" : "scan"
},
{
- "path" : "/nodes/{node}/storage",
- "leaf" : 0,
- "text" : "storage",
"children" : [
{
- "leaf" : 0,
- "path" : "/nodes/{node}/storage/{storage}",
- "info" : {
- "GET" : {
- "returns" : {
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- }
- },
- "type" : "array"
- },
- "method" : "GET",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
- },
- "name" : "diridx",
- "description" : ""
- }
- },
- "text" : "{storage}",
"children" : [
{
- "info" : {
- "GET" : {
- "method" : "GET",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
- },
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "Only list images for this VM",
- "optional" : 1,
- "type" : "integer"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "content" : {
- "description" : "Only list content of this type.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-storage-content"
- }
- }
- },
- "name" : "index",
- "protected" : 1,
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "volid" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{volid}",
- "rel" : "child"
- }
- ]
- },
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
- },
- "proxyto" : "node",
- "description" : "List storage content."
- },
- "POST" : {
- "returns" : {
- "description" : "Volume identifier",
- "type" : "string"
- },
- "description" : "Allocate disk images.",
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.AllocateSpace"
- ]
- ]
- },
- "method" : "POST",
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "format" : {
- "requires" : "size",
- "enum" : [
- "raw",
- "qcow2",
- "subvol"
- ],
- "type" : "string",
- "optional" : 1
- },
- "vmid" : {
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "Specify owner VM",
- "type" : "integer"
- },
- "storage" : {
- "format" : "pve-storage-id",
- "description" : "The storage identifier.",
- "type" : "string"
- },
- "size" : {
- "pattern" : "\\d+[MG]?",
- "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
- "type" : "string"
- },
- "filename" : {
- "type" : "string",
- "description" : "The name of the file to create."
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- }
- }
- },
- "name" : "create"
- }
- },
"children" : [
{
"info" : {
- "GET" : {
- "returns" : {
- "type" : "object"
- },
- "proxyto" : "node",
- "description" : "Get volume attributes",
- "permissions" : {
- "description" : "You need read access for the volume.",
- "user" : "all"
- },
- "method" : "GET",
- "protected" : 1,
+ "DELETE" : {
+ "description" : "Delete volume",
+ "method" : "DELETE",
+ "name" : "delete",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "storage" : {
- "type" : "string",
- "optional" : 1,
- "description" : "The storage identifier.",
- "format" : "pve-storage-id"
- },
"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",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"volume" : {
"description" : "Volume identifier",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "name" : "info"
+ "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"
+ }
},
- "DELETE" : {
+ "GET" : {
+ "description" : "Get volume attributes",
+ "method" : "GET",
+ "name" : "info",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "volume" : {
- "type" : "string",
- "description" : "Volume identifier"
- },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"storage" : {
- "format" : "pve-storage-id",
"description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "volume" : {
+ "description" : "Volume identifier",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "name" : "delete",
- "protected" : 1,
- "method" : "DELETE",
"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).",
+ "description" : "You need read access for the volume.",
"user" : "all"
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Delete volume",
"returns" : {
- "type" : "null"
+ "type" : "object"
}
},
"POST" : {
+ "description" : "Copy a volume. This is experimental code - do not use.",
+ "method" : "POST",
+ "name" : "copy",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "target" : {
- "type" : "string",
- "description" : "Target volume identifier"
- },
- "target_node" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "optional" : 1,
- "description" : "Target node. Default is local node.",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"storage" : {
- "format" : "pve-storage-id",
"description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "volume" : {
+ "target" : {
+ "description" : "Target volume identifier",
"type" : "string",
- "description" : "Source volume identifier"
+ "typetext" : "<string>"
},
- "node" : {
- "description" : "The cluster node name.",
+ "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",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
}
},
- "name" : "copy",
- "description" : "Copy a volume. This is experimental code - do not use.",
"protected" : 1,
"proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "method" : "POST"
+ }
}
},
- "text" : "{volume}",
"leaf" : 1,
- "path" : "/nodes/{node}/storage/{storage}/content/{volume}"
+ "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
+ "text" : "{volume}"
}
],
- "text" : "content",
- "leaf" : 0,
- "path" : "/nodes/{node}/storage/{storage}/content"
- },
- {
- "leaf" : 1,
- "path" : "/nodes/{node}/storage/{storage}/status",
"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",
1
]
},
- "description" : "Read storage status.",
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
- "properties" : {},
- "type" : "object"
- },
+ "items" : {
+ "properties" : {
+ "volid" : {
+ "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",
- "format" : "pve-storage-id"
+ "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"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/storage/{storage}/content",
+ "text" : "content"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Read storage status.",
+ "method" : "GET",
+ "name" : "read_status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Audit",
+ "Datastore.AllocateSpace"
+ ],
+ "any",
+ 1
+ ]
},
- "name" : "read_status",
"protected" : 1,
- "method" : "GET"
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {},
+ "type" : "object"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/status",
"text" : "status"
},
{
"info" : {
"GET" : {
- "protected" : 1,
+ "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" : {
- "type" : "string",
"description" : "The list of datasources you want to display.",
- "format" : "pve-configid-list"
+ "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" : {
+ "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" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
"timeframe" : {
- "type" : "string",
+ "description" : "Specify the time frame you are interested in.",
"enum" : [
"hour",
"day",
"month",
"year"
],
- "description" : "Specify the time frame you are interested in."
- },
- "storage" : {
- "type" : "string",
- "description" : "The storage identifier.",
- "format" : "pve-storage-id"
- },
- "cf" : {
- "type" : "string",
- "optional" : 1,
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "description" : "The RRD consolidation function"
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "rrd",
- "method" : "GET",
- "proxyto" : "node",
- "description" : "Read storage RRD statistics (returns PNG).",
"permissions" : {
"check" : [
"perm",
1
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "properties" : {
- "filename" : {
- "type" : "string"
- }
+ "items" : {
+ "properties" : {},
+ "type" : "object"
},
- "type" : "object"
+ "type" : "array"
}
}
},
- "text" : "rrd",
"leaf" : 1,
- "path" : "/nodes/{node}/storage/{storage}/rrd"
+ "path" : "/nodes/{node}/storage/{storage}/rrddata",
+ "text" : "rrddata"
},
{
"info" : {
- "GET" : {
- "protected" : 1,
+ "POST" : {
+ "description" : "Upload templates and ISO images.",
+ "method" : "POST",
+ "name" : "upload",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "content" : {
+ "description" : "Content type.",
+ "format" : "pve-storage-content",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "filename" : {
+ "description" : "The name of the file to create.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
- },
- "timeframe" : {
+ "format" : "pve-node",
"type" : "string",
- "description" : "Specify the time frame you are interested in.",
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ]
+ "typetext" : "<string>"
},
"storage" : {
+ "description" : "The storage identifier.",
"format" : "pve-storage-id",
"type" : "string",
- "description" : "The storage identifier."
+ "typetext" : "<string>"
},
- "cf" : {
- "type" : "string",
+ "tmpfilename" : {
+ "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trustet port on localhost.",
"optional" : 1,
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "description" : "The RRD consolidation function"
+ "type" : "string",
+ "typetext" : "<string>"
}
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.AllocateTemplate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/upload",
+ "text" : "upload"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "",
+ "method" : "GET",
+ "name" : "diridx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<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" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/storage/{storage}",
+ "text" : "{storage}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Get status for all datastores.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "content" : {
+ "description" : "Only list stores which support this content type.",
+ "format" : "pve-storage-content-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enabled" : {
+ "default" : 0,
+ "description" : "Only list stores which are enabled (not disabled in config).",
+ "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" : {
+ "storage" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{storage}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/storage",
+ "text" : "storage"
+ },
+ {
+ "children" : [
+ {
+ "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>"
+ }
+ }
+ },
+ "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"
},
- "additionalProperties" : 0
+ "wwn" : {
+ "optional" : 1,
+ "type" : "string"
+ }
},
- "name" : "rrddata",
- "method" : "GET",
- "proxyto" : "node",
- "description" : "Read storage RRD statistics.",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
+ "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"
},
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
+ "healthonly" : {
+ "description" : "If true returns only the health status",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "text" : "rrddata",
- "leaf" : 1,
- "path" : "/nodes/{node}/storage/{storage}/rrddata"
- },
- {
- "path" : "/nodes/{node}/storage/{storage}/upload",
- "leaf" : 1,
- "text" : "upload",
- "info" : {
- "POST" : {
- "returns" : {
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "attributes" : {
+ "optional" : 1,
+ "type" : "array"
+ },
+ "health" : {
"type" : "string"
},
- "method" : "POST",
- "description" : "Upload templates and ISO images.",
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "storage" : {
- "format" : "pve-storage-id",
- "description" : "The storage identifier.",
- "type" : "string"
- },
- "tmpfilename" : {
- "optional" : 1,
- "type" : "string",
- "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."
- },
- "content" : {
- "description" : "Content type.",
- "type" : "string",
- "format" : "pve-storage-content"
- },
- "filename" : {
- "type" : "string",
- "description" : "The name of the file to create."
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- }
+ "text" : {
+ "optional" : 1,
+ "type" : "string"
},
- "name" : "upload",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.AllocateTemplate"
- ]
- ]
+ "type" : {
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "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"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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"
}
}
- ]
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/initgpt",
+ "text" : "initgpt"
}
],
"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" : {
- "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
"user" : "all"
},
"proxyto" : "node",
- "description" : "Get status for all datastores.",
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
- "properties" : {
- "storage" : {
- "type" : "string"
- }
- }
+ "properties" : {},
+ "type" : "object"
},
"links" : [
{
- "href" : "{storage}",
+ "href" : "{name}",
"rel" : "child"
}
- ]
- },
- "parameters" : {
- "properties" : {
- "target" : {
- "format" : "pve-node",
- "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
- "type" : "string",
- "optional" : 1
- },
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "optional" : 1,
- "description" : "Only list status for specified storage"
- },
- "enabled" : {
- "description" : "Only list stores which are enabled (not disabled in config).",
- "type" : "boolean",
- "optional" : 1,
- "default" : 0
- },
- "content" : {
- "format" : "pve-storage-content-list",
- "type" : "string",
- "optional" : 1,
- "description" : "Only list stores which support this content type."
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "index",
- "protected" : 1,
- "method" : "GET"
+ ],
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/disks",
+ "text" : "disks"
},
{
- "text" : "apt",
"children" : [
{
"info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
+ "GET" : {
+ "description" : "List available updates.",
+ "method" : "GET",
+ "name" : "list_updates",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
"permissions" : {
"check" : [
]
]
},
+ "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).",
- "proxyto" : "node",
"method" : "POST",
"name" : "update_database",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"notify" : {
- "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
"default" : 0,
+ "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
"quiet" : {
"default" : 0,
+ "description" : "Only produces output suitable for logging, omitting progress indicators.",
"optional" : 1,
"type" : "boolean",
- "description" : "Only produces output suitable for logging, omitting progress indicators."
- },
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- }
- }
- },
- "protected" : 1
- },
- "GET" : {
- "method" : "GET",
- "name" : "list_updates",
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "typetext" : "<boolean>"
}
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
}
},
"permissions" : {
]
]
},
- "description" : "List available updates.",
- "proxyto" : "node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
- "text" : "update",
"leaf" : 1,
- "path" : "/nodes/{node}/apt/update"
+ "path" : "/nodes/{node}/apt/update",
+ "text" : "update"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/apt/changelog",
"info" : {
"GET" : {
+ "description" : "Get package changelogs.",
"method" : "GET",
- "returns" : {
- "type" : "string"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
"name" : "changelog",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "name" : {
+ "description" : "Package name.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
- },
- "name" : {
- "description" : "Package name.",
- "type" : "string"
+ "typetext" : "<string>"
},
"version" : {
"description" : "Package version.",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Get package changelogs.",
- "proxyto" : "node"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/changelog",
"text" : "changelog"
},
{
- "text" : "versions",
"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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
},
"proxyto" : "node",
- "description" : "Get package information for important Proxmox packages.",
- "method" : "GET",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {},
"type" : "object"
- }
+ },
+ "type" : "array"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/apt/versions",
- "leaf" : 1
+ "text" : "versions"
}
],
"info" : {
"GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "id" : {
- "type" : "string"
- }
- }
- },
- "links" : [
- {
- "href" : "{id}",
- "rel" : "child"
- }
- ]
- },
+ "description" : "Directory index for apt (Advanced Package Tool).",
"method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
}
}
},
- "name" : "index",
"permissions" : {
"user" : "all"
},
- "description" : "Directory index for apt (Advanced Package Tool)."
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
},
+ "leaf" : 0,
"path" : "/nodes/{node}/apt",
- "leaf" : 0
+ "text" : "apt"
},
{
"children" : [
{
- "text" : "rules",
"children" : [
{
- "text" : "{pos}",
"info" : {
"DELETE" : {
+ "description" : "Delete rule.",
"method" : "DELETE",
- "protected" : 1,
+ "name" : "delete_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
"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>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"pos" : {
- "type" : "integer",
- "optional" : 1,
"description" : "Update rule at position <pos>.",
- "minimum" : 0
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
}
},
- "name" : "delete_rule",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "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",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
},
- "proxyto" : "node",
- "description" : "Delete rule.",
"permissions" : {
"check" : [
"perm",
"/nodes/{node}",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
}
},
"PUT" : {
+ "description" : "Modify rule data.",
+ "method" : "PUT",
"name" : "update_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "dest" : {
- "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.",
- "format" : "pve-fw-addr-spec"
- },
- "digest" : {
- "maxLength" : 40,
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
"optional" : 1,
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
- "source" : {
- "format" : "pve-fw-addr-spec",
+ "comment" : {
+ "description" : "Descriptive comment.",
"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."
+ "typetext" : "<string>"
},
- "comment" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"optional" : 1,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "moveto" : {
- "minimum" : 0,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "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" : "integer"
- },
- "delete" : {
"type" : "string",
- "optional" : 1,
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list"
+ "typetext" : "<string>"
},
- "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,
"type" : "string",
- "enum" : [
- "in",
- "out",
- "group"
- ]
+ "typetext" : "<string>"
},
"dport" : {
- "format" : "pve-fw-dport-spec",
"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",
- "optional" : 1
+ "typetext" : "<string>"
},
- "sport" : {
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
"optional" : 1,
- "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.",
- "format" : "pve-fw-sport-spec"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"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.",
"format" : "pve-iface",
- "type" : "string",
- "optional" : 1,
+ "maxLength" : 20,
"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,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proto" : {
- "format" : "pve-fw-protocol-spec",
+ "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,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
+ "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,
- "type" : "integer",
"optional" : 1,
- "description" : "Update rule at position <pos>."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "macro" : {
- "maxLength" : 128,
+ "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"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "action" : {
- "minLength" : 2,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "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,
- "maxLength" : 20
+ "type" : "string",
+ "typetext" : "<string>"
},
- "enable" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
- "method" : "PUT",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Modify rule data.",
"returns" : {
"type" : "null"
}
- },
- "GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "pos" : {
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "type" : "integer",
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "name" : "get_rule",
- "proxyto" : "node",
- "description" : "Get single rule data."
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/firewall/rules/{pos}",
- "leaf" : 1
+ "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>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
"pos" : {
"type" : "integer"
}
- }
+ },
+ "type" : "object"
},
"links" : [
{
}
],
"type" : "array"
- },
- "method" : "GET",
- "description" : "List rules.",
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- }
- },
- "name" : "get_rules"
+ }
},
"POST" : {
+ "description" : "Create new rule.",
"method" : "POST",
"name" : "create_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "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."
- },
- "enable" : {
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer"
- },
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 0,
- "type" : "string"
- },
"action" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
"minLength" : 2,
"optional" : 0,
- "type" : "string",
- "maxLength" : 20
- },
- "pos" : {
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "type" : "integer",
- "optional" : 1
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
- "proto" : {
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "comment" : {
+ "description" : "Descriptive comment.",
"optional" : 1,
"type" : "string",
- "format" : "pve-fw-protocol-spec"
+ "typetext" : "<string>"
},
- "macro" : {
+ "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,
- "maxLength" : 128
+ "type" : "string",
+ "typetext" : "<string>"
},
- "node" : {
+ "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",
- "description" : "The cluster node name.",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "comment" : {
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
"optional" : 1,
- "type" : "string"
+ "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,
- "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"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "sport" : {
- "format" : "pve-fw-sport-spec",
- "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"
+ "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.",
+ "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,
- "format" : "pve-fw-addr-spec"
+ "type" : "string",
+ "typetext" : "<string>"
},
"source" : {
- "format" : "pve-fw-addr-spec",
"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",
- "optional" : 1
+ "typetext" : "<string>"
},
- "digest" : {
- "maxLength" : 40,
+ "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",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
+ "type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
+ }
},
"permissions" : {
"check" : [
]
]
},
- "description" : "Create new rule.",
- "proxyto" : "node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
+ "leaf" : 0,
"path" : "/nodes/{node}/firewall/rules",
- "leaf" : 0
+ "text" : "rules"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/firewall/options",
"info" : {
- "PUT" : {
- "protected" : 1,
- "name" : "set_options",
+ "GET" : {
+ "description" : "Get host firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "digest" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "enable" : {
+ "description" : "Enable host firewall rules.",
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
- },
- "nf_conntrack_max" : {
- "minimum" : 32768,
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum number of tracked connections."
- },
- "ndp" : {
- "optional" : 1,
- "type" : "boolean",
- "description" : "Enable NDP."
- },
- "nf_conntrack_tcp_timeout_established" : {
- "minimum" : 7875,
- "optional" : 1,
- "type" : "integer",
- "description" : "Conntrack established timeout."
- },
- "nosmurfs" : {
- "description" : "Enable SMURFS filter.",
- "type" : "boolean",
- "optional" : 1
+ "type" : "boolean"
},
- "tcp_flags_log_level" : {
- "optional" : 1,
- "type" : "string",
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "description" : "Log level for illegal tcp flags filter."
- },
- "log_level_in" : {
"optional" : 1,
- "type" : "string",
+ "type" : "string"
+ },
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "description" : "Log level for incoming traffic."
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ndp" : {
+ "description" : "Enable NDP.",
+ "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",
"debug",
"nolog"
],
- "description" : "Log level for SMURFS filter.",
"optional" : 1,
"type" : "string"
},
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-configid-list"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "tcpflags" : {
- "optional" : 1,
- "type" : "boolean",
- "description" : "Filter illegal combinations of TCP flags."
- },
- "log_level_out" : {
+ "tcp_flags_log_level" : {
+ "description" : "Log level for illegal tcp flags filter.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "description" : "Log level for outgoing traffic.",
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "enable" : {
- "type" : "boolean",
+ "tcpflags" : {
+ "description" : "Filter illegal combinations of TCP flags.",
"optional" : 1,
- "description" : "Enable host firewall rules."
+ "type" : "boolean"
}
- }
- },
- "method" : "PUT",
- "proxyto" : "node",
- "description" : "Set Firewall options.",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "returns" : {
- "type" : "null"
+ },
+ "type" : "object"
}
},
- "GET" : {
- "proxyto" : "node",
- "description" : "Get host firewall options.",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
+ "PUT" : {
+ "description" : "Set Firewall options.",
+ "method" : "PUT",
+ "name" : "set_options",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "get_options",
- "returns" : {
- "type" : "object",
- "properties" : {
- "nf_conntrack_tcp_timeout_established" : {
- "description" : "Conntrack established timeout.",
- "type" : "integer",
+ "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,
- "minimum" : 7875
+ "type" : "string",
+ "typetext" : "<string>"
},
- "nosmurfs" : {
- "description" : "Enable SMURFS filter.",
+ "enable" : {
+ "description" : "Enable host firewall rules.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "tcp_flags_log_level" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Log level for illegal tcp flags filter.",
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
"enum" : [
"emerg",
"alert",
"info",
"debug",
"nolog"
- ]
- },
- "nf_conntrack_max" : {
- "description" : "Maximum number of tracked connections.",
- "type" : "integer",
- "optional" : 1,
- "minimum" : 32768
- },
- "ndp" : {
- "type" : "boolean",
+ ],
"optional" : 1,
- "description" : "Enable NDP."
+ "type" : "string"
},
- "smurf_log_level" : {
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "description" : "Log level for SMURFS filter.",
"optional" : 1,
"type" : "string"
},
- "log_level_in" : {
+ "ndp" : {
+ "description" : "Enable NDP.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "nf_conntrack_max" : {
+ "description" : "Maximum number of tracked connections.",
+ "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)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "Log level for incoming traffic.",
+ "typetext" : "<string>"
+ },
+ "nosmurfs" : {
+ "description" : "Enable SMURFS filter.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "smurf_log_level" : {
+ "description" : "Log level for SMURFS filter.",
"enum" : [
"emerg",
"alert",
"info",
"debug",
"nolog"
- ]
- },
- "tcpflags" : {
- "description" : "Filter illegal combinations of TCP flags.",
- "type" : "boolean",
- "optional" : 1
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "log_level_out" : {
- "description" : "Log level for outgoing traffic.",
+ "tcp_flags_log_level" : {
+ "description" : "Log level for illegal tcp flags filter.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "enable" : {
- "description" : "Enable host firewall rules.",
+ "tcpflags" : {
+ "description" : "Filter illegal combinations of TCP flags.",
"optional" : 1,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
}
},
- "method" : "GET"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/firewall/options",
"text" : "options"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/firewall/log",
"info" : {
"GET" : {
- "protected" : 1,
+ "description" : "Read firewall log",
+ "method" : "GET",
"name" : "log",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "start" : {
- "type" : "integer",
- "optional" : 1,
- "minimum" : 0
- },
"limit" : {
- "type" : "integer",
+ "minimum" : 0,
"optional" : 1,
- "minimum" : 0
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "GET",
- "description" : "Read firewall log",
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
"n" : {
- "type" : "integer",
- "description" : "Line number"
+ "description" : "Line number",
+ "type" : "integer"
},
"t" : {
- "type" : "string",
- "description" : "Line text"
+ "description" : "Line text",
+ "type" : "string"
}
- }
+ },
+ "type" : "object"
},
"type" : "array"
}
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/firewall/log",
"text" : "log"
}
],
- "text" : "firewall",
"info" : {
"GET" : {
+ "description" : "Directory 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"
},
- "name" : "index",
- "description" : "Directory index.",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {},
"type" : "object"
},
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{name}",
+ "rel" : "child"
}
- ]
- },
- "method" : "GET"
+ ],
+ "type" : "array"
+ }
}
},
+ "leaf" : 0,
"path" : "/nodes/{node}/firewall",
- "leaf" : 0
+ "text" : "firewall"
},
{
"info" : {
"GET" : {
+ "description" : "API version details",
+ "method" : "GET",
+ "name" : "version",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "version",
"permissions" : {
"user" : "all"
},
"proxyto" : "node",
- "description" : "API version details",
- "method" : "GET",
"returns" : {
- "type" : "object",
"properties" : {
- "repoid" : {
+ "release" : {
"type" : "string"
},
- "release" : {
+ "repoid" : {
"type" : "string"
},
"version" : {
"type" : "string"
}
- }
+ },
+ "type" : "object"
}
}
},
- "text" : "version",
"leaf" : 1,
- "path" : "/nodes/{node}/version"
+ "path" : "/nodes/{node}/version",
+ "text" : "version"
},
{
"info" : {
"GET" : {
- "method" : "GET",
- "returns" : {
- "properties" : {},
- "type" : "object"
- },
"description" : "Read node status",
- "proxyto" : "node",
+ "method" : "GET",
"name" : "status",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
"Sys.Audit"
]
]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {},
+ "type" : "object"
}
},
"POST" : {
+ "description" : "Reboot or shutdown a node.",
+ "method" : "POST",
"name" : "node_cmd",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- },
"command" : {
"description" : "Specify the command.",
"enum" : [
"shutdown"
],
"type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
- "method" : "POST",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Reboot or shutdown a node.",
"returns" : {
"type" : "null"
}
}
},
- "text" : "status",
"leaf" : 1,
- "path" : "/nodes/{node}/status"
+ "path" : "/nodes/{node}/status",
+ "text" : "status"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/netstat",
"info" : {
"GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
+ "description" : "Read tap/vm network device interface counters",
+ "method" : "GET",
+ "name" : "netstat",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "method" : "GET",
"permissions" : {
"check" : [
"perm",
]
]
},
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "netstat",
"proxyto" : "node",
- "description" : "Read tap/vm network device interface counters"
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/netstat",
"text" : "netstat"
},
{
"info" : {
"POST" : {
- "returns" : {
- "properties" : {},
- "type" : "array"
- },
- "proxyto" : "node",
"description" : "Execute multiple commands in order.",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
"method" : "POST",
- "protected" : 1,
"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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
}
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {},
+ "type" : "array"
}
}
},
- "text" : "execute",
"leaf" : 1,
- "path" : "/nodes/{node}/execute"
+ "path" : "/nodes/{node}/execute",
+ "text" : "execute"
},
{
- "text" : "rrd",
"info" : {
"GET" : {
+ "description" : "Read node 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" : {
- "type" : "string",
"description" : "The list of datasources you want to display.",
- "format" : "pve-configid-list"
+ "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.",
"year"
],
"type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "cf" : {
- "type" : "string",
- "optional" : 1,
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "description" : "The RRD consolidation function"
}
}
},
]
},
"protected" : 1,
- "description" : "Read node RRD statistics (returns PNG)",
"returns" : {
- "type" : "object",
"properties" : {
"filename" : {
"type" : "string"
}
- }
- },
- "method" : "GET"
+ },
+ "type" : "object"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/rrd",
- "leaf" : 1
+ "text" : "rrd"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/rrddata",
"info" : {
"GET" : {
+ "description" : "Read node RRD statistics",
+ "method" : "GET",
"name" : "rrddata",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"cf" : {
- "optional" : 1,
- "type" : "string",
"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" : {
- "type" : "string",
"description" : "Specify the time frame you are interested in.",
"enum" : [
"hour",
"week",
"month",
"year"
- ]
+ ],
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
"protected" : 1,
- "description" : "Read node RRD statistics",
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
- "properties" : {}
- }
- },
- "method" : "GET"
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/nodes/{node}/rrddata",
"text" : "rrddata"
},
{
- "leaf" : 1,
- "path" : "/nodes/{node}/syslog",
"info" : {
"GET" : {
"description" : "Read system log",
- "proxyto" : "node",
+ "method" : "GET",
+ "name" : "syslog",
+ "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>"
+ },
+ "since" : {
+ "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"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "until" : {
+ "description" : "Display all log until this date-time string.",
+ "optional" : 1,
+ "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
"properties" : {
- "t" : {
- "type" : "string",
- "description" : "Line text"
- },
"n" : {
"description" : "Line number",
"type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
}
},
"type" : "object"
},
"type" : "array"
- },
- "protected" : 1,
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/syslog",
+ "text" : "syslog"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Creates a VNC Shell proxy.",
+ "method" : "POST",
+ "name" : "vncshell",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "since" : {
- "optional" : 1,
- "type" : "string",
- "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
- "description" : "Display all log since this date-time string."
- },
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "limit" : {
- "minimum" : 0,
+ "upgrade" : {
+ "default" : 0,
+ "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
"optional" : 1,
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "until" : {
- "description" : "Display all log until this date-time string.",
- "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
+ "websocket" : {
+ "description" : "use websocket instead of standard vnc.",
"optional" : 1,
- "type" : "string"
- },
- "start" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "syslog",
- "method" : "GET"
- }
- },
- "text" : "syslog"
- },
- {
- "info" : {
- "POST" : {
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Console"
+ ]
+ ],
+ "description" : "Restricted to users on realm 'pam'"
+ },
+ "protected" : 1,
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
- "user" : {
+ "cert" : {
"type" : "string"
},
"port" : {
"upid" : {
"type" : "string"
},
- "cert" : {
+ "user" : {
"type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "method" : "POST",
- "permissions" : {
- "description" : "Restricted to users on realm 'pam'",
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Console"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "upgrade" : {
- "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
- "default" : 0,
- "type" : "boolean",
- "optional" : 1
- },
- "node" : {
- "type" : "string",
- "description" : "The cluster node name.",
- "format" : "pve-node"
- },
- "websocket" : {
- "optional" : 1,
- "type" : "boolean",
- "description" : "use websocket instead of standard vnc."
- }
- },
- "additionalProperties" : 0
- },
- "name" : "vncshell",
- "protected" : 1,
- "description" : "Creates a VNC Shell proxy."
+ }
+ }
}
},
- "text" : "vncshell",
"leaf" : 1,
- "path" : "/nodes/{node}/vncshell"
+ "path" : "/nodes/{node}/vncshell",
+ "text" : "vncshell"
},
{
- "text" : "vncwebsocket",
"info" : {
"GET" : {
- "method" : "GET",
- "returns" : {
- "properties" : {
- "port" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
"description" : "Opens a weksocket for VNC traffic.",
+ "method" : "GET",
+ "name" : "vncwebsocket",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vncticket" : {
- "maxLength" : 512,
- "description" : "Ticket from previous call to vncproxy.",
- "type" : "string"
- },
"node" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
"port" : {
- "minimum" : 5900,
"description" : "Port number returned by previous vncproxy call.",
"maximum" : 5999,
- "type" : "integer"
+ "minimum" : 5900,
+ "type" : "integer",
+ "typetext" : "<integer> (5900 - 5999)"
+ },
+ "vncticket" : {
+ "description" : "Ticket from previous call to vncproxy.",
+ "maxLength" : 512,
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "vncwebsocket",
"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"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/vncwebsocket",
- "leaf" : 1
+ "text" : "vncwebsocket"
},
{
"info" : {
"POST" : {
+ "description" : "Creates a SPICE shell.",
"method" : "POST",
- "protected" : 1,
+ "name" : "spiceshell",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "upgrade" : {
- "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
- "default" : 0,
- "type" : "boolean",
- "optional" : 1
+ "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 resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
"format" : "address",
"optional" : 1,
"type" : "string",
- "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)."
+ "typetext" : "<string>"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "upgrade" : {
+ "default" : 0,
+ "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
}
},
- "name" : "spiceshell",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Console"
+ ]
+ ],
+ "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" : {
- "proxy" : {
+ "host" : {
"type" : "string"
},
- "tls-port" : {
- "type" : "integer"
- },
"password" : {
"type" : "string"
},
+ "proxy" : {
+ "type" : "string"
+ },
+ "tls-port" : {
+ "type" : "integer"
+ },
"type" : {
"type" : "string"
- },
- "host" : {
- "type" : "string"
}
}
- },
- "proxyto" : "node",
- "description" : "Creates a SPICE shell.",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Console"
- ]
- ],
- "description" : "Restricted to users on realm 'pam'"
}
}
},
- "text" : "spiceshell",
"leaf" : 1,
- "path" : "/nodes/{node}/spiceshell"
+ "path" : "/nodes/{node}/spiceshell",
+ "text" : "spiceshell"
},
{
- "path" : "/nodes/{node}/dns",
- "leaf" : 1,
- "text" : "dns",
"info" : {
"GET" : {
+ "description" : "Read DNS settings.",
"method" : "GET",
- "returns" : {
- "type" : "object",
+ "name" : "dns",
+ "parameters" : {
"additionalProperties" : 0,
"properties" : {
- "search" : {
- "description" : "Search domain for host-name lookup.",
- "type" : "string",
- "optional" : 1
- },
- "dns3" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Third name server IP address."
- },
- "dns2" : {
- "description" : "Second name server IP address.",
- "type" : "string",
- "optional" : 1
- },
- "dns1" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "optional" : 1,
- "description" : "First name server IP address."
+ "typetext" : "<string>"
}
}
},
- "name" : "dns",
"permissions" : {
"check" : [
"perm",
]
]
},
- "parameters" : {
+ "proxyto" : "node",
+ "returns" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "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" : {
+ "description" : "Search domain for host-name lookup.",
+ "optional" : 1,
+ "type" : "string"
}
- }
- },
- "description" : "Read DNS settings.",
- "proxyto" : "node"
+ },
+ "type" : "object"
+ }
},
"PUT" : {
+ "description" : "Write DNS settings.",
+ "method" : "PUT",
"name" : "update_dns",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "search" : {
- "description" : "Search domain for host-name lookup.",
- "type" : "string"
- },
- "dns3" : {
- "description" : "Third name server IP address.",
- "type" : "string",
+ "dns1" : {
+ "description" : "First name server IP address.",
+ "format" : "ip",
"optional" : 1,
- "format" : "ip"
+ "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,
- "description" : "Second name server IP address.",
- "format" : "ip"
+ "type" : "string",
+ "typetext" : "<string>"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "dns1" : {
- "description" : "First name server IP address.",
- "optional" : 1,
+ "search" : {
+ "description" : "Search domain for host-name lookup.",
"type" : "string",
- "format" : "ip"
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
- "method" : "PUT",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Write DNS settings.",
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
"type" : "null"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/dns",
+ "text" : "dns"
},
{
"info" : {
"GET" : {
- "method" : "GET",
- "returns" : {
- "properties" : {
- "localtime" : {
- "minimum" : 1297163644,
- "type" : "integer",
- "description" : "Seconds since 1970-01-01 00:00:00 (local time)"
- },
- "time" : {
- "minimum" : 1297163644,
- "type" : "integer",
- "description" : "Seconds since 1970-01-01 00:00:00 UTC."
- },
- "timezone" : {
- "type" : "string",
- "description" : "Time zone"
- }
- },
- "type" : "object",
- "additionalProperties" : 0
- },
- "proxyto" : "node",
"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",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "time",
"permissions" : {
"check" : [
"perm",
"Sys.Audit"
]
]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "localtime" : {
+ "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
+ "minimum" : 1297163644,
+ "type" : "integer"
+ },
+ "time" : {
+ "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
+ "minimum" : 1297163644,
+ "type" : "integer"
+ },
+ "timezone" : {
+ "description" : "Time zone",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
}
},
"PUT" : {
- "returns" : {
- "type" : "null"
- },
"description" : "Set time zone.",
- "proxyto" : "node",
+ "method" : "PUT",
+ "name" : "set_timezone",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timezone" : {
+ "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "method" : "PUT",
"protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/time",
+ "text" : "time"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get list of appliances.",
+ "method" : "GET",
+ "name" : "aplinfo",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "timezone" : {
- "type" : "string",
- "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names."
- },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "set_timezone"
- }
- },
- "text" : "time",
- "leaf" : 1,
- "path" : "/nodes/{node}/time"
- },
- {
- "info" : {
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
"POST" : {
- "protected" : 1,
+ "description" : "Download appliance templates.",
+ "method" : "POST",
"name" : "apl_download",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "storage" : {
- "description" : "Only list status for specified storage",
- "type" : "string",
- "format" : "pve-storage-id"
- },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "template" : {
+ "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
+ "maxLength" : 255,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "method" : "POST",
- "proxyto" : "node",
- "description" : "Download appliance templates.",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
}
- },
- "GET" : {
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
- },
- "method" : "GET",
- "description" : "Get list of appliances.",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "description" : "The cluster node name.",
- "type" : "string"
- }
- }
- },
- "name" : "aplinfo",
- "permissions" : {
- "user" : "all"
- }
}
},
- "text" : "aplinfo",
"leaf" : 1,
- "path" : "/nodes/{node}/aplinfo"
+ "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" : {
- "format" : "pve-node",
"description" : "The cluster node name.",
- "type" : "string"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "report",
- "protected" : 1,
- "method" : "GET",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Gather various systems information about a node",
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
"type" : "string"
}
}
},
- "text" : "report",
"leaf" : 1,
- "path" : "/nodes/{node}/report"
+ "path" : "/nodes/{node}/report",
+ "text" : "report"
},
{
- "text" : "startall",
"info" : {
"POST" : {
+ "description" : "Start all VMs and containers (when onboot=1).",
"method" : "POST",
- "protected" : 1,
+ "name" : "startall",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"force" : {
+ "description" : "force if onboot=0.",
"optional" : 1,
"type" : "boolean",
- "description" : "force if onboot=0."
+ "typetext" : "<boolean>"
},
"node" : {
- "type" : "string",
"description" : "The cluster node name.",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "name" : "startall",
- "returns" : {
- "type" : "string"
+ }
},
- "proxyto" : "node",
- "description" : "Start all VMs and containers (when onboot=1).",
"permissions" : {
"check" : [
"perm",
"VM.PowerMgmt"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/startall",
- "leaf" : 1
+ "text" : "startall"
},
{
- "text" : "stopall",
"info" : {
"POST" : {
"description" : "Stop all VMs and Containers.",
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "returns" : {
- "type" : "string"
- },
- "protected" : 1,
+ "method" : "POST",
+ "name" : "stopall",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "name" : "stopall",
- "method" : "POST"
- }
- },
- "path" : "/nodes/{node}/stopall",
- "leaf" : 1
- },
- {
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
+ }
},
"permissions" : {
"check" : [
"perm",
"/",
[
- "VM.Migrate"
+ "VM.PowerMgmt"
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Migrate all VMs and Containers.",
- "method" : "POST",
- "parameters" : {
- "properties" : {
- "maxworkers" : {
- "optional" : 1,
- "type" : "integer",
- "description" : "Maximal number of parallel migration job. If not set use 'max_workers' from datacenter.cfg, one of both must be set!",
- "minimum" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "target" : {
- "description" : "Target node.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "migrateall",
- "protected" : 1
- }
- },
- "text" : "migrateall",
- "leaf" : 1,
- "path" : "/nodes/{node}/migrateall"
- }
- ],
- "text" : "{node}",
- "leaf" : 0,
- "path" : "/nodes/{node}"
- }
- ],
- "info" : {
- "GET" : {
- "permissions" : {
- "user" : "all"
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "index",
- "description" : "Cluster node index.",
- "method" : "GET",
- "returns" : {
- "links" : [
- {
- "href" : "{node}",
- "rel" : "child"
- }
- ],
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "type" : "array"
- }
- }
- }
- },
- {
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "method" : "POST",
- "description" : "Create a new storage.",
- "protected" : 1,
- "name" : "create",
- "parameters" : {
- "additionalProperties" : 0,
- "type" : "object",
- "properties" : {
- "volume" : {
- "description" : "Glusterfs Volume.",
- "type" : "string",
- "optional" : 1
- },
- "sparse" : {
- "description" : "use sparse volumes",
- "type" : "boolean",
- "optional" : 1
- },
- "type" : {
- "description" : "Storage type.",
- "enum" : [
- "zfspool",
- "lvm",
- "iscsi",
- "rbd",
- "dir",
- "iscsidirect",
- "nfs",
- "glusterfs",
- "zfs",
- "lvmthin",
- "sheepdog",
- "drbd"
- ],
- "type" : "string"
- },
- "iscsiprovider" : {
- "description" : "iscsi provider",
- "type" : "string",
- "optional" : 1
- },
- "saferemove" : {
- "optional" : 1,
- "type" : "boolean",
- "description" : "Zero-out data when removing LVs."
- },
- "storage" : {
- "type" : "string",
- "description" : "The storage identifier.",
- "format" : "pve-storage-id"
- },
- "redundancy" : {
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "maximum" : 16,
- "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."
- },
- "pool" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Pool."
- },
- "path" : {
- "description" : "File system path.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-storage-path"
- },
- "server" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Server IP or DNS name.",
- "format" : "pve-storage-server"
- },
- "comstar_tg" : {
- "optional" : 1,
- "type" : "string",
- "description" : "target group for comstar views"
- },
- "saferemove_throughput" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Wipe throughput (cstream -t parameter value)."
- },
- "maxfiles" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
- "minimum" : 0
- },
- "options" : {
- "type" : "string",
- "optional" : 1,
- "description" : "NFS mount options (see 'man nfs')",
- "format" : "pve-storage-options"
- },
- "comstar_hg" : {
- "optional" : 1,
- "type" : "string",
- "description" : "host group for comstar views"
- },
- "username" : {
- "description" : "RBD Id.",
- "type" : "string",
- "optional" : 1
- },
- "authsupported" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Authsupported."
- },
- "server2" : {
- "description" : "Backup volfile server IP or DNS name.",
- "requires" : "server",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-storage-server"
- },
- "content" : {
- "format" : "pve-storage-content-list",
- "optional" : 1,
- "type" : "string",
- "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n"
- },
- "base" : {
- "description" : "Base volume. This volume is automatically activated.",
- "type" : "string",
- "optional" : 1,
- "format" : "pve-volume-id"
- },
- "monhost" : {
- "description" : "Monitors daemon ips.",
- "optional" : 1,
- "type" : "string"
- },
- "format" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Default image format.",
- "format" : "pve-storage-format"
- },
- "nowritecache" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "disable write caching on the target"
- },
- "target" : {
- "description" : "iSCSI target.",
- "type" : "string",
- "optional" : 1
+ "returns" : {
+ "type" : "string"
+ }
+ }
},
- "thinpool" : {
- "type" : "string",
- "optional" : 1,
- "description" : "LVM thin pool LV name.",
- "format" : "pve-storage-vgname"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/stopall",
+ "text" : "stopall"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "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",
+ "typetext" : "<string>"
+ },
+ "target" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "VM.Migrate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
},
- "krbd" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Access rbd through krbd kernel module."
+ "leaf" : 1,
+ "path" : "/nodes/{node}/migrateall",
+ "text" : "migrateall"
+ }
+ ],
+ "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>"
+ }
+ }
},
- "shared" : {
- "description" : "Mark storage as shared.",
- "optional" : 1,
- "type" : "boolean"
+ "permissions" : {
+ "user" : "all"
},
- "transport" : {
- "enum" : [
- "tcp",
- "rdma",
- "unix"
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
],
- "description" : "Gluster transport: tcp or rdma",
- "optional" : 1,
- "type" : "string"
- },
- "vgname" : {
- "description" : "Volume group name.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-storage-vgname"
- },
- "blocksize" : {
- "optional" : 1,
- "type" : "string",
- "description" : "block size"
- },
- "export" : {
- "optional" : 1,
- "type" : "string",
- "description" : "NFS export path.",
- "format" : "pve-storage-path"
- },
- "portal" : {
- "type" : "string",
- "optional" : 1,
- "description" : "iSCSI portal (IP or DNS name with optional port).",
- "format" : "pve-storage-portal-dns"
- },
- "nodes" : {
- "format" : "pve-node-list",
- "description" : "List of cluster node names.",
- "type" : "string",
- "optional" : 1
- },
- "disable" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Flag to disable the storage."
+ "type" : "array"
}
}
},
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- }
- },
+ "leaf" : 0,
+ "path" : "/nodes/{node}",
+ "text" : "{node}"
+ }
+ ],
+ "info" : {
"GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "storage" : {
- "type" : "string"
- }
- }
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{storage}"
- }
- ]
- },
+ "description" : "Cluster node index.",
"method" : "GET",
+ "name" : "index",
"parameters" : {
- "properties" : {
- "type" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Only list storage of specific type",
- "enum" : [
- "zfspool",
- "lvm",
- "iscsi",
- "rbd",
- "dir",
- "iscsidirect",
- "nfs",
- "glusterfs",
- "zfs",
- "lvmthin",
- "sheepdog",
- "drbd"
- ]
- }
- },
"additionalProperties" : 0
},
"permissions" : {
- "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
"user" : "all"
},
- "name" : "index",
- "description" : "Storage index."
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{node}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
},
- "text" : "storage",
+ "leaf" : 0,
+ "path" : "/nodes",
+ "text" : "nodes"
+ },
+ {
"children" : [
{
- "leaf" : 1,
- "path" : "/storage/{storage}",
"info" : {
- "GET" : {
- "name" : "read",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Allocate"
- ]
- ]
- },
+ "DELETE" : {
+ "description" : "Delete storage configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"storage" : {
- "format" : "pve-storage-id",
"description" : "The storage identifier.",
- "type" : "string"
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "description" : "Read storage configuration.",
- "returns" : {},
- "method" : "GET"
- },
- "DELETE" : {
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE",
"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",
- "description" : "The storage identifier."
+ "typetext" : "<string>"
}
}
},
- "name" : "delete",
- "protected" : 1,
- "description" : "Delete storage configuration."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "returns" : {}
},
"PUT" : {
+ "description" : "Update storage configuration.",
"method" : "PUT",
- "returns" : {
- "type" : "null"
- },
+ "name" : "update",
"parameters" : {
"additionalProperties" : 0,
- "type" : "object",
"properties" : {
- "delete" : {
- "maxLength" : 4096,
- "format" : "pve-configid-list",
+ "blocksize" : {
+ "description" : "block size",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comstar_hg" : {
+ "description" : "host group for comstar views",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comstar_tg" : {
+ "description" : "target group for comstar views",
"optional" : 1,
"type" : "string",
- "description" : "A list of settings you want to delete."
+ "typetext" : "<string>"
},
- "transport" : {
+ "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",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
"optional" : 1,
- "enum" : [
- "tcp",
- "rdma",
- "unix"
- ],
- "description" : "Gluster transport: tcp or rdma"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "shared" : {
- "description" : "Mark storage as shared.",
- "type" : "boolean",
- "optional" : 1
+ "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>"
},
- "krbd" : {
+ "disable" : {
+ "description" : "Flag to disable the storage.",
"optional" : 1,
"type" : "boolean",
- "description" : "Access rbd through krbd kernel module."
+ "typetext" : "<boolean>"
},
- "pool" : {
- "description" : "Pool.",
+ "format" : {
+ "description" : "Default image format.",
+ "format" : "pve-storage-format",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "redundancy" : {
- "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" : "integer",
+ "is_mountpoint" : {
+ "default" : "no",
+ "description" : "Assume the directory is an externally managed mountpoint. If nothing is mounted the storage will be considered offline.",
"optional" : 1,
- "maximum" : 16,
- "default" : 2,
- "minimum" : 1
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "server" : {
- "description" : "Server IP or DNS name.",
- "type" : "string",
+ "krbd" : {
+ "description" : "Access rbd through krbd kernel module.",
"optional" : 1,
- "format" : "pve-storage-server"
- },
- "saferemove" : {
"type" : "boolean",
- "optional" : 1,
- "description" : "Zero-out data when removing LVs."
+ "typetext" : "<boolean>"
},
- "digest" : {
- "maxLength" : 40,
- "type" : "string",
+ "maxfiles" : {
+ "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "storage" : {
- "format" : "pve-storage-id",
- "description" : "The storage identifier.",
- "type" : "string"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "sparse" : {
- "description" : "use sparse volumes",
+ "mkdir" : {
+ "default" : "yes",
+ "description" : "Create the directory if it doesn't exist.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
+ },
+ "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",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "format" : {
- "description" : "Default image format.",
+ "options" : {
+ "description" : "NFS mount options (see 'man nfs')",
+ "format" : "pve-storage-options",
"optional" : 1,
"type" : "string",
- "format" : "pve-storage-format"
+ "typetext" : "<string>"
},
- "content" : {
- "format" : "pve-storage-content-list",
- "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
+ "pool" : {
+ "description" : "Pool.",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "server2" : {
- "format" : "pve-storage-server",
- "type" : "string",
+ "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,
- "description" : "Backup volfile server IP or DNS name.",
- "requires" : "server"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 16)"
},
- "disable" : {
- "description" : "Flag to disable the storage.",
+ "saferemove" : {
+ "description" : "Zero-out data when removing LVs.",
+ "optional" : 1,
"type" : "boolean",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "nodes" : {
- "format" : "pve-node-list",
+ "saferemove_throughput" : {
+ "description" : "Wipe throughput (cstream -t parameter value).",
"optional" : 1,
"type" : "string",
- "description" : "List of cluster node names."
+ "typetext" : "<string>"
},
- "comstar_hg" : {
- "type" : "string",
+ "server" : {
+ "description" : "Server IP or DNS name.",
+ "format" : "pve-storage-server",
"optional" : 1,
- "description" : "host group for comstar views"
- },
- "options" : {
- "format" : "pve-storage-options",
- "description" : "NFS mount options (see 'man nfs')",
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "saferemove_throughput" : {
+ "server2" : {
+ "description" : "Backup volfile server IP or DNS name.",
+ "format" : "pve-storage-server",
"optional" : 1,
+ "requires" : "server",
"type" : "string",
- "description" : "Wipe throughput (cstream -t parameter value)."
+ "typetext" : "<string>"
},
- "maxfiles" : {
- "minimum" : 0,
- "type" : "integer",
+ "shared" : {
+ "description" : "Mark storage as shared.",
"optional" : 1,
- "description" : "Maximal number of backup files per VM. Use '0' for unlimted."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "blocksize" : {
+ "sparse" : {
+ "description" : "use sparse volumes",
"optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"type" : "string",
- "description" : "block size"
+ "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,
"type" : "string",
- "optional" : 1
- },
- "comstar_tg" : {
- "description" : "target group for comstar views",
- "type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
}
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "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" : {
+ "description" : "Only list storage of specific type",
+ "enum" : [
+ "dir",
+ "drbd",
+ "glusterfs",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "rbd",
+ "sheepdog",
+ "zfs",
+ "zfspool"
+ ],
+ "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"
}
},
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{storage}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create a new storage.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "authsupported" : {
+ "description" : "Authsupported.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "base" : {
+ "description" : "Base volume. This volume is automatically activated.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "blocksize" : {
+ "description" : "block size",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comstar_hg" : {
+ "description" : "host group for comstar views",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comstar_tg" : {
+ "description" : "target group for comstar views",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable the storage.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "export" : {
+ "description" : "NFS export path.",
+ "format" : "pve-storage-path",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "format" : {
+ "description" : "Default image format.",
+ "format" : "pve-storage-format",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "is_mountpoint" : {
+ "default" : "no",
+ "description" : "Assume the directory is an externally managed mountpoint. If nothing is mounted the storage will be considered offline.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "iscsiprovider" : {
+ "description" : "iscsi provider",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "krbd" : {
+ "description" : "Access rbd through krbd kernel module.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "name" : "update",
- "description" : "Update storage configuration.",
- "protected" : 1
- }
- },
- "text" : "{storage}"
- }
- ],
- "leaf" : 0,
- "path" : "/storage"
- },
- {
- "leaf" : 0,
- "path" : "/access",
- "info" : {
- "GET" : {
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
- ],
- "items" : {
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
+ "maxfiles" : {
+ "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "type" : "object"
- }
- },
- "name" : "index",
- "permissions" : {
- "user" : "all"
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "description" : "Directory index."
- }
- },
- "text" : "access",
- "children" : [
- {
- "info" : {
- "POST" : {
- "method" : "POST",
- "returns" : {
- "type" : "null"
+ "mkdir" : {
+ "default" : "yes",
+ "description" : "Create the directory if it doesn't exist.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protected" : 1,
- "description" : "Create new user.",
- "name" : "create_user",
- "permissions" : {
- "check" : [
- "and",
- [
- "userid-param",
- "Realm.AllocateUser"
- ],
- [
- "userid-group",
- [
- "User.Modify"
- ],
- "groups_param",
- 1
- ]
+ "monhost" : {
+ "description" : "Monitors daemon ips.",
+ "format" : "pve-storage-portal-dns-list",
+ "optional" : 1,
+ "type" : "string",
+ "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",
+ "typetext" : "<boolean>"
+ },
+ "options" : {
+ "description" : "NFS mount options (see 'man nfs')",
+ "format" : "pve-storage-options",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "path" : {
+ "description" : "File system path.",
+ "format" : "pve-storage-path",
+ "optional" : 1,
+ "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,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 16)"
+ },
+ "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",
+ "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.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "sparse" : {
+ "description" : "use sparse volumes",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tagged_only" : {
+ "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "target" : {
+ "description" : "iSCSI target.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "thinpool" : {
+ "description" : "LVM thin pool LV name.",
+ "format" : "pve-storage-vgname",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "transport" : {
+ "description" : "Gluster transport: tcp or rdma",
+ "enum" : [
+ "tcp",
+ "rdma",
+ "unix"
],
- "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."
+ "optional" : 1,
+ "type" : "string"
},
- "parameters" : {
- "properties" : {
- "enable" : {
- "type" : "boolean",
- "optional" : 1,
- "default" : 1,
- "description" : "Enable the account (default). You can set this to '0' to disable the accout"
- },
- "lastname" : {
- "type" : "string",
- "optional" : 1
- },
- "keys" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Keys for two factor auth (yubico)."
- },
- "firstname" : {
- "optional" : 1,
- "type" : "string"
- },
- "groups" : {
- "optional" : 1,
- "type" : "string",
- "format" : "pve-groupid-list"
- },
- "password" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Initial password.",
- "minLength" : 5,
- "maxLength" : 64
- },
- "email" : {
- "format" : "email-opt",
- "optional" : 1,
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "userid" : {
- "type" : "string",
- "description" : "User ID",
- "format" : "pve-userid",
- "maxLength" : 64
- },
- "expire" : {
- "minimum" : 0,
- "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
- "type" : "integer",
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- }
- },
- "GET" : {
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "userid" : {
- "type" : "string"
- }
- }
- },
- "links" : [
- {
- "href" : "{userid}",
- "rel" : "child"
- }
+ "type" : {
+ "description" : "Storage type.",
+ "enum" : [
+ "dir",
+ "drbd",
+ "glusterfs",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "rbd",
+ "sheepdog",
+ "zfs",
+ "zfspool"
],
- "type" : "array"
+ "type" : "string"
},
- "method" : "GET",
- "name" : "index",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "enabled" : {
- "description" : "Optional filter for enable property.",
- "type" : "boolean",
- "optional" : 1
- }
- }
+ "username" : {
+ "description" : "RBD Id.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "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"
+ "vgname" : {
+ "description" : "Volume group name.",
+ "format" : "pve-storage-vgname",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "description" : "User index."
- }
+ "volume" : {
+ "description" : "Glusterfs Volume.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
},
- "text" : "users",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/storage",
+ "text" : "storage"
+ },
+ {
+ "children" : [
+ {
"children" : [
{
- "leaf" : 1,
- "path" : "/access/users/{userid}",
"info" : {
- "PUT" : {
- "protected" : 1,
- "description" : "Update user configuration.",
- "name" : "update_user",
+ "DELETE" : {
+ "description" : "Delete user.",
+ "method" : "DELETE",
+ "name" : "delete_user",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "expire" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Account expiration date (seconds since epoch). '0' means no expiration date."
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "email" : {
- "format" : "email-opt",
- "optional" : 1,
- "type" : "string"
- },
"userid" : {
"description" : "User ID",
- "type" : "string",
"format" : "pve-userid",
- "maxLength" : 64
- },
- "keys" : {
- "description" : "Keys for two factor auth (yubico).",
- "optional" : 1,
- "type" : "string"
- },
- "groups" : {
- "format" : "pve-groupid-list",
+ "maxLength" : 64,
"type" : "string",
- "optional" : 1
- },
- "firstname" : {
- "optional" : 1,
- "type" : "string"
- },
- "enable" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable the account."
- },
- "append" : {
- "optional" : 1,
- "type" : "boolean",
- "requires" : "groups"
- },
- "lastname" : {
- "optional" : 1,
- "type" : "string"
+ "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
- "userid-group",
+ "and",
[
- "User.Modify"
+ "userid-param",
+ "Realm.AllocateUser"
],
- "groups_param",
- 1
+ [
+ "userid-group",
+ [
+ "User.Modify"
+ ]
+ ]
]
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "method" : "PUT"
+ }
},
- "DELETE" : {
- "protected" : 1,
- "description" : "Delete user.",
+ "GET" : {
+ "description" : "Get user configuration.",
+ "method" : "GET",
+ "name" : "read_user",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"userid" : {
- "maxLength" : 64,
+ "description" : "User ID",
"format" : "pve-userid",
+ "maxLength" : 64,
"type" : "string",
- "description" : "User ID"
+ "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
- "and",
- [
- "userid-param",
- "Realm.AllocateUser"
- ],
+ "userid-group",
[
- "userid-group",
- [
- "User.Modify"
- ]
+ "User.Modify",
+ "Sys.Audit"
]
]
},
- "name" : "delete_user",
- "method" : "DELETE",
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "method" : "GET",
"returns" : {
"additionalProperties" : 0,
"properties" : {
- "keys" : {
- "type" : "string",
- "optional" : 1
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "email" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "enable" : {
+ "type" : "boolean"
+ },
+ "expire" : {
+ "optional" : 1,
+ "type" : "integer"
},
"firstname" : {
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
"groups" : {
"type" : "array"
},
- "enable" : {
- "type" : "boolean"
+ "keys" : {
+ "optional" : 1,
+ "type" : "string"
},
"lastname" : {
"optional" : 1,
"type" : "string"
+ }
+ }
+ }
+ },
+ "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" : {
+ "description" : "Enable/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",
- "optional" : 1
+ "typetext" : "<integer> (0 - N)"
},
- "email" : {
+ "firstname" : {
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "comment" : {
+ "groups" : {
+ "format" : "pve-groupid-list",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
- }
- }
- },
- "parameters" : {
- "properties" : {
+ "typetext" : "<string>"
+ },
+ "keys" : {
+ "description" : "Keys for two factor auth (yubico).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "lastname" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"userid" : {
"description" : "User ID",
- "type" : "string",
"format" : "pve-userid",
- "maxLength" : 64
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "read_user",
"permissions" : {
"check" : [
"userid-group",
[
- "User.Modify",
- "Sys.Audit"
- ]
+ "User.Modify"
+ ],
+ "groups_param",
+ 1
]
},
- "description" : "Get user configuration."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/access/users/{userid}",
"text" : "{userid}"
}
],
- "leaf" : 0,
- "path" : "/access/users"
- },
- {
"info" : {
"GET" : {
+ "description" : "User index.",
+ "method" : "GET",
"name" : "index",
- "permissions" : {
- "user" : "all",
- "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>."
- },
"parameters" : {
- "additionalProperties" : 0
+ "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"
},
- "description" : "Group index.",
- "method" : "GET",
"returns" : {
- "links" : [
- {
- "href" : "{groupid}",
- "rel" : "child"
- }
- ],
"items" : {
"properties" : {
- "groupid" : {
+ "userid" : {
"type" : "string"
}
},
"type" : "object"
},
+ "links" : [
+ {
+ "href" : "{userid}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
}
},
"POST" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "Create new user.",
"method" : "POST",
- "name" : "create_group",
- "permissions" : {
- "check" : [
- "perm",
- "/access/groups",
- [
- "Group.Allocate"
- ]
- ]
- },
+ "name" : "create_user",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "groupid" : {
- "format" : "pve-groupid",
- "type" : "string"
- },
"comment" : {
"optional" : 1,
- "type" : "string"
+ "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 accout",
+ "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>"
+ },
+ "password" : {
+ "description" : "Initial password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "description" : "Create new group.",
- "protected" : 1
+ "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,
+ "returns" : {
+ "type" : "null"
+ }
}
},
+ "leaf" : 0,
+ "path" : "/access/users",
+ "text" : "users"
+ },
+ {
"children" : [
{
"info" : {
"DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/access/groups",
- [
- "Group.Allocate"
- ]
- ]
- },
+ "description" : "Delete group.",
+ "method" : "DELETE",
"name" : "delete_group",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"groupid" : {
+ "format" : "pve-groupid",
"type" : "string",
- "format" : "pve-groupid"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "description" : "Delete group.",
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE"
- },
- "PUT" : {
- "method" : "PUT",
- "returns" : {
- "type" : "null"
+ }
},
- "description" : "Update group data.",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "name" : "update_group",
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Get group configuration.",
+ "method" : "GET",
+ "name" : "read_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"groupid" : {
+ "format" : "pve-groupid",
"type" : "string",
- "format" : "pve-groupid"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
}
}
- }
- },
- "GET" : {
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access/groups",
+ [
+ "Sys.Audit",
+ "Group.Allocate"
+ ],
+ "any",
+ 1
+ ]
+ },
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
"comment" : {
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
"members" : {
"items" : {
"type" : "array"
}
},
- "type" : "object",
- "additionalProperties" : 0
- },
- "method" : "GET",
- "name" : "read_group",
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update group data.",
+ "method" : "PUT",
+ "name" : "update_group",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"groupid" : {
"format" : "pve-groupid",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
"perm",
"/access/groups",
[
- "Sys.Audit",
"Group.Allocate"
- ],
- "any",
- 1
+ ]
]
},
- "description" : "Get group configuration."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/groups/{groupid}",
+ "text" : "{groupid}"
+ }
+ ],
+ "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" : {
+ "groupid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{groupid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new group.",
+ "method" : "POST",
+ "name" : "create_group",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "groupid" : {
+ "format" : "pve-groupid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "text" : "{groupid}",
- "leaf" : 1,
- "path" : "/access/groups/{groupid}"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access/groups",
+ [
+ "Group.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
- ],
- "text" : "groups",
+ },
"leaf" : 0,
- "path" : "/access/groups"
+ "path" : "/access/groups",
+ "text" : "groups"
},
{
"children" : [
{
- "text" : "{roleid}",
"info" : {
- "GET" : {
- "returns" : {},
- "method" : "GET",
- "name" : "read_role",
- "parameters" : {
- "properties" : {
- "roleid" : {
- "format" : "pve-roleid",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "user" : "all"
- },
- "description" : "Get role configuration."
- },
"DELETE" : {
- "method" : "DELETE",
- "returns" : {
- "type" : "null"
- },
"description" : "Delete role.",
- "protected" : 1,
+ "method" : "DELETE",
"name" : "delete_role",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"roleid" : {
"format" : "pve-roleid",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
"Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
},
- "PUT" : {
+ "GET" : {
+ "description" : "Get role configuration.",
+ "method" : "GET",
+ "name" : "read_role",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
- "check" : [
- "perm",
- "/access",
- [
- "Sys.Modify"
- ]
- ]
+ "user" : "all"
},
+ "returns" : {}
+ },
+ "PUT" : {
+ "description" : "Create new role.",
+ "method" : "PUT",
+ "name" : "update_role",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"append" : {
+ "optional" : 1,
"requires" : "privs",
"type" : "boolean",
- "optional" : 1
- },
- "roleid" : {
- "format" : "pve-roleid",
- "type" : "string"
+ "typetext" : "<boolean>"
},
"privs" : {
"format" : "pve-priv-list",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "name" : "update_role",
- "description" : "Create new role.",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
"protected" : 1,
- "method" : "PUT",
"returns" : {
"type" : "null"
}
}
},
+ "leaf" : 1,
"path" : "/access/roles/{roleid}",
- "leaf" : 1
+ "text" : "{roleid}"
}
],
- "text" : "roles",
"info" : {
"GET" : {
"description" : "Role index.",
+ "method" : "GET",
"name" : "index",
"parameters" : {
"additionalProperties" : 0
"user" : "all"
},
"returns" : {
- "type" : "array",
- "links" : [
- {
- "href" : "{roleid}",
- "rel" : "child"
- }
- ],
"items" : {
- "type" : "object",
"properties" : {
"roleid" : {
"type" : "string"
}
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{roleid}",
+ "rel" : "child"
}
- }
- },
- "method" : "GET"
+ ],
+ "type" : "array"
+ }
},
"POST" : {
"description" : "Create new role.",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/access",
- [
- "Sys.Modify"
- ]
- ]
- },
+ "method" : "POST",
+ "name" : "create_role",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "roleid" : {
- "type" : "string",
- "format" : "pve-roleid"
- },
"privs" : {
"format" : "pve-priv-list",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "name" : "create_role",
- "method" : "POST",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
"returns" : {
"type" : "null"
}
}
},
+ "leaf" : 0,
"path" : "/access/roles",
- "leaf" : 0
+ "text" : "roles"
},
{
"info" : {
"GET" : {
- "permissions" : {
- "user" : "all",
- "description" : "The returned list is restricted to objects where you have rights to modify permissions."
- },
+ "description" : "Get Access Control List (ACLs).",
+ "method" : "GET",
+ "name" : "read_acl",
"parameters" : {
"additionalProperties" : 0
},
- "name" : "read_acl",
- "description" : "Get Access Control List (ACLs).",
+ "permissions" : {
+ "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
+ "user" : "all"
+ },
"returns" : {
"items" : {
+ "additionalProperties" : 0,
"properties" : {
"path" : {
"type" : "string"
},
+ "propagate" : {
+ "type" : "boolean"
+ },
+ "roleid" : {
+ "type" : "string"
+ },
"type" : {
"enum" : [
"user",
],
"type" : "string"
},
- "propagate" : {
- "type" : "boolean"
- },
- "roleid" : {
- "type" : "string"
- },
"ugid" : {
"type" : "string"
}
},
- "type" : "object",
- "additionalProperties" : 0
+ "type" : "object"
},
"type" : "array"
- },
- "method" : "GET"
+ }
},
"PUT" : {
+ "description" : "Update Access Control List (add or remove permissions).",
+ "method" : "PUT",
"name" : "update_acl",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"delete" : {
- "type" : "boolean",
+ "description" : "Remove permissions (instead of adding it).",
"optional" : 1,
- "description" : "Remove permissions (instead of adding it)."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "users" : {
- "format" : "pve-userid-list",
- "type" : "string",
+ "groups" : {
+ "description" : "List of groups.",
+ "format" : "pve-groupid-list",
"optional" : 1,
- "description" : "List of users."
+ "type" : "string",
+ "typetext" : "<string>"
},
"path" : {
"description" : "Access control path",
- "type" : "string"
- },
- "roles" : {
- "description" : "List of roles.",
"type" : "string",
- "format" : "pve-roleid-list"
+ "typetext" : "<string>"
},
"propagate" : {
+ "default" : 1,
"description" : "Allow to propagate (inherit) permissions.",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "roles" : {
+ "description" : "List of roles.",
+ "format" : "pve-roleid-list",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "users" : {
+ "description" : "List of users.",
+ "format" : "pve-userid-list",
"optional" : 1,
- "default" : 1
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm-modify",
+ "{path}"
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/acl",
+ "text" : "acl"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "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",
+ "/access/realm",
+ [
+ "Realm.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Get auth server configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "groups" : {
- "description" : "List of groups.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-groupid-list"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm-modify",
- "{path}"
- ]
- },
- "description" : "Update Access Control List (add or remove permissions).",
- "protected" : 1,
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT"
- }
- },
- "text" : "acl",
- "leaf" : 1,
- "path" : "/access/acl"
- },
- {
- "text" : "domains",
- "children" : [
- {
- "path" : "/access/domains/{realm}",
- "leaf" : 1,
- "text" : "{realm}",
- "info" : {
+ "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" : {
- "maxLength" : 256,
- "type" : "string",
- "optional" : 1,
"description" : "LDAP base domain name",
- "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*"
- },
- "realm" : {
- "description" : "Authentication domain ID",
- "type" : "string",
- "format" : "pve-realm",
- "maxLength" : 32
- },
- "user_attr" : {
"maxLength" : 256,
- "pattern" : "\\S{2,}",
- "description" : "LDAP user attribute name",
"optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
"type" : "string"
},
- "secure" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Use secure LDAPS protocol."
- },
- "server1" : {
- "format" : "address",
- "maxLength" : 256,
- "optional" : 1,
- "type" : "string",
- "description" : "Server IP address (or DNS name)"
- },
- "domain" : {
+ "bind_dn" : {
+ "description" : "LDAP bind domain name",
"maxLength" : 256,
- "description" : "AD domain name",
- "pattern" : "\\S+",
"optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
"type" : "string"
},
- "server2" : {
- "maxLength" : 256,
- "format" : "address",
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "default" : {
+ "description" : "Use this as default realm",
"optional" : 1,
- "description" : "Fallback Server IP address (or DNS name)"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"delete" : {
- "type" : "string",
- "optional" : 1,
"description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"maxLength" : 4096,
- "format" : "pve-configid-list"
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "comment" : {
- "maxLength" : 4096,
+ "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" : "Description."
+ "typetext" : "<string>"
},
- "default" : {
- "description" : "Use this as default realm",
- "type" : "boolean",
- "optional" : 1
+ "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,
- "minimum" : 1
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "digest" : {
+ "server1" : {
+ "description" : "Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
"optional" : 1,
"type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
+ "typetext" : "<string>"
},
- "tfa" : {
+ "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,
- "format" : "pve-tfa-config"
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "user_attr" : {
+ "description" : "LDAP user attribute name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\S{2,}",
+ "type" : "string"
}
},
- "type" : "object",
- "additionalProperties" : 0
+ "type" : "object"
},
- "name" : "update",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
- "description" : "Update authentication server settings.",
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT"
- },
- "DELETE" : {
- "method" : "DELETE",
"returns" : {
"type" : "null"
- },
- "protected" : 1,
- "description" : "Delete an authentication server.",
- "parameters" : {
- "properties" : {
- "realm" : {
- "format" : "pve-realm",
- "maxLength" : 32,
- "type" : "string",
- "description" : "Authentication domain ID"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "delete",
- "permissions" : {
- "check" : [
- "perm",
- "/access/realm",
- [
- "Realm.Allocate"
- ]
- ]
}
- },
- "GET" : {
- "parameters" : {
- "properties" : {
- "realm" : {
- "type" : "string",
- "description" : "Authentication domain ID",
- "format" : "pve-realm",
- "maxLength" : 32
- }
- },
- "additionalProperties" : 0
- },
- "name" : "read",
- "permissions" : {
- "check" : [
- "perm",
- "/access/realm",
- [
- "Realm.Allocate",
- "Sys.Audit"
- ],
- "any",
- 1
- ]
- },
- "description" : "Get auth server configuration.",
- "method" : "GET",
- "returns" : {}
}
- }
+ },
+ "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" : {
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{realm}"
- }
- ],
"items" : {
"properties" : {
"comment" : {
"yubico",
"oath"
],
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
}
},
"type" : "object"
- }
- },
- "method" : "GET",
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "index",
- "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."
+ },
+ "links" : [
+ {
+ "href" : "{realm}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
},
"POST" : {
- "method" : "POST",
- "returns" : {
- "type" : "null"
- },
"description" : "Add an authentication server.",
- "protected" : 1,
+ "method" : "POST",
"name" : "create",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "server1" : {
- "optional" : 1,
- "type" : "string",
- "description" : "Server IP address (or DNS name)",
+ "base_dn" : {
+ "description" : "LDAP base domain name",
"maxLength" : 256,
- "format" : "address"
- },
- "secure" : {
- "description" : "Use secure LDAPS protocol.",
- "type" : "boolean",
- "optional" : 1
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
},
- "type" : {
- "description" : "Realm type.",
- "enum" : [
- "ldap",
- "pam",
- "pve",
- "ad"
- ],
+ "bind_dn" : {
+ "description" : "LDAP bind domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
"type" : "string"
},
- "user_attr" : {
- "pattern" : "\\S{2,}",
- "description" : "LDAP user attribute name",
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
"optional" : 1,
"type" : "string",
- "maxLength" : 256
- },
- "realm" : {
- "format" : "pve-realm",
- "maxLength" : 32,
- "type" : "string",
- "description" : "Authentication domain ID"
+ "typetext" : "<string>"
},
- "base_dn" : {
- "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
- "description" : "LDAP base domain name",
+ "default" : {
+ "description" : "Use this as default realm",
"optional" : 1,
- "type" : "string",
- "maxLength" : 256
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "tfa" : {
- "description" : "Use Two-factor authentication.",
+ "domain" : {
+ "description" : "AD domain name",
+ "maxLength" : 256,
"optional" : 1,
- "type" : "string",
- "maxLength" : 128,
- "format" : "pve-tfa-config"
+ "pattern" : "\\S+",
+ "type" : "string"
},
"port" : {
- "minimum" : 1,
+ "description" : "Server port.",
"maximum" : 65535,
- "type" : "integer",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Server port."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
},
- "default" : {
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "secure" : {
+ "description" : "Use secure LDAPS protocol.",
"optional" : 1,
"type" : "boolean",
- "description" : "Use this as default realm"
+ "typetext" : "<boolean>"
},
- "comment" : {
- "maxLength" : 4096,
- "description" : "Description.",
+ "server1" : {
+ "description" : "Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "domain" : {
+ "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,
- "pattern" : "\\S+",
- "description" : "AD domain name"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "server2" : {
+ "type" : {
+ "description" : "Realm type.",
+ "enum" : [
+ "ad",
+ "ldap",
+ "pam",
+ "pve"
+ ],
+ "type" : "string"
+ },
+ "user_attr" : {
+ "description" : "LDAP user attribute name",
"maxLength" : 256,
- "format" : "address",
- "type" : "string",
"optional" : 1,
- "description" : "Fallback Server IP address (or DNS name)"
+ "pattern" : "\\S{2,}",
+ "type" : "string"
}
},
- "additionalProperties" : 0,
"type" : "object"
},
"permissions" : {
"Realm.Allocate"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
+ "leaf" : 0,
"path" : "/access/domains",
- "leaf" : 0
+ "text" : "domains"
},
{
"info" : {
+ "GET" : {
+ "description" : "Dummy. Useful for formaters which want to priovde 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",
- "returns" : {
- "type" : "object",
+ "name" : "create_ticket",
+ "parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "CSRFPreventionToken" : {
- "optional" : 1,
- "type" : "string"
- },
- "ticket" : {
+ "otp" : {
+ "description" : "One-time password for Two-factor authentication.",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "username" : {
- "type" : "string"
- }
- }
- },
- "parameters" : {
- "properties" : {
"password" : {
"description" : "The secret password. This can also be a valid ticket.",
- "type" : "string"
- },
- "privs" : {
- "maxLength" : 64,
- "format" : "pve-priv-list",
- "optional" : 1,
"type" : "string",
- "requires" : "path",
- "description" : "Verify ticket, and check if user have access 'privs' on 'path'"
+ "typetext" : "<string>"
},
- "otp" : {
+ "path" : {
+ "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
+ "maxLength" : 64,
"optional" : 1,
+ "requires" : "privs",
"type" : "string",
- "description" : "One-time password for Two-factor authentication."
+ "typetext" : "<string>"
},
- "path" : {
- "requires" : "privs",
+ "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",
- "maxLength" : 64
+ "typetext" : "<string>"
},
"realm" : {
"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",
- "maxLength" : 32,
- "format" : "pve-realm"
+ "typetext" : "<string>"
},
"username" : {
"description" : "User name",
+ "maxLength" : 64,
"type" : "string",
- "maxLength" : 64
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "name" : "create_ticket",
- "permissions" : {
- "user" : "world",
- "description" : "You need to pass valid credientials."
- },
- "description" : "Create or verify authentication ticket.",
- "protected" : 1
- },
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0
+ }
},
"permissions" : {
+ "description" : "You need to pass valid credientials.",
"user" : "world"
},
- "name" : "get_ticket",
- "description" : "Dummy. Useful for formaters which want to priovde a login page.",
+ "protected" : 1,
"returns" : {
- "type" : "null"
- },
- "method" : "GET"
+ "properties" : {
+ "CSRFPreventionToken" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ticket" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "username" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
}
},
- "text" : "ticket",
"leaf" : 1,
- "path" : "/access/ticket"
+ "path" : "/access/ticket",
+ "text" : "ticket"
},
{
"info" : {
"PUT" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "Change user password.",
"method" : "PUT",
+ "name" : "change_passsword",
+ "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",
[
]
]
]
- ]
- },
- "parameters" : {
- "properties" : {
- "password" : {
- "maxLength" : 64,
- "type" : "string",
- "description" : "The new password.",
- "minLength" : 5
- },
- "userid" : {
- "format" : "pve-userid",
- "maxLength" : 64,
- "description" : "User ID",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ ],
+ "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."
},
- "name" : "change_passsword",
- "description" : "Change user password.",
- "protected" : 1
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "text" : "password",
"leaf" : 1,
- "path" : "/access/password"
+ "path" : "/access/password",
+ "text" : "password"
}
- ]
- },
- {
+ ],
"info" : {
"GET" : {
- "description" : "Pool index.",
+ "description" : "Directory index.",
+ "method" : "GET",
"name" : "index",
"parameters" : {
"additionalProperties" : 0
},
"permissions" : {
- "user" : "all",
- "description" : "List all pools where you have Pool.Allocate or VM.Allocate permissions on /pool/<pool>."
- },
- "returns" : {
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{poolid}"
- }
- ],
- "items" : {
- "properties" : {
- "poolid" : {
- "type" : "string"
- }
- },
- "type" : "object"
- }
- },
- "method" : "GET"
- },
- "POST" : {
- "name" : "create_pool",
- "permissions" : {
- "check" : [
- "perm",
- "/pool/{poolid}",
- [
- "Pool.Allocate"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "poolid" : {
- "format" : "pve-poolid",
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- }
- }
+ "user" : "all"
},
- "protected" : 1,
- "description" : "Create new pool.",
- "method" : "POST",
"returns" : {
- "type" : "null"
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
},
+ "leaf" : 0,
+ "path" : "/access",
+ "text" : "access"
+ },
+ {
"children" : [
{
- "leaf" : 1,
- "path" : "/pools/{poolid}",
"info" : {
- "PUT" : {
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
+ "DELETE" : {
+ "description" : "Delete pool.",
+ "method" : "DELETE",
+ "name" : "delete_pool",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "storage" : {
- "type" : "string",
- "optional" : 1,
- "description" : "List of storage IDs.",
- "format" : "pve-storage-id-list"
- },
- "vms" : {
- "format" : "pve-vmid-list",
- "type" : "string",
- "optional" : 1,
- "description" : "List of virtual machines."
- },
- "delete" : {
- "description" : "Remove vms/storage (instead of adding it).",
- "optional" : 1,
- "type" : "boolean"
- },
"poolid" : {
"format" : "pve-poolid",
- "type" : "string"
- },
- "comment" : {
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
}
}
},
"Pool.Allocate"
]
],
- "description" : "You also need the right to modify permissions on any object you add/delete."
+ "description" : "You can only delete empty pools (no members)."
},
- "name" : "update_pool",
- "description" : "Update pool data.",
- "protected" : 1
- },
- "DELETE" : {
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "method" : "DELETE",
- "description" : "Delete pool.",
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "poolid" : {
- "format" : "pve-poolid",
- "type" : "string"
- }
- }
- },
- "name" : "delete_pool",
- "permissions" : {
- "description" : "You can only delete empty pools (no members).",
- "check" : [
- "perm",
- "/pool/{poolid}",
- [
- "Pool.Allocate"
- ]
- ]
}
},
"GET" : {
"description" : "Get pool configuration.",
+ "method" : "GET",
"name" : "read_pool",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"poolid" : {
+ "format" : "pve-poolid",
"type" : "string",
- "format" : "pve-poolid"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
]
},
- "method" : "GET",
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
"members" : {
- "type" : "array",
"items" : {
"additionalProperties" : 1,
- "type" : "object",
"properties" : {
- "vmid" : {
- "optional" : 1,
- "type" : "integer"
- },
- "storage" : {
- "type" : "string",
- "optional" : 1
- },
"id" : {
"type" : "string"
},
"node" : {
"type" : "string"
},
+ "storage" : {
+ "optional" : 1,
+ "type" : "string"
+ },
"type" : {
- "type" : "string",
"enum" : [
"qemu",
"lxc",
"openvz",
"storage"
- ]
+ ],
+ "type" : "string"
+ },
+ "vmid" : {
+ "optional" : 1,
+ "type" : "integer"
}
- }
- }
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
},
- "additionalProperties" : 0,
"type" : "object"
}
+ },
+ "PUT" : {
+ "description" : "Update pool data.",
+ "method" : "PUT",
+ "name" : "update_pool",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "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,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vms" : {
+ "description" : "List of virtual machines.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "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"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/pools/{poolid}",
"text" : "{poolid}"
}
],
- "text" : "pools",
+ "info" : {
+ "GET" : {
+ "description" : "Pool index.",
+ "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" : {
+ "items" : {
+ "properties" : {
+ "poolid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{poolid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new pool.",
+ "method" : "POST",
+ "name" : "create_pool",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "poolid" : {
+ "format" : "pve-poolid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/pool/{poolid}",
+ [
+ "Pool.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
"leaf" : 0,
- "path" : "/pools"
+ "path" : "/pools",
+ "text" : "pools"
},
{
- "leaf" : 1,
- "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" : {
- "version" : {
+ "release" : {
"type" : "string"
},
"repoid" : {
"type" : "string"
},
- "release" : {
+ "version" : {
"type" : "string"
}
- }
- },
- "method" : "GET",
- "description" : "API version details. The result also includes the global datacenter confguration.",
- "permissions" : {
- "user" : "all"
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "version"
+ },
+ "type" : "object"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/version",
"text" : "version"
}
]