var pveapi = [
{
- "leaf" : 0,
- "text" : "cluster",
"children" : [
{
- "leaf" : 0,
- "text" : "firewall",
- "info" : {
- "GET" : {
- "name" : "index",
- "method" : "GET",
- "parameters" : {
- "additionalProperties" : 0
- },
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array",
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ]
- },
- "description" : "Directory index.",
- "permissions" : {
- "user" : "all"
- }
- }
- },
"children" : [
{
- "leaf" : 0,
- "text" : "groups",
- "path" : "/cluster/firewall/groups",
"children" : [
{
"children" : [
{
- "leaf" : 1,
- "text" : "{pos}",
"info" : {
- "PUT" : {
+ "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"
+ },
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 20,
+ "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"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "iface" : {
+ "group" : {
+ "description" : "Security Group name.",
"maxLength" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "optional" : 1,
"minLength" : 2,
- "format" : "pve-iface",
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
- "digest" : {
- "type" : "string",
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
- },
- "source" : {
+ "type" : "integer"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
+ "returns" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Modify rule data.",
+ "method" : "PUT",
+ "name" : "update_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
"optional" : 1,
- "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",
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
"comment" : {
"optional" : 1,
"type" : "string"
},
- "action" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "optional" : 1
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "string"
},
"dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
"description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
+ "format" : "pve-fw-addr-spec",
+ "optional" : 1,
+ "type" : "string"
},
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
+ "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"
},
- "proto" : {
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "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,
- "format" : "pve-fw-protocol-spec",
"type" : "string"
},
"enable" : {
- "type" : "integer",
"minimum" : 0,
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "moveto" : {
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 20,
+ "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"
+ },
+ "macro" : {
+ "maxLength" : 128,
"optional" : 1,
+ "type" : "string"
+ },
+ "moveto" : {
"description" : "Move rule to new position <moveto>. Other arguments are ignored.",
"minimum" : 0,
+ "optional" : 1,
"type" : "integer"
},
- "dport" : {
- "format" : "pve-fw-dport-spec",
- "type" : "string",
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges."
+ "type" : "integer"
},
- "delete" : {
- "description" : "A list of settings you want to delete.",
+ "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"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
"optional" : 1,
- "format" : "pve-configid-list",
"type" : "string"
},
"sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
"format" : "pve-fw-sport-spec",
- "type" : "string",
"optional" : 1,
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges."
- },
- "group" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 20,
- "description" : "Security Group name.",
"type" : "string"
},
- "macro" : {
+ "type" : {
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
"optional" : 1,
- "maxLength" : 128,
"type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "proxyto" : null,
- "description" : "Modify rule data.",
- "returns" : {
- "type" : "null"
+ }
},
- "name" : "update_rule",
- "method" : "PUT"
- },
- "DELETE" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : null,
- "parameters" : {
- "properties" : {
- "group" : {
- "maxLength" : 20,
- "description" : "Security Group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- },
- "description" : "Delete rule.",
- "method" : "DELETE",
- "name" : "delete_rule",
"returns" : {
"type" : "null"
}
- },
- "GET" : {
- "method" : "GET",
- "name" : "get_rule",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "pos" : {
- "minimum" : 0,
- "type" : "integer",
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "group" : {
- "maxLength" : 20,
- "description" : "Security Group name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- }
- },
- "proxyto" : null,
- "returns" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "description" : "Get single rule data.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- }
}
},
- "path" : "/cluster/firewall/groups/{group}/{pos}"
+ "leaf" : 1,
+ "path" : "/cluster/firewall/groups/{group}/{pos}",
+ "text" : "{pos}"
}
],
"info" : {
- "GET" : {
+ "DELETE" : {
+ "description" : "Delete security group.",
+ "method" : "DELETE",
+ "name" : "delete_security_group",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
- "description" : "List rules.",
- "method" : "GET",
- "name" : "get_rules",
+ "protected" : 1,
"returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- },
- "links" : [
- {
- "href" : "{pos}",
- "rel" : "child"
- }
- ]
- },
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "group" : {
- "maxLength" : 20,
- "description" : "Security Group name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "type" : "null"
}
},
- "DELETE" : {
- "method" : "DELETE",
- "name" : "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" : 20,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
}
},
- "protected" : 1,
- "description" : "Delete security group.",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "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" : {
- "group" : {
- "type" : "string",
- "maxLength" : 20,
- "description" : "Security Group name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
"action" : {
- "type" : "string",
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
"minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"optional" : 0,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
- "pos" : {
- "description" : "Update rule at position <pos>.",
+ "comment" : {
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "string"
},
"dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
"format" : "pve-fw-addr-spec",
- "type" : "string",
"optional" : 1,
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists."
+ "type" : "string"
},
- "macro" : {
- "type" : "string",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
- "maxLength" : 128
+ "type" : "string"
},
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 0,
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
"type" : "string"
},
- "proto" : {
- "type" : "string",
- "format" : "pve-fw-protocol-spec",
+ "enable" : {
+ "minimum" : 0,
"optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
+ "type" : "integer"
},
- "iface" : {
- "minLength" : 2,
+ "group" : {
+ "description" : "Security Group name.",
"maxLength" : 20,
+ "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",
- "format" : "pve-iface"
+ "type" : "string"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "macro" : {
+ "maxLength" : 128,
"optional" : 1,
- "maxLength" : 40,
"type" : "string"
},
- "enable" : {
- "optional" : 1,
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
"minimum" : 0,
+ "optional" : 1,
"type" : "integer"
},
- "dport" : {
- "format" : "pve-fw-dport-spec",
- "type" : "string",
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
"optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges."
+ "type" : "string"
},
"source" : {
- "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",
"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"
},
"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",
- "format" : "pve-fw-sport-spec"
+ "type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
+ "type" : "string"
}
}
},
- "proxyto" : null,
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : null,
"returns" : {
"type" : "null"
- },
- "method" : "POST",
- "name" : "create_rule",
- "description" : "Create new rule."
+ }
}
},
- "path" : "/cluster/firewall/groups/{group}",
"leaf" : 0,
+ "path" : "/cluster/firewall/groups/{group}",
"text" : "{group}"
}
],
"info" : {
- "POST" : {
- "protected" : 1,
- "description" : "Create new security group.",
+ "GET" : {
+ "description" : "List security groups.",
+ "method" : "GET",
+ "name" : "list_security_groups",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "user" : "all"
},
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "rename" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 20,
- "optional" : 1,
- "description" : "Rename/update an existing security group. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing group.",
- "type" : "string"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "maxLength" : 40,
- "type" : "string"
- },
- "group" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 20,
- "description" : "Security Group name."
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- }
- }
- },
- "name" : "create_security_group",
- "method" : "POST"
- },
- "GET" : {
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0
- },
"comment" : {
"optional" : 1,
"type" : "string"
},
+ "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" : {
- "type" : "string",
- "maxLength" : 20,
"description" : "Security Group name.",
+ "maxLength" : 20,
"minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
- }
+ },
+ "type" : "object"
},
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{group}"
- }
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "list_security_groups",
- "method" : "GET",
- "description" : "List security groups.",
- "permissions" : {
- "user" : "all"
- }
- }
- }
- },
- {
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "List rules.",
- "method" : "GET",
- "name" : "get_rules",
- "returns" : {
"links" : [
{
- "rel" : "child",
- "href" : "{pos}"
+ "href" : "{group}",
+ "rel" : "child"
}
],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- }
- },
- "proxyto" : null,
- "parameters" : {
- "additionalProperties" : 0
+ "type" : "array"
}
},
"POST" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "proxyto" : null,
+ "description" : "Create new security group.",
+ "method" : "POST",
+ "name" : "create_security_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "macro" : {
+ "comment" : {
"optional" : 1,
- "maxLength" : 128,
- "type" : "string"
- },
- "type" : {
- "optional" : 0,
- "enum" : [
- "in",
- "out",
- "group"
- ],
"type" : "string"
},
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "comment" : {
+ "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"
},
- "action" : {
- "type" : "string",
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 20,
"minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "optional" : 0,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20
- },
- "dest" : {
- "optional" : 1,
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "format" : "pve-fw-addr-spec",
"type" : "string"
},
- "source" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
- },
- "sport" : {
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-sport-spec"
- },
- "digest" : {
- "type" : "string",
- "optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "iface" : {
- "type" : "string",
- "format" : "pve-iface",
- "minLength" : 2,
+ "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" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "optional" : 1
- },
- "proto" : {
+ "minLength" : 2,
"optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "type" : "string",
- "format" : "pve-fw-protocol-spec"
- },
- "dport" : {
- "format" : "pve-fw-dport-spec",
- "type" : "string",
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1
- },
- "enable" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
}
},
- "description" : "Create new rule.",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "name" : "create_rule",
- "method" : "POST"
+ }
}
},
- "path" : "/cluster/firewall/rules",
+ "leaf" : 0,
+ "path" : "/cluster/firewall/groups",
+ "text" : "groups"
+ },
+ {
"children" : [
{
- "leaf" : 1,
- "text" : "{pos}",
"info" : {
- "PUT" : {
+ "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.",
"optional" : 1,
"type" : "string"
},
- "iface" : {
- "optional" : 1,
- "maxLength" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- },
- "proto" : {
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "type" : "string",
- "format" : "pve-fw-protocol-spec"
- },
- "dport" : {
- "optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "format" : "pve-fw-dport-spec",
- "type" : "string"
- },
- "moveto" : {
- "type" : "integer",
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
"minimum" : 0,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
- "optional" : 1
- },
- "enable" : {
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
- },
- "source" : {
- "type" : "string",
- "format" : "pve-fw-addr-spec",
"optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists."
- },
- "sport" : {
- "format" : "pve-fw-sport-spec",
- "type" : "string",
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1
- },
+ "type" : "integer"
+ }
+ }
+ },
+ "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>.",
- "optional" : 1,
"minimum" : 0,
+ "optional" : 1,
"type" : "integer"
- },
- "action" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "optional" : 1
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
- },
- "macro" : {
- "type" : "string",
- "optional" : 1,
- "maxLength" : 128
- },
- "type" : {
- "type" : "string",
- "optional" : 1,
- "enum" : [
- "in",
- "out",
- "group"
- ]
}
- },
- "additionalProperties" : 0
- },
- "proxyto" : null,
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "returns" : {
- "type" : "null"
+ }
},
- "method" : "PUT",
- "name" : "update_rule",
- "description" : "Modify rule data."
- },
- "GET" : {
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get single rule data.",
- "parameters" : {
- "properties" : {
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- }
- },
- "additionalProperties" : 0
- },
"proxyto" : null,
"returns" : {
"properties" : {
}
},
"type" : "object"
- },
- "method" : "GET",
- "name" : "get_rule"
+ }
},
- "DELETE" : {
+ "PUT" : {
+ "description" : "Modify rule data.",
+ "method" : "PUT",
+ "name" : "update_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "pos" : {
- "description" : "Update rule at position <pos>.",
+ "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" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "string"
},
"digest" : {
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"maxLength" : 40,
"optional" : 1,
"type" : "string"
+ },
+ "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"
+ },
+ "enable" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "macro" : {
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "type" : {
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
}
},
- "proxyto" : null,
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
+ "proxyto" : null,
"returns" : {
"type" : "null"
- },
- "name" : "delete_rule",
- "method" : "DELETE",
- "description" : "Delete rule."
+ }
}
},
- "path" : "/cluster/firewall/rules/{pos}"
+ "leaf" : 1,
+ "path" : "/cluster/firewall/rules/{pos}",
+ "text" : "{pos}"
}
],
- "leaf" : 0,
- "text" : "rules"
- },
- {
- "leaf" : 0,
- "text" : "ipset",
"info" : {
- "POST" : {
+ "GET" : {
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
"parameters" : {
- "properties" : {
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "rename" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "optional" : 1,
- "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
- "maxLength" : 64
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "type" : "string"
- }
- },
"additionalProperties" : 0
},
- "returns" : {
- "type" : "null"
- },
- "name" : "create_ipset",
- "method" : "POST",
- "description" : "Create new IPSet",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1
- },
- "GET" : {
- "description" : "List IPSets",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "proxyto" : null,
"returns" : {
"items" : {
"properties" : {
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "optional" : 0,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
- },
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "IP set name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
+ "pos" : {
+ "type" : "integer"
}
},
"type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{pos}",
+ "rel" : "child"
}
- ]
- },
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new rule.",
+ "method" : "POST",
+ "name" : "create_rule",
"parameters" : {
- "additionalProperties" : 0
- },
- "name" : "ipset_index",
- "method" : "GET"
- }
- },
- "children" : [
- {
- "leaf" : 0,
- "text" : "{name}",
- "children" : [
- {
- "info" : {
- "GET" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Read IP or Network settings from IPSet.",
- "method" : "GET",
- "name" : "read_ip",
- "returns" : {
- "type" : "object"
- },
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 0,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "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" : 1,
+ "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"
+ },
+ "enable" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "macro" : {
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "type" : {
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/firewall/rules",
+ "text" : "rules"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Remove IP or Network from IPSet.",
+ "method" : "DELETE",
+ "name" : "remove_ip",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
"format" : "IPorCIDRorAlias",
- "type" : "string",
- "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.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
},
"name" : {
- "type" : "string",
"description" : "IP set name.",
"maxLength" : 64,
+ "minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
+ "type" : "string"
}
}
- }
- },
- "DELETE" : {
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "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",
- "description" : "Network/IP specification in CIDR format."
- },
- "digest" : {
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
"type" : "string"
},
"name" : {
"description" : "IP set name.",
"maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "DELETE",
- "name" : "remove_ip",
- "protected" : 1,
- "description" : "Remove IP or Network from IPSet.",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
}
},
"PUT" : {
"description" : "Update IP or Network settings",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
+ "method" : "PUT",
+ "name" : "update_ip",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- },
"cidr" : {
- "type" : "string",
+ "description" : "Network/IP specification in CIDR format.",
"format" : "IPorCIDRorAlias",
- "description" : "Network/IP specification in CIDR format."
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
+ "type" : "string"
},
"comment" : {
"optional" : 1,
},
"digest" : {
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
"maxLength" : 40,
+ "optional" : 1,
+ "type" : "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"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "method" : "PUT",
- "name" : "update_ip"
+ }
}
},
- "path" : "/cluster/firewall/ipset/{name}/{cidr}",
"leaf" : 1,
+ "path" : "/cluster/firewall/ipset/{name}/{cidr}",
"text" : "{cidr}"
}
],
- "path" : "/cluster/firewall/ipset/{name}",
"info" : {
"DELETE" : {
+ "description" : "Delete IPSet",
"method" : "DELETE",
"name" : "delete_ipset",
"parameters" : {
"name" : {
"description" : "IP set name.",
"maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
}
},
- "returns" : {
- "type" : "null"
- },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Delete IPSet",
- "protected" : 1
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
},
"GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
"description" : "List IPSet content",
"method" : "GET",
"name" : "get_ipset",
"additionalProperties" : 0,
"properties" : {
"name" : {
- "maxLength" : 64,
"description" : "IP set name.",
+ "maxLength" : 64,
"minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
}
},
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{cidr}"
- }
- ],
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
"items" : {
"properties" : {
"cidr" : {
"type" : "string"
},
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
"digest" : {
- "type" : "string",
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"maxLength" : 40,
"optional" : 0,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "comment" : {
- "optional" : 1,
"type" : "string"
},
"nomatch" : {
- "type" : "boolean",
- "optional" : 1
+ "optional" : 1,
+ "type" : "boolean"
}
},
"type" : "object"
},
+ "links" : [
+ {
+ "href" : "{cidr}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
}
},
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
"description" : "Add IP or Network to IPSet.",
- "protected" : 1,
"method" : "POST",
"name" : "create_ip",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "maxLength" : 64
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- },
"cidr" : {
"description" : "Network/IP specification in CIDR format.",
"format" : "IPorCIDRorAlias",
"type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "null"
- }
- }
- }
- }
- ],
- "path" : "/cluster/firewall/ipset"
- },
- {
- "text" : "aliases",
- "leaf" : 0,
- "children" : [
- {
- "text" : "{name}",
- "leaf" : 1,
- "info" : {
- "DELETE" : {
- "protected" : 1,
- "description" : "Remove IP or Network alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Alias name.",
- "maxLength" : 64
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "comment" : {
"optional" : 1,
"type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "DELETE",
- "name" : "remove_alias"
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Read alias.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
+ },
"name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
"minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Alias name.",
"type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
}
}
},
- "returns" : {
- "type" : "object"
- },
- "name" : "read_alias",
- "method" : "GET"
- },
- "PUT" : {
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Update IP or Network alias.",
"protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "maxLength" : 64,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "cidr" : {
- "format" : "IPorCIDR",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
- },
- "rename" : {
- "type" : "string",
- "optional" : 1,
- "maxLength" : 64,
- "description" : "Rename an existing alias.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "type" : "string"
- }
- }
- },
"returns" : {
"type" : "null"
- },
- "name" : "update_alias",
- "method" : "PUT"
+ }
}
},
- "path" : "/cluster/firewall/aliases/{name}"
+ "leaf" : 0,
+ "path" : "/cluster/firewall/ipset/{name}",
+ "text" : "{name}"
}
],
- "path" : "/cluster/firewall/aliases",
"info" : {
"GET" : {
+ "description" : "List IPSets",
+ "method" : "GET",
+ "name" : "ipset_index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "List aliases",
- "method" : "GET",
- "name" : "get_aliases",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
- "name" : {
- "type" : "string"
- },
- "cidr" : {
+ "comment" : {
+ "optional" : 1,
"type" : "string"
},
"digest" : {
- "optional" : 0,
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"maxLength" : 40,
+ "optional" : 0,
"type" : "string"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "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"
}
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
+ ],
+ "type" : "array"
}
},
"POST" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "description" : "Create IP or Network Alias.",
- "name" : "create_alias",
+ "description" : "Create new IPSet",
"method" : "POST",
- "returns" : {
- "type" : "null"
- },
+ "name" : "create_ipset",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"comment" : {
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "cidr" : {
- "format" : "IPorCIDR",
- "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.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
},
"name" : {
- "description" : "Alias name.",
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "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"
}
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/firewall/ipset",
+ "text" : "ipset"
},
{
- "info" : {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "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"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string"
+ },
+ "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" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "rename" : {
+ "description" : "Rename an existing alias.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/aliases/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
"GET" : {
+ "description" : "List aliases",
"method" : "GET",
- "name" : "get_options",
+ "name" : "get_aliases",
"parameters" : {
"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"
+ }
+ },
+ "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" : {
- "policy_in" : {
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "optional" : 1,
- "description" : "Input policy.",
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
"type" : "string"
},
- "enable" : {
- "description" : "Enable or disable the firewall cluster wide.",
+ "comment" : {
"optional" : 1,
- "minimum" : 0,
- "type" : "integer"
+ "type" : "string"
},
- "policy_out" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Output policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
- },
- "type" : "object"
+ }
},
- "description" : "Get Firewall options.",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
- },
- "PUT" : {
- "description" : "Set Firewall options.",
+ }
+ },
+ "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",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "protected" : 1,
- "name" : "set_options",
- "method" : "PUT",
- "parameters" : {
- "additionalProperties" : 0,
+ "returns" : {
"properties" : {
- "delete" : {
- "description" : "A list of settings you want to delete.",
+ "enable" : {
+ "description" : "Enable or disable the firewall cluster wide.",
+ "minimum" : 0,
"optional" : 1,
- "format" : "pve-configid-list",
- "type" : "string"
+ "type" : "integer"
},
"policy_in" : {
"description" : "Input policy.",
- "optional" : 1,
"enum" : [
"ACCEPT",
"REJECT",
"DROP"
],
+ "optional" : 1,
"type" : "string"
},
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1
- },
"policy_out" : {
- "type" : "string",
+ "description" : "Output policy.",
"enum" : [
"ACCEPT",
"REJECT",
"DROP"
],
- "description" : "Output policy.",
- "optional" : 1
+ "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"
+ },
+ "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"
},
"enable" : {
+ "description" : "Enable or disable the firewall cluster wide.",
"minimum" : 0,
- "type" : "integer",
"optional" : 1,
- "description" : "Enable or disable the firewall cluster wide."
+ "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"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
"returns" : {
"type" : "null"
}
}
},
- "path" : "/cluster/firewall/options",
"leaf" : 1,
+ "path" : "/cluster/firewall/options",
"text" : "options"
},
{
- "leaf" : 1,
- "text" : "macros",
- "path" : "/cluster/firewall/macros",
"info" : {
"GET" : {
- "permissions" : {
- "user" : "all"
- },
"description" : "List available macros",
"method" : "GET",
"name" : "get_macros",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
"items" : {
"properties" : {
"type" : "string"
},
"macro" : {
- "type" : "string",
- "description" : "Macro name."
+ "description" : "Macro name.",
+ "type" : "string"
}
},
"type" : "object"
},
"type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/macros",
+ "text" : "macros"
},
{
- "leaf" : 1,
- "text" : "refs",
- "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" : {
+ "type" : {
+ "description" : "Only list references of specified type.",
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
- "method" : "GET",
- "name" : "refs",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
"name" : {
"type" : "string"
},
"type" : "string"
},
"type" : {
- "type" : "string",
"enum" : [
"alias",
"ipset"
- ]
- },
- "comment" : {
- "optional" : 1,
+ ],
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
"type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "type" : {
- "type" : "string",
- "enum" : [
- "alias",
- "ipset"
- ],
- "optional" : 1,
- "description" : "Only list references of specified type."
- }
- }
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/refs",
+ "text" : "refs"
}
],
- "path" : "/cluster/firewall"
+ "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",
+ "text" : "firewall"
},
{
- "leaf" : 0,
- "text" : "backup",
"children" : [
{
- "text" : "{id}",
- "leaf" : 1,
"info" : {
- "GET" : {
+ "DELETE" : {
+ "description" : "Delete vzdump backup job definition.",
+ "method" : "DELETE",
+ "name" : "delete_job",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
}
}
},
- "returns" : {
- "type" : "object"
- },
- "name" : "read_job",
- "method" : "GET",
- "description" : "Read vzdump backup job definition.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- }
- },
- "DELETE" : {
- "description" : "Delete vzdump backup job definition.",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
- "method" : "DELETE",
- "name" : "delete_job",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read vzdump backup job definition.",
+ "method" : "GET",
+ "name" : "read_job",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"id" : {
- "type" : "string",
+ "description" : "The job ID.",
"maxLength" : 50,
- "description" : "The job ID."
+ "type" : "string"
}
}
},
- "returns" : {
- "type" : "null"
- }
- },
- "PUT" : {
- "protected" : 1,
- "description" : "Update vzdump backup job definition.",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "name" : "update_job",
- "method" : "PUT",
"returns" : {
- "type" : "null"
- },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update vzdump backup job definition.",
+ "method" : "PUT",
+ "name" : "update_job",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "stopwait" : {
- "type" : "integer",
- "default" : 10,
- "minimum" : 0,
- "description" : "Maximal time to wait until a guest system is stopped (minutes).",
- "optional" : 1
- },
- "exclude-path" : {
- "optional" : 1,
- "description" : "Exclude certain files/directories (shell globs).",
- "format" : "string-alist",
- "type" : "string"
- },
- "starttime" : {
- "type" : "string",
- "pattern" : "\\d{1,2}:\\d{1,2}",
- "description" : "Job Start time.",
- "typetext" : "HH:MM"
- },
"all" : {
- "optional" : 1,
+ "default" : 0,
"description" : "Backup all known guest systems on this host.",
- "type" : "boolean",
- "default" : 0
- },
- "remove" : {
"optional" : 1,
- "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
- "default" : 1,
"type" : "boolean"
},
- "storage" : {
- "type" : "string",
- "format" : "pve-storage-id",
- "description" : "Store resulting file to this storage.",
- "optional" : 1
- },
- "enabled" : {
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (KBytes per second).",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Enable or disable the job.",
- "type" : "boolean",
- "default" : "1"
+ "type" : "integer"
},
"compress" : {
+ "default" : "0",
"description" : "Compress dump file.",
- "optional" : 1,
"enum" : [
"0",
"1",
"gzip",
"lzo"
],
- "default" : "0",
+ "optional" : 1,
"type" : "string"
},
- "size" : {
- "optional" : 1,
- "description" : "Unused, will be removed in a future release.",
- "minimum" : 500,
- "type" : "integer",
- "default" : 1024
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string"
},
- "bwlimit" : {
+ "dow" : {
+ "description" : "Day of week selection.",
+ "format" : "pve-day-of-week-list",
"optional" : 1,
- "description" : "Limit I/O bandwidth (KBytes per second).",
- "type" : "integer",
- "default" : 0,
- "minimum" : 0
+ "type" : "string"
},
- "tmpdir" : {
- "type" : "string",
- "description" : "Store temporary files to specified directory.",
- "optional" : 1
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
+ "optional" : 1,
+ "type" : "string"
},
- "stop" : {
+ "enabled" : {
+ "default" : "1",
+ "description" : "Enable or disable the job.",
"optional" : 1,
- "description" : "Stop runnig backup jobs on this host.",
- "type" : "boolean",
- "default" : 0
+ "type" : "boolean"
},
- "script" : {
- "type" : "string",
- "description" : "Use specified hook script.",
- "optional" : 1
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs).",
+ "format" : "string-alist",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string"
+ },
+ "ionice" : {
+ "default" : 7,
+ "description" : "Set CFQ ionice priority.",
+ "maximum" : 8,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
"mailnotification" : {
- "type" : "string",
"default" : "always",
+ "description" : "Specify when to send an email",
"enum" : [
"always",
"failure"
],
- "description" : "Specify when to send an email",
- "optional" : 1
- },
- "stdexcludes" : {
"optional" : 1,
- "description" : "Exclude temporary files and logs.",
- "type" : "boolean",
- "default" : 1
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "format" : "pve-configid-list",
"type" : "string"
},
- "pigz" : {
+ "mailto" : {
+ "description" : "Comma-separated list of email addresses that should receive email notifications.",
+ "format" : "string-list",
"optional" : 1,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
- "type" : "integer",
- "default" : 0
+ "type" : "string"
},
"maxfiles" : {
- "optional" : 1,
+ "default" : 1,
"description" : "Maximal number of backup files per guest system.",
"minimum" : 1,
- "default" : 1,
+ "optional" : 1,
"type" : "integer"
},
- "lockwait" : {
- "description" : "Maximal time to wait for the global lock (minutes).",
+ "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"
+ },
+ "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,
- "minimum" : 0,
- "default" : 180,
"type" : "integer"
},
- "vmid" : {
- "description" : "The ID of the guest system you want to backup.",
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
"optional" : 1,
- "type" : "string",
- "format" : "pve-vmid-list"
+ "type" : "boolean"
},
- "dumpdir" : {
- "type" : "string",
- "description" : "Store resulting files to specified directory.",
- "optional" : 1
+ "remove" : {
+ "default" : 1,
+ "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
+ "script" : {
+ "description" : "Use specified hook script.",
"optional" : 1,
- "description" : "Only run if executed on this node."
+ "type" : "string"
},
- "dow" : {
- "format" : "pve-day-of-week-list",
- "type" : "string",
+ "size" : {
+ "default" : 1024,
+ "description" : "Unused, will be removed in a future release.",
+ "minimum" : 500,
"optional" : 1,
- "description" : "Day of week selection."
+ "type" : "integer"
},
- "id" : {
+ "starttime" : {
+ "description" : "Job Start time.",
+ "pattern" : "\\d{1,2}:\\d{1,2}",
"type" : "string",
- "maxLength" : 50,
- "description" : "The job ID."
+ "typetext" : "HH:MM"
},
- "ionice" : {
- "minimum" : 0,
- "maximum" : 8,
- "default" : 7,
- "type" : "integer",
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
"optional" : 1,
- "description" : "Set CFQ ionice priority."
+ "type" : "boolean"
},
- "quiet" : {
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop runnig backup jobs on this host.",
"optional" : 1,
- "description" : "Be quiet.",
- "type" : "boolean",
- "default" : 0
+ "type" : "boolean"
},
- "mailto" : {
- "description" : "Comma-separated list of email addresses that should receive email notifications.",
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
"optional" : 1,
- "format" : "string-list",
- "type" : "string"
+ "type" : "integer"
},
- "mode" : {
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
"optional" : 1,
- "description" : "Backup mode.",
- "enum" : [
- "snapshot",
- "suspend",
- "stop"
- ],
- "default" : "snapshot",
"type" : "string"
},
- "exclude" : {
- "description" : "Exclude specified guest systems (assumes --all)",
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
"optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
"format" : "pve-vmid-list",
+ "optional" : 1,
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/cluster/backup/{id}"
+ "leaf" : 1,
+ "path" : "/cluster/backup/{id}",
+ "text" : "{id}"
}
],
- "path" : "/cluster/backup",
"info" : {
+ "GET" : {
+ "description" : "List vzdump backup schedule.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
"POST" : {
+ "description" : "Create new vzdump backup job.",
+ "method" : "POST",
+ "name" : "create_job",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "starttime" : {
- "type" : "string",
- "pattern" : "\\d{1,2}:\\d{1,2}",
- "typetext" : "HH:MM",
- "description" : "Job Start time."
- },
- "exclude-path" : {
- "type" : "string",
- "format" : "string-alist",
- "description" : "Exclude certain files/directories (shell globs).",
- "optional" : 1
- },
- "remove" : {
- "type" : "boolean",
- "default" : 1,
- "optional" : 1,
- "description" : "Remove old backup files if there are more than 'maxfiles' backup files."
- },
"all" : {
"default" : 0,
- "type" : "boolean",
+ "description" : "Backup all known guest systems on this host.",
"optional" : 1,
- "description" : "Backup all known guest systems on this host."
- },
- "stopwait" : {
- "minimum" : 0,
- "type" : "integer",
- "default" : 10,
- "description" : "Maximal time to wait until a guest system is stopped (minutes).",
- "optional" : 1
+ "type" : "boolean"
},
"bwlimit" : {
"default" : 0,
- "type" : "integer",
+ "description" : "Limit I/O bandwidth (KBytes per second).",
"minimum" : 0,
"optional" : 1,
- "description" : "Limit I/O bandwidth (KBytes per second)."
- },
- "tmpdir" : {
- "type" : "string",
- "description" : "Store temporary files to specified directory.",
- "optional" : 1
- },
- "stop" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Stop runnig backup jobs on this host."
- },
- "script" : {
- "type" : "string",
- "description" : "Use specified hook script.",
- "optional" : 1
+ "type" : "integer"
},
"compress" : {
- "type" : "string",
"default" : "0",
+ "description" : "Compress dump file.",
"enum" : [
"0",
"1",
"gzip",
"lzo"
],
- "description" : "Compress dump file.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "storage" : {
+ "dow" : {
+ "default" : "mon,tue,wed,thu,fri,sat,sun",
+ "description" : "Day of week selection.",
+ "format" : "pve-day-of-week-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
"optional" : 1,
- "description" : "Store resulting file to this storage.",
- "format" : "pve-storage-id",
"type" : "string"
},
"enabled" : {
+ "default" : "1",
"description" : "Enable or disable the job.",
"optional" : 1,
- "type" : "boolean",
- "default" : "1"
- },
- "size" : {
- "default" : 1024,
- "type" : "integer",
- "minimum" : 500,
- "description" : "Unused, will be removed in a future release.",
- "optional" : 1
+ "type" : "boolean"
},
- "pigz" : {
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
"optional" : 1,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
- "type" : "integer",
- "default" : 0
+ "type" : "string"
},
- "lockwait" : {
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs).",
+ "format" : "string-alist",
"optional" : 1,
- "description" : "Maximal time to wait for the global lock (minutes).",
- "default" : 180,
- "type" : "integer",
- "minimum" : 0
+ "type" : "string"
},
- "maxfiles" : {
+ "ionice" : {
+ "default" : 7,
+ "description" : "Set CFQ ionice priority.",
+ "maximum" : 8,
+ "minimum" : 0,
"optional" : 1,
- "description" : "Maximal number of backup files per guest system.",
- "minimum" : 1,
- "type" : "integer",
- "default" : 1
+ "type" : "integer"
},
- "stdexcludes" : {
- "type" : "boolean",
- "default" : 1,
- "description" : "Exclude temporary files and logs.",
- "optional" : 1
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
"mailnotification" : {
- "type" : "string",
"default" : "always",
"description" : "Specify when to send an email",
- "optional" : 1,
"enum" : [
"always",
"failure"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mailto" : {
+ "description" : "Comma-separated list of email addresses that should receive email notifications.",
+ "format" : "string-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "maxfiles" : {
+ "default" : 1,
+ "description" : "Maximal number of backup files per guest system.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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",
- "format" : "pve-node"
+ "type" : "string"
},
- "ionice" : {
- "description" : "Set CFQ ionice priority.",
+ "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,
- "minimum" : 0,
- "type" : "integer",
- "default" : 7,
- "maximum" : 8
+ "type" : "integer"
},
"quiet" : {
+ "default" : 0,
"description" : "Be quiet.",
"optional" : 1,
- "type" : "boolean",
- "default" : 0
+ "type" : "boolean"
},
- "dow" : {
- "description" : "Day of week selection.",
+ "remove" : {
+ "default" : 1,
+ "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "script" : {
+ "description" : "Use specified hook script.",
"optional" : 1,
- "format" : "pve-day-of-week-list",
- "default" : "mon,tue,wed,thu,fri,sat,sun",
"type" : "string"
},
- "dumpdir" : {
+ "size" : {
+ "default" : 1024,
+ "description" : "Unused, will be removed in a future release.",
+ "minimum" : 500,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "starttime" : {
+ "description" : "Job Start time.",
+ "pattern" : "\\d{1,2}:\\d{1,2}",
"type" : "string",
- "description" : "Store resulting files to specified directory.",
- "optional" : 1
+ "typetext" : "HH:MM"
},
- "exclude" : {
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
"optional" : 1,
- "description" : "Exclude specified guest systems (assumes --all)",
- "type" : "string",
- "format" : "pve-vmid-list"
+ "type" : "boolean"
},
- "mailto" : {
- "type" : "string",
- "format" : "string-list",
- "description" : "Comma-separated list of email addresses that should receive email notifications.",
- "optional" : 1
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop runnig backup jobs on this host.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "mode" : {
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
"optional" : 1,
- "description" : "Backup mode.",
- "enum" : [
- "snapshot",
- "suspend",
- "stop"
- ],
- "default" : "snapshot",
"type" : "string"
},
- "vmid" : {
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
"optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
"description" : "The ID of the guest system you want to backup.",
"format" : "pve-vmid-list",
+ "optional" : 1,
"type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
- "name" : "create_job",
- "method" : "POST",
- "description" : "Create new vzdump backup job.",
"permissions" : {
"check" : [
"perm",
]
]
},
- "protected" : 1
- },
- "GET" : {
+ "protected" : 1,
"returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "id" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{id}",
- "rel" : "child"
- }
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "index",
- "method" : "GET",
- "description" : "List vzdump backup schedule.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/backup",
+ "text" : "backup"
},
{
- "info" : {
- "GET" : {
- "description" : "Directory index.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{id}"
- }
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "id" : {
- "type" : "string"
- }
- }
- }
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "method" : "GET",
- "name" : "index"
- }
- },
- "path" : "/cluster/ha",
"children" : [
{
- "path" : "/cluster/ha/resources",
- "info" : {
- "POST" : {
- "name" : "create",
- "method" : "POST",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "sid" : {
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "typetext" : "<type>:<name>",
- "type" : "string",
- "format" : "pve-ha-resource-or-vm-id"
- },
- "group" : {
- "type" : "string",
- "format" : "pve-configid",
- "description" : "The HA group identifier.",
- "optional" : 1
- },
- "comment" : {
- "optional" : 1,
- "maxLength" : 4096,
- "description" : "Description.",
- "type" : "string"
- },
- "max_relocate" : {
- "optional" : 1,
- "description" : "Maximal number of service relocate tries when a service failes to start.",
- "minimum" : 0,
- "type" : "integer",
- "default" : 1
- },
- "type" : {
- "optional" : 1,
- "description" : "Resource type.",
- "enum" : [
- "vm",
- "ct"
- ],
- "type" : "string"
- },
- "state" : {
- "default" : "enabled",
- "type" : "string",
- "optional" : 1,
- "description" : "Resource state.",
- "enum" : [
- "enabled",
- "disabled"
- ]
- },
- "max_restart" : {
- "minimum" : 0,
- "type" : "integer",
- "default" : 1,
- "description" : "Maximal number of tries to restart the service on a node after its start failed.",
- "optional" : 1
- }
- },
- "type" : "object"
- },
- "protected" : 1,
- "description" : "Create a new HA resource.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
- }
- },
- "GET" : {
- "name" : "index",
- "method" : "GET",
- "parameters" : {
- "properties" : {
- "type" : {
- "type" : "string",
- "enum" : [
- "vm",
- "ct"
- ],
- "optional" : 1,
- "description" : "Only list resources of specific type"
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "sid" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{sid}"
- }
- ]
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "List HA resources."
- }
- },
"children" : [
{
- "text" : "{sid}",
- "leaf" : 0,
"children" : [
{
- "path" : "/cluster/ha/resources/{sid}/migrate",
"info" : {
"POST" : {
- "protected" : 1,
+ "description" : "Request resource migration (online) to another node.",
+ "method" : "POST",
+ "name" : "migrate",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Request resource migration (online) to another node.",
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "parameters" : {
- "properties" : {
- "sid" : {
- "typetext" : "<type>:<name>",
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "method" : "POST",
- "name" : "migrate"
+ }
}
},
"leaf" : 1,
+ "path" : "/cluster/ha/resources/{sid}/migrate",
"text" : "migrate"
},
{
- "leaf" : 1,
- "text" : "relocate",
"info" : {
"POST" : {
- "name" : "relocate",
+ "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
"method" : "POST",
- "returns" : {
- "type" : "null"
- },
+ "name" : "relocate",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
},
"sid" : {
- "type" : "string",
- "format" : "pve-ha-resource-or-vm-id",
"description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
"typetext" : "<type>:<name>"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/cluster/ha/resources/{sid}/relocate"
+ "leaf" : 1,
+ "path" : "/cluster/ha/resources/{sid}/relocate",
+ "text" : "relocate"
}
],
"info" : {
- "PUT" : {
- "returns" : {
- "type" : "null"
- },
+ "DELETE" : {
+ "description" : "Delete resource configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "delete" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "maxLength" : 4096
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1
- },
- "state" : {
- "enum" : [
- "enabled",
- "disabled"
- ],
- "description" : "Resource state.",
- "optional" : 1,
- "type" : "string",
- "default" : "enabled"
- },
- "max_restart" : {
- "optional" : 1,
- "description" : "Maximal number of tries to restart the service on a node after its start failed.",
- "type" : "integer",
- "default" : 1,
- "minimum" : 0
- },
- "comment" : {
- "type" : "string",
- "description" : "Description.",
- "maxLength" : 4096,
- "optional" : 1
- },
"sid" : {
"description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "typetext" : "<type>:<name>",
"format" : "pve-ha-resource-or-vm-id",
- "type" : "string"
- },
- "group" : {
- "format" : "pve-configid",
"type" : "string",
- "description" : "The HA group identifier.",
- "optional" : 1
- },
- "max_relocate" : {
- "default" : 1,
- "type" : "integer",
- "minimum" : 0,
- "description" : "Maximal number of service relocate tries when a service failes to start.",
- "optional" : 1
+ "typetext" : "<type>:<name>"
}
- },
- "type" : "object"
+ }
},
- "name" : "update",
- "method" : "PUT",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Update resource configuration."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
},
"GET" : {
"description" : "Read resource configuration.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
+ "method" : "GET",
+ "name" : "read",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"sid" : {
- "typetext" : "<type>:<name>",
"description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
"format" : "pve-ha-resource-or-vm-id",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<type>:<name>"
}
}
},
- "returns" : {},
- "method" : "GET",
- "name" : "read"
- },
- "DELETE" : {
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Audit"
]
]
},
- "description" : "Delete resource configuration.",
- "protected" : 1,
- "method" : "DELETE",
- "name" : "delete",
+ "returns" : {}
+ },
+ "PUT" : {
+ "description" : "Update resource configuration.",
+ "method" : "PUT",
+ "name" : "update",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "sid" : {
- "typetext" : "<type>:<name>",
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
"type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- }
- }
- },
- "path" : "/cluster/ha/resources/{sid}"
- }
- ],
- "leaf" : 0,
- "text" : "resources"
- },
- {
- "children" : [
- {
- "path" : "/cluster/ha/groups/{group}",
- "info" : {
- "PUT" : {
- "protected" : 1,
- "description" : "Update ha group configuration.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
- },
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "restricted" : {
- "description" : "Services on unrestricted groups may run on any cluster members if all group members are offline. But they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with one member.",
- "optional" : 1,
- "default" : 0,
- "type" : "boolean"
- },
- "nodes" : {
- "description" : "List of cluster node names with optional priority. We use priority '0' as default. The CRM tries to run services on the node with highest priority (also see option 'nofailback').",
- "optional" : 1,
- "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
- "format" : "pve-ha-group-node-list",
- "type" : "string"
- },
- "nofailback" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
- "optional" : 1
},
"delete" : {
- "optional" : 1,
"description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"maxLength" : 4096,
- "type" : "string",
- "format" : "pve-configid-list"
+ "optional" : 1,
+ "type" : "string"
},
- "comment" : {
- "maxLength" : 4096,
- "description" : "Description.",
+ "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"
},
"group" : {
"description" : "The HA group identifier.",
"format" : "pve-configid",
+ "optional" : 1,
"type" : "string"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "max_relocate" : {
+ "default" : 1,
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "max_restart" : {
+ "default" : 1,
+ "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ },
+ "state" : {
+ "default" : "enabled",
+ "description" : "Resource state.",
+ "enum" : [
+ "enabled",
+ "disabled"
+ ],
"optional" : 1,
- "maxLength" : 40,
"type" : "string"
}
},
- "additionalProperties" : 0,
"type" : "object"
},
- "method" : "PUT",
- "name" : "update"
- },
- "GET" : {
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Console"
]
]
},
- "description" : "Read ha group configuration.",
- "method" : "GET",
- "name" : "read",
- "returns" : {},
- "parameters" : {
- "properties" : {
- "group" : {
- "type" : "string",
- "format" : "pve-configid",
- "description" : "The HA group identifier."
- }
- },
- "additionalProperties" : 0
- }
- },
- "DELETE" : {
- "method" : "DELETE",
- "name" : "delete",
- "parameters" : {
- "properties" : {
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
- },
- "description" : "Delete ha group configuration.",
- "protected" : 1
+ }
}
},
- "leaf" : 1,
- "text" : "{group}"
+ "leaf" : 0,
+ "path" : "/cluster/ha/resources/{sid}",
+ "text" : "{sid}"
}
],
"info" : {
"GET" : {
+ "description" : "List HA resources.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
- "additionalProperties" : 0
- },
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{group}"
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list resources of specific type",
+ "enum" : [
+ "ct",
+ "vm"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
- ],
- "type" : "array",
- "items" : {
- "properties" : {
- "group" : {
- "type" : "string"
- }
- },
- "type" : "object"
}
},
- "name" : "index",
- "method" : "GET",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get HA groups."
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "sid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{sid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
},
"POST" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "Create a new HA resource.",
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
- "type" : "object",
+ "additionalProperties" : 0,
"properties" : {
- "nofailback" : {
- "type" : "boolean",
- "default" : 0,
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
"optional" : 1,
- "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior."
+ "type" : "string"
},
- "type" : {
- "description" : "Group type.",
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
"optional" : 1,
- "enum" : [
- "group"
- ],
"type" : "string"
},
- "restricted" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Services on unrestricted groups may run on any cluster members if all group members are offline. But they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with one member.",
- "optional" : 1
+ "max_relocate" : {
+ "default" : 1,
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
- "nodes" : {
- "format" : "pve-ha-group-node-list",
+ "max_restart" : {
+ "default" : 1,
+ "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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",
- "description" : "List of cluster node names with optional priority. We use priority '0' as default. The CRM tries to run services on the node with highest priority (also see option 'nofailback').",
- "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
- "optional" : 0
+ "typetext" : "<type>:<name>"
},
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
+ "state" : {
+ "default" : "enabled",
+ "description" : "Resource state.",
+ "enum" : [
+ "enabled",
+ "disabled"
+ ],
+ "optional" : 1,
"type" : "string"
},
- "comment" : {
- "maxLength" : 4096,
- "description" : "Description.",
+ "type" : {
+ "description" : "Resource type.",
+ "enum" : [
+ "ct",
+ "vm"
+ ],
"optional" : 1,
"type" : "string"
}
},
- "additionalProperties" : 0
+ "type" : "object"
},
- "method" : "POST",
- "name" : "create",
- "protected" : 1,
- "description" : "Create a new HA group.",
"permissions" : {
"check" : [
"perm",
"Sys.Console"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/cluster/ha/groups",
- "text" : "groups",
- "leaf" : 0
+ "leaf" : 0,
+ "path" : "/cluster/ha/resources",
+ "text" : "resources"
},
{
- "text" : "status",
- "leaf" : 0,
"children" : [
{
- "text" : "current",
- "leaf" : 1,
- "path" : "/cluster/ha/status/current",
"info" : {
- "GET" : {
- "returns" : {
- "type" : "array"
- },
+ "DELETE" : {
+ "description" : "Delete ha group configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
"parameters" : {
- "additionalProperties" : 0
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
},
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read ha group configuration.",
"method" : "GET",
- "name" : "status",
- "description" : "Get HA manger status.",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"Sys.Audit"
]
]
+ },
+ "returns" : {}
+ },
+ "PUT" : {
+ "description" : "Update ha group configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "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" : 1,
+ "type" : "string"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "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').",
+ "format" : "pve-ha-group-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*"
+ },
+ "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"
+ },
+ "restricted" : {
+ "default" : 0,
+ "description" : "Services on unrestricted groups may run on any cluster members if all group members are offline. But they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with one member.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/groups/{group}",
+ "text" : "{group}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Get HA groups.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "group" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{group}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
+ "POST" : {
+ "description" : "Create a new HA group.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "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').",
+ "format" : "pve-ha-group-node-list",
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*"
+ },
+ "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"
+ },
+ "restricted" : {
+ "default" : 0,
+ "description" : "Services on unrestricted groups may run on any cluster members if all group members are offline. But they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with one member.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "type" : {
+ "description" : "Group type.",
+ "enum" : [
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha/groups",
+ "text" : "groups"
+ },
+ {
+ "children" : [
{
"info" : {
"GET" : {
+ "description" : "Get HA manger status.",
"method" : "GET",
- "name" : "manager_status",
+ "name" : "status",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
"returns" : {
- "type" : "object"
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/status/current",
+ "text" : "current"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get full HA manger status, including LRM status.",
+ "method" : "GET",
+ "name" : "manager_status",
+ "parameters" : {
+ "additionalProperties" : 0
},
"permissions" : {
"check" : [
]
]
},
- "description" : "Get full HA manger status, including LRM status."
+ "returns" : {
+ "type" : "object"
+ }
}
},
- "path" : "/cluster/ha/status/manager_status",
"leaf" : 1,
+ "path" : "/cluster/ha/status/manager_status",
"text" : "manager_status"
}
],
- "path" : "/cluster/ha/status",
"info" : {
"GET" : {
"description" : "Directory index.",
- "permissions" : {
- "user" : "all"
- },
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "array",
"items" : {
"properties" : {},
"type" : "object"
},
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{name}",
+ "rel" : "child"
}
- ]
- },
- "name" : "index",
- "method" : "GET"
+ ],
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha/status",
+ "text" : "status"
}
],
+ "info" : {
+ "GET" : {
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
"leaf" : 0,
+ "path" : "/cluster/ha",
"text" : "ha"
},
{
- "text" : "log",
- "leaf" : 1,
- "path" : "/cluster/log",
"info" : {
"GET" : {
- "name" : "log",
+ "description" : "Read cluster log",
"method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
- },
+ "name" : "log",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"max" : {
"description" : "Maximum number of entries.",
- "optional" : 1,
"minimum" : 1,
+ "optional" : 1,
"type" : "integer"
}
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "user" : "all"
+ }
},
- "description" : "Read cluster log"
- }
- }
- },
- {
- "path" : "/cluster/resources",
- "info" : {
- "GET" : {
"permissions" : {
"user" : "all"
},
- "description" : "Resources index (cluster wide).",
"returns" : {
"items" : {
"properties" : {},
"type" : "object"
},
"type" : "array"
- },
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/log",
+ "text" : "log"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Resources index (cluster wide).",
+ "method" : "GET",
+ "name" : "resources",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
}
}
},
- "name" : "resources",
- "method" : "GET"
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
- "text" : "resources",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/cluster/resources",
+ "text" : "resources"
},
{
- "text" : "tasks",
- "leaf" : 1,
"info" : {
"GET" : {
+ "description" : "List recent tasks (cluster wide).",
+ "method" : "GET",
+ "name" : "tasks",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
"items" : {
"properties" : {
"type" : "object"
},
"type" : "array"
- },
- "method" : "GET",
- "name" : "tasks",
- "permissions" : {
- "user" : "all"
- },
- "description" : "List recent tasks (cluster wide)."
+ }
}
},
- "path" : "/cluster/tasks"
+ "leaf" : 1,
+ "path" : "/cluster/tasks",
+ "text" : "tasks"
},
{
- "leaf" : 1,
- "text" : "options",
- "path" : "/cluster/options",
"info" : {
- "PUT" : {
- "returns" : {
- "type" : "null"
+ "GET" : {
+ "description" : "Get datacenter options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
+ "returns" : {
+ "properties" : {},
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Set datacenter options.",
+ "method" : "PUT",
+ "name" : "set_options",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "email_from" : {
- "type" : "string",
- "format" : "email-opt",
- "description" : "Specify email address to send notification from (default is root@$hostname)",
- "optional" : 1
- },
"console" : {
- "type" : "string",
"description" : "Select the default Console viewer. You can either use the builtin java applet (VNC), an external virt-viewer comtatible application (SPICE), or an HTML5 based viewer (noVNC).",
- "optional" : 1,
"enum" : [
"applet",
"vv",
"html5"
- ]
- },
- "keyboard" : {
- "enum" : [
- "en-gb",
- "de-ch",
- "en-us",
- "mk",
- "fr-be",
- "de",
- "pt-br",
- "sv",
- "fr-ch",
- "no",
- "pt",
- "hu",
- "sl",
- "lt",
- "fi",
- "it",
- "nl",
- "is",
- "da",
- "fr-ca",
- "pl",
- "fr",
- "es",
- "ja",
- "tr"
],
- "description" : "Default keybord layout for vnc server.",
"optional" : 1,
"type" : "string"
},
- "migration_unsecure" : {
- "description" : "Migration is secure using SSH tunnel by default. For secure private networks you can disable it to speed up migration.",
- "optional" : 1,
- "type" : "boolean"
- },
- "max_workers" : {
- "minimum" : 1,
- "type" : "integer",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"optional" : 1,
- "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager."
+ "type" : "string"
},
- "http_proxy" : {
- "pattern" : "http://.*",
- "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
+ "email_from" : {
+ "description" : "Specify email address to send notification from (default is root@$hostname)",
+ "format" : "email-opt",
"optional" : 1,
"type" : "string"
},
"fencing" : {
- "type" : "string",
"default" : "watchdog",
"description" : "Set the fencing mode of the HA cluster. Hardware mode needs a valid configuration of fence devices in /etc/pve/ha/fence.cfg. With both all two modes are used.\n\nWARNING: 'hardware' and 'both' are EXPERIMENTAL & WIP",
- "optional" : 1,
"enum" : [
"watchdog",
"hardware",
"both"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "language" : {
+ "http_proxy" : {
+ "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
+ "optional" : 1,
+ "pattern" : "http://.*",
+ "type" : "string"
+ },
+ "keyboard" : {
+ "description" : "Default keybord layout for vnc server.",
+ "enum" : [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
"optional" : 1,
+ "type" : "string"
+ },
+ "language" : {
"description" : "Default GUI language.",
"enum" : [
"en",
"de"
],
+ "optional" : 1,
"type" : "string"
},
- "delete" : {
- "description" : "A list of settings you want to delete.",
+ "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" : "string",
- "format" : "pve-configid-list"
+ "type" : "integer"
+ },
+ "migration_unsecure" : {
+ "description" : "Migration is secure using SSH tunnel by default. For secure private networks you can disable it to speed up migration.",
+ "optional" : 1,
+ "type" : "boolean"
}
}
},
- "method" : "PUT",
- "name" : "set_options",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Set datacenter options."
- },
- "GET" : {
- "method" : "GET",
- "name" : "get_options",
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/options",
+ "text" : "options"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Get cluster status informations.",
+ "method" : "GET",
+ "name" : "get_status",
"parameters" : {
"additionalProperties" : 0
},
- "returns" : {
- "type" : "object",
- "properties" : {}
- },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get datacenter options."
- }
- }
- },
- {
- "leaf" : 1,
- "text" : "status",
- "info" : {
- "GET" : {
+ "protected" : 1,
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
"type" : {
"type" : "string"
}
- }
- }
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "get_status",
- "method" : "GET",
- "protected" : 1,
- "description" : "Get cluster status informations.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
- "path" : "/cluster/status"
+ "leaf" : 1,
+ "path" : "/cluster/status",
+ "text" : "status"
},
{
- "path" : "/cluster/nextid",
"info" : {
"GET" : {
- "permissions" : {
- "user" : "all"
- },
"description" : "Get next free VMID. If you pass an VMID it will raise an error if the ID is already used.",
+ "method" : "GET",
+ "name" : "nextid",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
"description" : "The (unique) ID of the VM.",
- "optional" : 1
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
}
}
},
- "returns" : {
- "type" : "integer",
- "description" : "The next free VMID."
+ "permissions" : {
+ "user" : "all"
},
- "name" : "nextid",
- "method" : "GET"
+ "returns" : {
+ "description" : "The next free VMID.",
+ "type" : "integer"
+ }
}
},
- "text" : "nextid",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/cluster/nextid",
+ "text" : "nextid"
}
],
- "path" : "/cluster",
"info" : {
"GET" : {
+ "description" : "Cluster index.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "array",
"items" : {
"properties" : {},
"type" : "object"
"href" : "{name}",
"rel" : "child"
}
- ]
- },
- "method" : "GET",
- "name" : "index",
- "description" : "Cluster index.",
- "permissions" : {
- "user" : "all"
+ ],
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/cluster",
+ "text" : "cluster"
},
{
- "leaf" : 0,
- "text" : "nodes",
- "path" : "/nodes",
"children" : [
{
- "leaf" : 0,
- "text" : "{node}",
- "path" : "/nodes/{node}",
"children" : [
{
- "text" : "qemu",
- "leaf" : 0,
- "path" : "/nodes/{node}/qemu",
"children" : [
{
- "path" : "/nodes/{node}/qemu/{vmid}",
- "info" : {
- "DELETE" : {
- "description" : "Destroy the vm (also delete all used/owned volumes).",
- "returns" : {
- "type" : "string"
- },
- "method" : "DELETE",
- "name" : "destroy_vm",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Allocate"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "skiplock" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option."
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- }
- },
- "GET" : {
- "method" : "GET",
- "name" : "vmdiridx",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- }
- },
- "proxyto" : "node",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- }
- },
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
- ]
- },
- "permissions" : {
- "user" : "all"
- },
- "description" : "Directory index"
- }
- },
"children" : [
{
- "text" : "firewall",
- "leaf" : 0,
"children" : [
{
"children" : [
{
- "text" : "{pos}",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
"info" : {
"DELETE" : {
- "proxyto" : null,
+ "description" : "Delete rule.",
+ "method" : "DELETE",
+ "name" : "delete_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
},
"pos" : {
"description" : "Update rule at position <pos>.",
- "optional" : 1,
"minimum" : 0,
+ "optional" : 1,
"type" : "integer"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
},
"protected" : 1,
+ "proxyto" : null,
"returns" : {
"type" : "null"
- },
- "name" : "delete_rule",
- "method" : "DELETE",
- "description" : "Delete rule."
+ }
},
"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"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "method" : "GET",
- "name" : "get_rule",
+ "proxyto" : null,
"returns" : {
- "type" : "object",
"properties" : {
"pos" : {
"type" : "integer"
}
- }
- },
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
},
- "additionalProperties" : 0
+ "type" : "object"
}
},
"PUT" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "Modify rule data.",
"method" : "PUT",
"name" : "update_rule",
- "description" : "Modify rule data.",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "digest" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
- },
- "iface" : {
- "minLength" : 2,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "optional" : 1,
- "maxLength" : 20,
- "type" : "string",
- "format" : "pve-iface"
- },
- "source" : {
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-addr-spec"
- },
- "pos" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- },
"action" : {
- "type" : "string",
- "optional" : 1,
"description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
"maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
+ "type" : "string"
},
"comment" : {
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "dest" : {
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"optional" : 1,
- "format" : "pve-fw-addr-spec",
"type" : "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,
- "enum" : [
- "in",
- "out",
- "group"
- ],
"type" : "string"
},
- "proto" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "format" : "pve-fw-protocol-spec",
"type" : "string"
},
"dport" : {
"description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
"format" : "pve-fw-dport-spec",
+ "optional" : 1,
"type" : "string"
},
"enable" : {
- "type" : "integer",
"minimum" : 0,
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "macro" : {
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string"
},
"moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
"minimum" : 0,
- "type" : "integer",
"optional" : 1,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored."
+ "type" : "integer"
},
- "delete" : {
- "format" : "pve-configid-list",
- "type" : "string",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "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,
- "description" : "A list of settings you want to delete."
+ "type" : "string"
},
"sport" : {
"description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
"optional" : 1,
- "type" : "string",
- "format" : "pve-fw-sport-spec"
+ "type" : "string"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "type" : {
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
"type" : "string"
},
"vmid" : {
- "minimum" : 1,
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "macro" : {
- "type" : "string",
- "maxLength" : 128,
- "optional" : 1
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "proxyto" : null,
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"VM.Config.Network"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
+ "text" : "{pos}"
}
],
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
"info" : {
"GET" : {
+ "description" : "List rules.",
"method" : "GET",
"name" : "get_rules",
- "proxyto" : null,
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
},
"vmid" : {
- "minimum" : 1,
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
"pos" : {
"type" : "integer"
}
- }
+ },
+ "type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{pos}"
+ "href" : "{pos}",
+ "rel" : "child"
}
- ]
- },
- "description" : "List rules.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ ],
+ "type" : "array"
}
},
"POST" : {
+ "description" : "Create new rule.",
+ "method" : "POST",
+ "name" : "create_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
"action" : {
- "maxLength" : 20,
"description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
"optional" : 0,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
"type" : "string"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
+ "comment" : {
"optional" : 1,
- "description" : "Update rule at position <pos>."
+ "type" : "string"
},
"dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
"description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
- },
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 0,
+ "format" : "pve-fw-addr-spec",
+ "optional" : 1,
"type" : "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,
- "maxLength" : 128,
"type" : "string"
},
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "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"
},
- "proto" : {
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "enable" : {
+ "minimum" : 0,
"optional" : 1,
- "type" : "string",
- "format" : "pve-fw-protocol-spec"
+ "type" : "integer"
},
"iface" : {
- "minLength" : 2,
- "maxLength" : 20,
"description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
"optional" : 1,
- "type" : "string",
- "format" : "pve-iface"
+ "type" : "string"
},
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1
+ "macro" : {
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string"
},
- "enable" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
"minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "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.",
+ "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-dport-spec",
"type" : "string"
},
"source" : {
- "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",
"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"
},
"sport" : {
- "optional" : 1,
"description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
"format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
"type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "proxyto" : null,
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "name" : "create_rule",
- "method" : "POST",
+ "protected" : 1,
+ "proxyto" : null,
"returns" : {
"type" : "null"
- },
- "description" : "Create new rule."
+ }
}
},
"leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
"text" : "rules"
},
{
"children" : [
{
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
"info" : {
"DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
"description" : "Remove IP or Network alias.",
- "protected" : 1,
+ "method" : "DELETE",
+ "name" : "remove_alias",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
"digest" : {
- "maxLength" : 40,
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
"type" : "string"
},
"name" : {
- "minLength" : 2,
- "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"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE",
- "name" : "remove_alias"
- },
- "GET" : {
- "description" : "Read alias.",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.Config.Network"
]
]
},
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read alias.",
+ "method" : "GET",
+ "name" : "read_alias",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "name" : {
- "maxLength" : 64,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "object"
+ }
},
- "name" : "read_alias",
- "method" : "GET"
- },
- "PUT" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Config.Network"
+ "VM.Audit"
]
]
},
- "description" : "Update IP or Network alias.",
"returns" : {
- "type" : "null"
- },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "comment" : {
+ "optional" : 1,
"type" : "string"
},
"digest" : {
"optional" : 1,
"type" : "string"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDR"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
"rename" : {
"description" : "Rename an existing alias.",
- "optional" : 1,
"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"
}
}
},
- "name" : "update_alias",
- "method" : "PUT"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
"text" : "{name}"
}
],
"info" : {
- "POST" : {
- "returns" : {
- "type" : "null"
- },
+ "GET" : {
+ "description" : "List aliases",
+ "method" : "GET",
+ "name" : "get_aliases",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
- },
- "comment" : {
- "optional" : 1,
"type" : "string"
},
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDR",
- "description" : "Network/IP specification in CIDR format."
- },
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "minimum" : 1,
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer"
- },
- "name" : {
- "maxLength" : 64,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "create_alias",
- "method" : "POST",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Config.Network"
+ "VM.Audit"
]
]
},
- "description" : "Create IP or Network Alias."
- },
- "GET" : {
- "name" : "get_aliases",
- "method" : "GET",
"returns" : {
"items" : {
"properties" : {
- "name" : {
+ "cidr" : {
"type" : "string"
},
"comment" : {
- "type" : "string",
- "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.",
+ "maxLength" : 40,
"optional" : 0,
"type" : "string"
},
- "cidr" : {
+ "name" : {
"type" : "string"
}
},
"type" : "object"
},
- "type" : "array",
"links" : [
{
"href" : "{name}",
"rel" : "child"
}
- ]
- },
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create IP or Network Alias.",
+ "method" : "POST",
+ "name" : "create_alias",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "List aliases",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.Config.Network"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
"leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
"text" : "aliases"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
"children" : [
{
- "leaf" : 0,
- "text" : "{name}",
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
"children" : [
{
- "text" : "{cidr}",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
"info" : {
- "PUT" : {
- "name" : "update_ip",
- "method" : "PUT",
+ "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"
+ },
+ "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"
+ },
"name" : {
- "maxLength" : 64,
"description" : "IP set name.",
+ "maxLength" : 64,
"minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "cidr" : {
- "format" : "IPorCIDRorAlias",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
},
- "digest" : {
- "optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "returns" : {
- "type" : "null"
- },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Update IP or Network settings",
- "protected" : 1
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
},
"GET" : {
- "name" : "read_ip",
+ "description" : "Read IP or Network settings from IPSet.",
"method" : "GET",
- "returns" : {
- "type" : "object"
- },
+ "name" : "read_ip",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string"
},
"name" : {
- "maxLength" : 64,
"description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "maxLength" : 64,
"minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
"type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
- "description" : "Read IP or Network settings from IPSet.",
"permissions" : {
"check" : [
"perm",
"VM.Audit"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
}
},
- "DELETE" : {
- "returns" : {
- "type" : "null"
- },
+ "PUT" : {
+ "description" : "Update IP or Network settings",
+ "method" : "PUT",
+ "name" : "update_ip",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "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" : 1,
+ "type" : "string"
},
"name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
"minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "IP set name.",
"type" : "string"
},
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
},
- "digest" : {
+ "nomatch" : {
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "type" : "string"
+ "type" : "boolean"
},
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
- "type" : "string"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "DELETE",
- "name" : "remove_ip",
- "protected" : 1,
- "description" : "Remove IP or Network from IPSet.",
"permissions" : {
"check" : [
"perm",
"VM.Config.Network"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
+ "text" : "{cidr}"
}
],
"info" : {
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Add IP or Network to IPSet.",
- "protected" : 1,
- "name" : "create_ip",
- "method" : "POST",
+ "DELETE" : {
+ "description" : "Delete IPSet",
+ "method" : "DELETE",
+ "name" : "delete_ipset",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDRorAlias"
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- },
- "comment" : {
- "optional" : 1,
"type" : "string"
},
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "IP set name."
- },
"vmid" : {
- "minimum" : 1,
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "returns" : {
- "type" : "null"
- }
- },
- "DELETE" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Delete IPSet",
- "method" : "DELETE",
- "name" : "delete_ipset",
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
+ }
+ },
+ "GET" : {
+ "description" : "List IPSet content",
+ "method" : "GET",
+ "name" : "get_ipset",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
"name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"description" : "IP set name.",
"maxLength" : 64,
+ "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."
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
- }
- },
- "GET" : {
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
"returns" : {
- "links" : [
- {
- "href" : "{cidr}",
- "rel" : "child"
- }
- ],
"items" : {
"properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
"comment" : {
"optional" : 1,
"type" : "string"
},
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
- },
"digest" : {
- "maxLength" : 40,
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 0,
"type" : "string"
},
- "cidr" : {
- "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" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
},
"name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"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"
},
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "method" : "GET",
- "name" : "get_ipset",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.Config.Network"
]
]
},
- "description" : "List IPSet content"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
+ "text" : "{name}"
}
],
"info" : {
- "POST" : {
- "name" : "create_ipset",
- "method" : "POST",
- "returns" : {
- "type" : "null"
- },
+ "GET" : {
+ "description" : "List IPSets",
+ "method" : "GET",
+ "name" : "ipset_index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "maxLength" : 64
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "rename" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Config.Network"
+ "VM.Audit"
]
]
},
- "description" : "Create new IPSet"
- },
- "GET" : {
- "method" : "GET",
- "name" : "ipset_index",
"returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
"items" : {
- "type" : "object",
"properties" : {
- "name" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "description" : "IP set name.",
- "maxLength" : 64
+ "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"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
- }
+ },
+ "type" : "object"
},
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
- },
+ }
+ },
+ "POST" : {
+ "description" : "Create new IPSet",
+ "method" : "POST",
+ "name" : "create_ipset",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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"
+ },
+ "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"
},
+ "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.",
- "minimum" : 1,
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.Config.Network"
]
]
},
- "description" : "List IPSets"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
"leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
"text" : "ipset"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
"info" : {
"GET" : {
"description" : "Get VM firewall options.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "proxyto" : "node",
+ "method" : "GET",
+ "name" : "get_options",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "minimum" : 1,
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
"returns" : {
"properties" : {
- "radv" : {
- "description" : "Allow sending Router Advertisement.",
+ "dhcp" : {
+ "description" : "Enable DHCP.",
"optional" : 1,
"type" : "boolean"
},
- "log_level_out" : {
- "description" : "Log level for outgoing traffic.",
+ "enable" : {
+ "description" : "Enable/disable firewall rules.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ipfilter" : {
+ "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
"optional" : 1,
+ "type" : "boolean"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
+ "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.",
"optional" : 1,
"type" : "string"
},
- "enable" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable firewall rules."
- },
- "dhcp" : {
- "type" : "boolean",
+ "macfilter" : {
+ "description" : "Enable/disable MAC address filter.",
"optional" : 1,
- "description" : "Enable DHCP."
+ "type" : "boolean"
},
"ndp" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable NDP."
- },
- "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."
- },
- "macfilter" : {
+ "description" : "Enable NDP.",
"optional" : 1,
- "description" : "Enable/disable MAC address filter.",
"type" : "boolean"
},
"policy_in" : {
- "type" : "string",
- "optional" : 1,
"description" : "Input policy.",
"enum" : [
"ACCEPT",
"REJECT",
"DROP"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
},
"policy_out" : {
- "type" : "string",
"description" : "Output policy.",
- "optional" : 1,
"enum" : [
"ACCEPT",
"REJECT",
"DROP"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
+ "optional" : 1,
+ "type" : "boolean"
}
},
"type" : "object"
- },
- "method" : "GET",
- "name" : "get_options"
+ }
},
"PUT" : {
+ "description" : "Set Firewall options.",
"method" : "PUT",
"name" : "set_options",
- "returns" : {
- "type" : "null"
- },
- "description" : "Set Firewall options.",
- "proxyto" : "node",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "log_level_out" : {
- "type" : "string",
- "description" : "Log level for outgoing traffic.",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"optional" : 1,
- "enum" : [
+ "type" : "string"
+ },
+ "dhcp" : {
+ "description" : "Enable DHCP.",
+ "optional" : 1,
+ "type" : "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"
+ },
+ "enable" : {
+ "description" : "Enable/disable firewall rules.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ipfilter" : {
+ "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
"emerg",
"alert",
"crit",
"info",
"debug",
"nolog"
- ]
- },
- "delete" : {
- "format" : "pve-configid-list",
- "type" : "string",
+ ],
"optional" : 1,
- "description" : "A list of settings you want to delete."
- },
- "radv" : {
- "type" : "boolean",
- "description" : "Allow sending Router Advertisement.",
- "optional" : 1
+ "type" : "string"
},
- "log_level_in" : {
- "type" : "string",
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "description" : "Log level for incoming traffic.",
- "optional" : 1
- },
- "enable" : {
- "type" : "boolean",
"optional" : 1,
- "description" : "Enable/disable firewall rules."
- },
- "digest" : {
- "optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"type" : "string"
},
"macfilter" : {
- "type" : "boolean",
"description" : "Enable/disable MAC address filter.",
- "optional" : 1
- },
- "policy_in" : {
- "type" : "string",
- "description" : "Input policy.",
"optional" : 1,
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- },
- "dhcp" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable DHCP."
+ "type" : "boolean"
},
"ndp" : {
- "optional" : 1,
"description" : "Enable NDP.",
- "type" : "boolean"
- },
- "ipfilter" : {
"optional" : 1,
- "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
"type" : "boolean"
},
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
},
- "policy_out" : {
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
"optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
"description" : "Output policy.",
"enum" : [
"ACCEPT",
"REJECT",
"DROP"
],
+ "optional" : 1,
"type" : "string"
+ },
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"VM.Config.Network"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
- "text" : "options",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
+ "text" : "options"
},
{
- "leaf" : 1,
- "text" : "log",
"info" : {
"GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "n" : {
- "description" : "Line number",
- "type" : "integer"
- },
- "t" : {
- "type" : "string",
- "description" : "Line text"
- }
- },
- "type" : "object"
- }
- },
+ "description" : "Read firewall log",
"method" : "GET",
"name" : "log",
- "description" : "Read firewall log",
- "proxyto" : "node",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- },
- "start" : {
- "optional" : 1,
+ "limit" : {
"minimum" : 0,
+ "optional" : 1,
"type" : "integer"
},
"node" : {
"format" : "pve-node",
"type" : "string"
},
- "limit" : {
- "type" : "integer",
+ "start" : {
"minimum" : 0,
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/log"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
+ "text" : "log"
},
{
"info" : {
"GET" : {
+ "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
+ "method" : "GET",
+ "name" : "refs",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
},
"type" : {
- "type" : "string",
- "optional" : 1,
"description" : "Only list references of specified type.",
"enum" : [
"alias",
"ipset"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
},
"vmid" : {
- "minimum" : 1,
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"comment" : {
"type" : "string"
},
"type" : {
- "type" : "string",
"enum" : [
"alias",
"ipset"
- ]
+ ],
+ "type" : "string"
}
},
"type" : "object"
- }
- },
- "name" : "refs",
- "method" : "GET",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties."
+ },
+ "type" : "array"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
"leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
"text" : "refs"
}
],
- "path" : "/nodes/{node}/qemu/{vmid}/firewall",
"info" : {
"GET" : {
+ "description" : "Directory index.",
"method" : "GET",
"name" : "index",
- "returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
- },
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"type" : "string"
},
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer"
}
}
},
- "description" : "Directory index.",
"permissions" : {
"user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall",
+ "text" : "firewall"
},
{
- "text" : "rrd",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/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"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"ds" : {
+ "description" : "The list of datasources you want to display.",
"format" : "pve-configid-list",
- "type" : "string",
- "description" : "The list of datasources you want to display."
+ "type" : "string"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "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."
- },
- "cf" : {
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "description" : "The RRD consolidation function",
- "optional" : 1,
- "type" : "string"
+ "type" : "string"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- }
- }
- },
- "returns" : {
- "type" : "object",
- "properties" : {
- "filename" : {
- "type" : "string"
+ "type" : "integer"
}
}
},
- "method" : "GET",
- "name" : "rrd",
- "description" : "Read VM RRD statistics (returns PNG)",
"permissions" : {
"check" : [
"perm",
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/rrd",
+ "text" : "rrd"
},
{
"info" : {
"GET" : {
- "name" : "rrddata",
+ "description" : "Read VM RRD statistics",
"method" : "GET",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
- },
+ "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."
+ "type" : "string"
},
"timeframe" : {
- "type" : "string",
"description" : "Specify the time frame you are interested in.",
"enum" : [
"hour",
"week",
"month",
"year"
- ]
- },
- "cf" : {
- "type" : "string",
- "enum" : [
- "AVERAGE",
- "MAX"
],
- "optional" : 1,
- "description" : "The RRD consolidation function"
+ "type" : "string"
},
"vmid" : {
- "minimum" : 1,
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Read VM RRD statistics"
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
"leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
"text" : "rrddata"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/config",
"info" : {
- "PUT" : {
+ "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"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
"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"
+ ]
]
},
- "protected" : 1,
"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" : {
- "lock" : {
- "type" : "string",
- "description" : "Lock/unlock the VM.",
+ "acpi" : {
+ "default" : 1,
+ "description" : "Enable/disable ACPI.",
"optional" : 1,
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ]
+ "type" : "boolean"
},
- "numa" : {
+ "agent" : {
"default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable NUMA.",
- "optional" : 1
+ "description" : "Enable/disable Qemu GuestAgent.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "virtio[n]" : {
- "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
+ "args" : {
+ "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "background_delay" : {
+ "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
+ "maximum" : 30,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bios" : {
+ "default" : "seabios",
+ "description" : "Select BIOS implementation.",
+ "enum" : [
+ "seabios",
+ "ovmf"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "boot" : {
+ "default" : "cdn",
+ "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+ "optional" : 1,
+ "pattern" : "[acdn]{1,4}",
+ "type" : "string"
+ },
+ "bootdisk" : {
+ "description" : "Enable booting from specified disk.",
+ "format" : "pve-qm-bootdisk",
+ "optional" : 1,
+ "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "type" : "string"
+ },
+ "cdrom" : {
+ "description" : "This is an alias for option -ide2",
+ "format" : "pve-qm-drive",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "volume"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
"optional" : 1,
+ "type" : "integer"
+ },
+ "cpu" : {
+ "description" : "Emulated CPU type.",
"format" : {
- "mbps_wr" : {
- "type" : "number",
- "description" : "Maximum write speed speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps"
- },
- "cyls" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "format_description" : "count",
- "optional" : 1
- },
- "secs" : {
- "format_description" : "count",
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "type" : "integer"
- },
- "heads" : {
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count",
- "type" : "integer"
- },
- "mbps_rd" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "backup" : {
- "optional" : 1,
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off",
- "type" : "boolean"
- },
- "bps_rd" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
- },
- "format" : {
+ "cputype" : {
+ "default" : "kvm64",
+ "default_key" : 1,
+ "description" : "Emulated CPU type.",
"enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
+ "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"
],
- "optional" : 1,
- "description" : "The drive's backing file's data format.",
- "format_description" : "drive format",
+ "format_description" : "cputype",
"type" : "string"
},
- "media" : {
+ "hidden" : {
+ "default" : 0,
+ "description" : "Do not identify as a KVM virtual machine.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number"
+ },
+ "cpuunits" : {
+ "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.",
+ "maximum" : 500000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "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",
+ "format" : "pve-qm-hostpci",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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"
+ },
+ "ide[n]" : {
+ "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
"enum" : [
- "cdrom",
- "disk"
+ "native",
+ "threads"
],
- "format_description" : "cdrom|disk",
+ "format_description" : "native|threads",
"optional" : 1,
- "description" : "The drive's media type.",
- "default" : "disk",
"type" : "string"
},
- "detect_zeroes" : {
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "format_description" : "on|off",
"optional" : 1,
"type" : "boolean"
},
- "iops_wr" : {
+ "bps" : {
+ "description" : "Maximum r/w speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops",
"type" : "integer"
},
- "mbps_max" : {
- "type" : "number",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "bps_rd" : {
+ "description" : "Maximum read speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "integer"
},
- "serial" : {
- "type" : "string",
- "format" : "urlencoded",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "maxLength" : 60
+ "type" : "integer"
},
- "discard" : {
- "format_description" : "ignore|on",
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "format_description" : "none|writethrough|writeback|unsafe|directsync",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "format_description" : "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"
],
+ "format_description" : "ignore|on",
+ "optional" : 1,
"type" : "string"
},
"file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
"default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
"format_description" : "volume",
- "description" : "The drive's backing volume."
+ "type" : "string"
},
- "mbps" : {
- "description" : "Maximum r/w speed speed in megabytes per second.",
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "format_description" : "drive format",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "string"
},
- "bps_wr" : {
- "type" : "integer",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "format_description" : "count",
"optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second."
+ "type" : "integer"
},
"iops" : {
- "type" : "integer",
- "optional" : 1,
"description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops"
- },
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
+ "format_description" : "iops",
"optional" : 1,
- "format" : "disk-size",
- "type" : "string"
+ "type" : "integer"
},
- "iothread" : {
- "format_description" : "off|on",
- "description" : "Whether to use iothreads for this drive",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "type" : "boolean"
+ "type" : "integer"
},
- "iops_wr_max" : {
- "type" : "integer",
- "optional" : 1,
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
"format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second."
- },
- "mbps_rd_max" : {
- "type" : "number",
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "aio" : {
- "enum" : [
- "native",
- "threads"
- ],
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "type" : "string"
+ "type" : "integer"
},
- "iops_max" : {
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "iops_wr" : {
+ "description" : "Maximum write I/O speed in operations per second.",
"format_description" : "iops",
"optional" : 1,
"type" : "integer"
},
- "bps" : {
- "format_description" : "bps",
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second.",
"type" : "integer"
},
- "mbps_wr_max" : {
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
"format_description" : "mbps",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
"optional" : 1,
"type" : "number"
},
- "cache" : {
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
],
+ "format_description" : "cdrom|disk",
"optional" : 1,
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
"type" : "string"
},
- "snapshot" : {
- "type" : "boolean",
+ "model" : {
+ "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "model",
+ "maxLength" : 120,
"optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots."
+ "type" : "string"
},
"rerror" : {
- "type" : "string",
- "optional" : 1,
"description" : "Read error action.",
- "format_description" : "ignore|report|stop",
"enum" : [
"ignore",
"report",
"stop"
- ]
+ ],
+ "format_description" : "ignore|report|stop",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "format_description" : "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",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "format_description" : "on|off",
+ "optional" : 1,
+ "type" : "boolean"
},
"trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
],
"format_description" : "none|lba|auto",
"optional" : 1,
- "description" : "Force disk geometry bios translation mode.",
"type" : "string"
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "optional" : 1,
- "format_description" : "iops",
- "type" : "integer"
- },
"volume" : {
"alias" : "file"
},
"werror" : {
- "optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
"description" : "Write error action.",
"enum" : [
"enospc",
"report",
"stop"
],
- "type" : "string"
- },
- "iops_rd" : {
- "type" : "integer",
- "description" : "Maximum read I/O speed in operations per second.",
+ "format_description" : "enospc|ignore|report|stop",
"optional" : 1,
- "format_description" : "iops"
+ "type" : "string"
}
},
+ "optional" : 1,
"type" : "string"
},
- "bios" : {
- "type" : "string",
- "default" : "seabios",
- "optional" : 1,
- "description" : "Select BIOS implementation.",
+ "keyboard" : {
+ "default" : "en-us",
+ "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
"enum" : [
- "seabios",
- "ovmf"
- ]
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "agent" : {
+ "kvm" : {
+ "default" : 1,
+ "description" : "Enable/disable KVM hardware virtualization.",
"optional" : 1,
- "description" : "Enable/disable Qemu GuestAgent.",
- "default" : 0,
"type" : "boolean"
},
- "parallel[n]" : {
+ "localtime" : {
+ "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
"optional" : 1,
- "description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
- "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
- "type" : "string"
+ "type" : "boolean"
},
- "tablet" : {
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "migrate",
+ "backup",
+ "snapshot",
+ "rollback"
+ ],
"optional" : 1,
- "description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl).",
- "type" : "boolean",
- "default" : 1
+ "type" : "string"
},
- "smp" : {
+ "machine" : {
+ "description" : "Specific the Qemu machine type.",
+ "maxLength" : 40,
"optional" : 1,
- "description" : "The number of CPUs. Please use option -sockets instead.",
- "minimum" : 1,
- "type" : "integer",
- "default" : 1
+ "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
+ "type" : "string"
},
- "usb[n]" : {
- "format" : {
- "usb3" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Specifies whether if given host option is a USB3 device or port",
- "format_description" : "yes|no"
- },
- "host" : {
- "description" : "The Host USB device or port or the value spice",
- "format_description" : "HOSTUSBDEVICE|spice",
- "default_key" : 1,
- "format" : "pve-qm-usb-device",
- "type" : "string"
- }
- },
- "type" : "string",
- "description" : "Configure an USB device (n is 0 to 4). This can be used to\npass-through usb devices to the guest. HOSTUSBDEVICE syntax is:\n\n'bus-port(.port)*' (decimal numbers) or\n'vendor_id:product_id' (hexadeciaml numbers) or\n'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nThe 'usb3' option determines whether the device is a USB3 device or not (this does currently not work reliably with spice redirection and is then ignored).\n\n",
- "optional" : 1
+ "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"
},
- "tdf" : {
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Enable/disable time drift fix.",
- "default" : 0,
- "type" : "boolean"
+ "type" : "number"
},
- "cdrom" : {
- "format" : "pve-qm-drive",
- "type" : "string",
+ "migrate_speed" : {
+ "default" : 0,
+ "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "This is an alias for option -ide2",
- "typetext" : "volume"
+ "type" : "integer"
},
- "sockets" : {
- "type" : "integer",
- "default" : 1,
- "minimum" : 1,
+ "name" : {
+ "description" : "Set a name for the VM. Only used on the configuration web interface.",
+ "format" : "dns-name",
"optional" : 1,
- "description" : "The number of CPU sockets."
+ "type" : "string"
},
- "serial[n]" : {
- "description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0), or create a unix socket on the host side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
+ "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",
+ "format" : "pve-qm-net",
"optional" : 1,
- "pattern" : "(/dev/.+|socket)",
"type" : "string"
},
- "ide[n]" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "numa" : {
+ "default" : 0,
+ "description" : "Enable/disable NUMA.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "numa[n]" : {
+ "description" : "numa topology",
"format" : {
- "mbps_wr_max" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "cpus" : {
+ "description" : "CPUs accessing this numa node.",
+ "format_description" : "id[-id];...",
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
},
- "bps" : {
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
+ "hostnodes" : {
+ "description" : "host numa nodes to use",
+ "format_description" : "id[-id];...",
"optional" : 1,
- "type" : "integer"
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
},
- "snapshot" : {
- "type" : "boolean",
+ "memory" : {
+ "description" : "Amount of memory this numa node provides.",
+ "format_description" : "mb",
"optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots."
+ "type" : "number"
},
- "cache" : {
- "type" : "string",
+ "policy" : {
+ "description" : "numa allocation policy.",
"enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
+ "preferred",
+ "bind",
+ "interleave"
],
+ "format_description" : "preferred|bind|interleave",
"optional" : 1,
- "description" : "The drive's cache mode",
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
- },
- "werror" : {
- "type" : "string",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ostype" : {
+ "description" : "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",
+ "enum" : [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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",
+ "optional" : 1,
+ "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
+ "type" : "string"
+ },
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the VM. This will prevent the remove operation.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "reboot" : {
+ "default" : 1,
+ "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "revert" : {
+ "description" : "Revert a pending change.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "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" : [
- "enospc",
- "ignore",
- "report",
- "stop"
+ "native",
+ "threads"
],
- "description" : "Write error action.",
+ "format_description" : "native|threads",
"optional" : 1,
- "format_description" : "enospc|ignore|report|stop"
+ "type" : "string"
},
- "iops_rd" : {
- "type" : "integer",
- "format_description" : "iops",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "format_description" : "on|off",
"optional" : 1,
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "boolean"
},
- "rerror" : {
- "type" : "string",
+ "bps" : {
+ "description" : "Maximum r/w speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Read error action.",
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ]
+ "type" : "integer"
},
- "trans" : {
- "type" : "string",
+ "bps_rd" : {
+ "description" : "Maximum read speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
- "enum" : [
- "none",
- "lba",
- "auto"
- ]
- },
- "volume" : {
- "alias" : "file"
+ "type" : "integer"
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "iops",
"type" : "integer"
},
- "mbps" : {
- "format_description" : "mbps",
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "format_description" : "none|writethrough|writeback|unsafe|directsync",
"optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "type" : "number"
+ "type" : "string"
},
- "bps_wr" : {
- "type" : "integer",
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps",
- "optional" : 1
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "format_description" : "count",
+ "optional" : 1,
+ "type" : "integer"
},
- "iops" : {
- "type" : "integer",
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "format_description" : "iops"
+ "type" : "boolean"
},
"discard" : {
- "type" : "string",
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"enum" : [
"ignore",
"on"
],
- "optional" : 1,
"format_description" : "ignore|on",
- "description" : "Controls whether to pass discard/trim requests to the underlying storage."
- },
- "serial" : {
- "maxLength" : 60,
"optional" : 1,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
- "format" : "urlencoded",
"type" : "string"
},
- "mbps_max" : {
- "type" : "number",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps"
- },
"file" : {
- "format_description" : "volume",
- "description" : "The drive's backing volume.",
"default_key" : 1,
+ "description" : "The drive's backing volume.",
"format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
"type" : "string"
},
- "mbps_rd_max" : {
- "optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number"
- },
- "aio" : {
- "type" : "string",
+ "format" : {
+ "description" : "The drive's backing file's data format.",
"enum" : [
- "native",
- "threads"
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
],
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
- "optional" : 1
+ "format_description" : "drive format",
+ "optional" : 1,
+ "type" : "string"
},
- "iops_max" : {
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "format_description" : "count",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops",
"type" : "integer"
},
- "size" : {
- "format" : "disk-size",
- "type" : "string",
+ "iops" : {
+ "description" : "Maximum r/w I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
+ "type" : "integer"
},
- "iops_wr_max" : {
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
"format_description" : "iops",
+ "optional" : 1,
"type" : "integer"
},
- "bps_rd" : {
- "type" : "integer",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "integer"
},
- "backup" : {
+ "iops_wr" : {
+ "description" : "Maximum write I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off",
- "type" : "boolean"
+ "type" : "integer"
},
- "model" : {
- "type" : "string",
- "format" : "urlencoded",
- "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "maxLength" : 120,
- "format_description" : "model"
+ "type" : "integer"
},
- "media" : {
- "format_description" : "cdrom|disk",
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "type" : "string",
- "default" : "disk"
+ "type" : "number"
},
- "detect_zeroes" : {
- "type" : "boolean",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "type" : "number"
},
- "iops_wr" : {
- "type" : "integer",
+ "mbps_rd" : {
+ "description" : "Maximum read speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "number"
},
- "format" : {
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
"enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
+ "cdrom",
+ "disk"
+ ],
+ "format_description" : "cdrom|disk",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
],
+ "format_description" : "ignore|report|stop",
"optional" : 1,
- "description" : "The drive's backing file's data format.",
- "format_description" : "drive format",
"type" : "string"
},
- "cyls" : {
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"format_description" : "count",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"type" : "integer"
},
- "mbps_wr" : {
- "type" : "number",
- "format_description" : "mbps",
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
"optional" : 1,
- "description" : "Maximum write speed speed in megabytes per second."
+ "type" : "string"
},
- "heads" : {
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count",
- "type" : "integer"
+ "type" : "string"
},
- "mbps_rd" : {
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "format_description" : "on|off",
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "boolean"
},
- "secs" : {
- "type" : "integer",
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "format_description" : "none|lba|auto",
"optional" : 1,
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count."
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "format_description" : "enospc|ignore|report|stop",
+ "optional" : 1,
+ "type" : "string"
}
},
- "type" : "string",
- "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
- "optional" : 1
- },
- "cpuunits" : {
- "default" : 1000,
- "maximum" : 500000,
- "type" : "integer",
- "minimum" : 0,
- "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
- "optional" : 1
- },
- "cpulimit" : {
- "minimum" : 0,
- "maximum" : 128,
- "type" : "number",
- "default" : 0,
- "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit.",
- "optional" : 1
- },
- "args" : {
- "type" : "string",
- "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
- "optional" : 1
- },
- "protection" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Sets the protection flag of the VM. This will prevent the remove operation.",
- "optional" : 1
- },
- "machine" : {
- "type" : "string",
- "optional" : 1,
- "maxLength" : 40,
- "description" : "Specific the Qemu machine type.",
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)"
- },
- "reboot" : {
- "default" : 1,
- "type" : "boolean",
- "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
- "optional" : 1
- },
- "hotplug" : {
- "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
"optional" : 1,
- "format" : "pve-hotplug-features",
- "default" : "network,disk,usb",
"type" : "string"
},
- "migrate_speed" : {
- "optional" : 1,
- "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
- "type" : "integer",
- "default" : 0,
- "minimum" : 0
- },
- "sata[n]" : {
+ "scsi[n]" : {
+ "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
"format" : {
- "secs" : {
- "type" : "integer",
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "optional" : 1
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
+ "format_description" : "native|threads",
+ "optional" : 1,
+ "type" : "string"
},
- "mbps_rd" : {
- "type" : "number",
- "description" : "Maximum read speed speed in megabytes per second.",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "format_description" : "on|off",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "boolean"
},
- "heads" : {
- "format_description" : "count",
+ "bps" : {
+ "description" : "Maximum r/w speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
"type" : "integer"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps",
+ "bps_rd" : {
+ "description" : "Maximum read speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "number"
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "format_description" : "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,
"format_description" : "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"
+ ],
+ "format_description" : "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" : {
- "format_description" : "drive format",
"description" : "The drive's backing file's data format.",
- "optional" : 1,
"enum" : [
"raw",
"cow",
"vmdk",
"cloop"
],
+ "format_description" : "drive format",
+ "optional" : 1,
"type" : "string"
},
- "detect_zeroes" : {
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "format_description" : "count",
"optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean"
+ "type" : "integer"
},
- "iops_wr" : {
- "type" : "integer",
+ "iops" : {
+ "description" : "Maximum r/w I/O speed in operations per second.",
"format_description" : "iops",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second."
+ "type" : "integer"
},
- "media" : {
- "enum" : [
- "cdrom",
- "disk"
- ],
- "description" : "The drive's media type.",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "cdrom|disk",
- "default" : "disk",
- "type" : "string"
- },
- "backup" : {
- "type" : "boolean",
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making backups.",
- "optional" : 1
+ "type" : "integer"
},
- "bps_rd" : {
- "type" : "integer",
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "integer"
},
- "iops_wr_max" : {
- "type" : "integer",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "iops"
+ "type" : "integer"
},
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
+ "iops_wr" : {
+ "description" : "Maximum write I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format" : "disk-size",
- "type" : "string"
+ "type" : "integer"
},
- "iops_max" : {
- "type" : "integer",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
"format_description" : "iops",
- "optional" : 1
- },
- "aio" : {
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "enum" : [
- "native",
- "threads"
- ],
- "type" : "string"
+ "type" : "integer"
},
- "mbps_rd_max" : {
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
+ "format_description" : "off|on",
"optional" : 1,
+ "type" : "boolean"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
"format_description" : "mbps",
+ "optional" : 1,
"type" : "number"
},
- "file" : {
- "default_key" : 1,
- "description" : "The drive's backing volume.",
- "format_description" : "volume",
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path"
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "serial" : {
- "type" : "string",
- "format" : "urlencoded",
- "format_description" : "serial",
+ "mbps_rd" : {
+ "description" : "Maximum read speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "maxLength" : 60,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long."
+ "type" : "number"
},
- "discard" : {
- "type" : "string",
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "format_description" : "ignore|on",
- "enum" : [
- "ignore",
- "on"
- ]
+ "type" : "number"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool speed in megabytes per second.",
"format_description" : "mbps",
+ "optional" : 1,
"type" : "number"
},
- "iops" : {
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "format_description" : "cdrom|disk",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "queues" : {
+ "description" : "Number of queues.",
+ "format_description" : "nbqueues",
+ "minimum" : 2,
"optional" : 1,
- "format_description" : "iops",
"type" : "integer"
},
- "mbps" : {
- "type" : "number",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "format_description" : "count",
"optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "integer"
},
- "bps_wr" : {
- "type" : "integer",
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
"optional" : 1,
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "string"
},
- "iops_rd_max" : {
- "type" : "integer",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "string"
},
- "volume" : {
- "alias" : "file"
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "format_description" : "on|off",
+ "optional" : 1,
+ "type" : "boolean"
},
"trans" : {
- "format_description" : "none|lba|auto",
- "optional" : 1,
"description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
- "type" : "string"
- },
- "rerror" : {
+ "format_description" : "none|lba|auto",
"optional" : 1,
- "description" : "Read error action.",
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
"type" : "string"
},
- "iops_rd" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum read I/O speed in operations per second.",
- "format_description" : "iops"
+ "volume" : {
+ "alias" : "file"
},
"werror" : {
- "type" : "string",
- "format_description" : "enospc|ignore|report|stop",
- "optional" : 1,
"description" : "Write error action.",
"enum" : [
"enospc",
"ignore",
"report",
"stop"
- ]
- },
- "cache" : {
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
],
+ "format_description" : "enospc|ignore|report|stop",
"optional" : 1,
- "description" : "The drive's cache mode",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
"type" : "string"
- },
- "snapshot" : {
- "optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean"
- },
- "mbps_wr_max" : {
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "bps" : {
- "type" : "integer",
- "optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second."
}
},
- "type" : "string",
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
- "optional" : 1
- },
- "bootdisk" : {
- "type" : "string",
- "format" : "pve-qm-bootdisk",
- "pattern" : "(ide|sata|scsi|virtio)\\d+",
- "description" : "Enable booting from specified disk.",
- "optional" : 1
- },
- "kvm" : {
- "default" : 1,
- "type" : "boolean",
"optional" : 1,
- "description" : "Enable/disable KVM hardware virtualization."
- },
- "hostpci[n]" : {
- "format" : "pve-qm-hostpci",
- "type" : "string",
- "description" : "Map host pci devices. HOSTPCIDEVICE syntax is:\n\n'bus:dev.func' (hexadecimal numbers)\n\nYou can us the 'lspci' command to list existing pci devices.\n\nThe 'rombar' option determines whether or not the device's ROM will be visible in the guest's memory map (default is 'on').\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
- "optional" : 1
+ "type" : "string"
},
- "ostype" : {
- "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",
+ "scsihw" : {
+ "default" : "lsi",
+ "description" : "scsi controller model",
"enum" : [
- "other",
- "wxp",
- "w2k",
- "w2k3",
- "w2k8",
- "wvista",
- "win7",
- "win8",
- "l24",
- "l26",
- "solaris"
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
],
+ "optional" : 1,
"type" : "string"
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
- "description" : "Reference to unused volumes.",
- "optional" : 1
- },
- "template" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable Template.",
- "optional" : 1
- },
- "watchdog" : {
- "type" : "string",
- "format" : "pve-qm-watchdog",
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0), or create a unix socket on the host side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
"optional" : 1,
- "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)"
+ "pattern" : "(/dev/.+|socket)",
+ "type" : "string"
},
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1
+ "shares" : {
+ "default" : 1000,
+ "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning",
+ "maximum" : 50000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
- "vcpus" : {
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "description" : "Number of hotplugged vcpus.",
- "type" : "integer",
- "default" : 0,
- "minimum" : 1
+ "type" : "boolean"
},
- "migrate_downtime" : {
- "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 256,
"optional" : 1,
- "type" : "number",
- "default" : 0.1,
- "minimum" : 0
+ "type" : "string"
},
- "cores" : {
- "type" : "integer",
+ "smp" : {
"default" : 1,
+ "description" : "The number of CPUs. Please use option -sockets instead.",
"minimum" : 1,
"optional" : 1,
- "description" : "The number of cores per socket."
+ "type" : "integer"
},
- "net[n]" : {
- "format" : "pve-qm-net",
- "type" : "string",
+ "sockets" : {
+ "default" : 1,
+ "description" : "The number of CPU sockets.",
+ "minimum" : 1,
"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" : "integer"
},
- "keyboard" : {
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
+ "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,
- "enum" : [
- "en-gb",
- "de-ch",
- "en-us",
- "mk",
- "fr-be",
- "de",
- "pt-br",
- "sv",
- "fr-ch",
- "no",
- "pt",
- "hu",
- "sl",
- "lt",
- "fi",
- "it",
- "nl",
- "is",
- "da",
- "fr-ca",
- "pl",
- "fr",
- "es",
- "ja",
- "tr"
- ],
- "default" : "en-us",
- "type" : "string"
+ "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)"
},
- "freeze" : {
- "type" : "boolean",
+ "startup" : {
+ "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
+ "format" : "pve-startup-order",
"optional" : 1,
- "description" : "Freeze CPU at startup (use 'c' monitor command to start execution)."
+ "type" : "string",
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
},
- "numa[n]" : {
+ "tablet" : {
+ "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).",
"optional" : 1,
- "description" : "numa topology",
- "format" : {
- "hostnodes" : {
- "format_description" : "id[-id];...",
- "description" : "host numa nodes to use",
- "optional" : 1,
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "type" : "string"
- },
- "policy" : {
- "description" : "numa allocation policy.",
- "format_description" : "preferred|bind|interleave",
- "optional" : 1,
- "enum" : [
- "preferred",
- "bind",
- "interleave"
- ],
- "type" : "string"
- },
- "memory" : {
- "type" : "number",
- "description" : "Amount of memory this numa node provides.",
- "format_description" : "mb",
- "optional" : 1
- },
- "cpus" : {
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "description" : "CPUs accessing this numa node.",
- "format_description" : "id[-id];...",
- "type" : "string"
- }
- },
- "type" : "string"
+ "type" : "boolean"
},
- "force" : {
- "requires" : "delete",
- "type" : "boolean",
+ "tdf" : {
+ "default" : 0,
+ "description" : "Enable/disable time drift fix.",
"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"
},
- "cpu" : {
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
"optional" : 1,
- "description" : "Emulated CPU type.",
+ "type" : "boolean"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "usb[n]" : {
+ "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" : {
- "cputype" : {
- "enum" : [
- "486",
- "athlon",
- "pentium",
- "pentium2",
- "pentium3",
- "coreduo",
- "core2duo",
- "kvm32",
- "kvm64",
- "qemu32",
- "qemu64",
- "phenom",
- "Conroe",
- "Penryn",
- "Nehalem",
- "Westmere",
- "SandyBridge",
- "IvyBridge",
- "Haswell",
- "Haswell-noTSX",
- "Broadwell",
- "Broadwell-noTSX",
- "Opteron_G1",
- "Opteron_G2",
- "Opteron_G3",
- "Opteron_G4",
- "Opteron_G5",
- "host"
- ],
+ "host" : {
"default_key" : 1,
- "format_description" : "cputype",
- "description" : "Emulated CPU type.",
- "default" : "kvm64",
+ "description" : "The Host USB device or port or the value spice",
+ "format" : "pve-qm-usb-device",
+ "format_description" : "HOSTUSBDEVICE|spice",
"type" : "string"
},
- "hidden" : {
+ "usb3" : {
+ "description" : "Specifies whether if given host option is a USB3 device or port",
+ "format_description" : "yes|no",
"optional" : 1,
- "description" : "Do not identify as a KVM virtual machine.",
- "type" : "boolean",
- "default" : 0
+ "type" : "boolean"
}
},
+ "optional" : 1,
"type" : "string"
},
- "autostart" : {
- "type" : "boolean",
+ "vcpus" : {
"default" : 0,
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Automatic restart after crash (currently ignored)."
+ "type" : "integer"
},
"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",
"qxl2",
"qxl3",
"qxl4"
- ]
- },
- "startdate" : {
- "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
+ ],
"optional" : 1,
- "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
- "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)",
- "default" : "now",
"type" : "string"
},
- "acpi" : {
- "type" : "boolean",
- "default" : 1,
- "description" : "Enable/disable ACPI.",
- "optional" : 1
- },
- "scsi[n]" : {
+ "virtio[n]" : {
+ "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
"format" : {
- "cache" : {
+ "aio" : {
+ "description" : "AIO type to use.",
"enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
+ "native",
+ "threads"
],
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
+ "format_description" : "native|threads",
"optional" : 1,
"type" : "string"
},
- "snapshot" : {
- "optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
"format_description" : "on|off",
+ "optional" : 1,
"type" : "boolean"
},
"bps" : {
- "optional" : 1,
- "format_description" : "bps",
"description" : "Maximum r/w speed speed in bytes per second.",
- "type" : "integer"
- },
- "mbps_wr_max" : {
- "format_description" : "mbps",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "type" : "number"
- },
- "iops_rd" : {
- "type" : "integer",
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second.",
- "optional" : 1
+ "type" : "integer"
},
- "werror" : {
- "description" : "Write error action.",
- "format_description" : "enospc|ignore|report|stop",
+ "bps_rd" : {
+ "description" : "Maximum read speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string"
+ "type" : "integer"
},
- "iops_rd_max" : {
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops",
"type" : "integer"
},
- "volume" : {
- "alias" : "file"
- },
- "trans" : {
- "optional" : 1,
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
"none",
- "lba",
- "auto"
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
+ "format_description" : "none|writethrough|writeback|unsafe|directsync",
+ "optional" : 1,
"type" : "string"
},
- "iops" : {
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "format_description" : "count",
"optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops",
"type" : "integer"
},
- "mbps" : {
- "type" : "number",
- "description" : "Maximum r/w speed speed in megabytes per second.",
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "boolean"
},
- "bps_wr" : {
- "type" : "integer",
- "format_description" : "bps",
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "format_description" : "ignore|on",
"optional" : 1,
- "description" : "Maximum write 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",
- "type" : "string",
"format_description" : "volume",
- "description" : "The drive's backing volume.",
- "default_key" : 1
+ "type" : "string"
},
- "discard" : {
+ "format" : {
+ "description" : "The drive's backing file's data format.",
"enum" : [
- "ignore",
- "on"
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
],
+ "format_description" : "drive format",
"optional" : 1,
- "format_description" : "ignore|on",
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"type" : "string"
},
- "serial" : {
- "format_description" : "serial",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "format_description" : "count",
"optional" : 1,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "maxLength" : 60,
- "type" : "string",
- "format" : "urlencoded"
+ "type" : "integer"
},
- "mbps_max" : {
- "type" : "number",
- "format_description" : "mbps",
+ "iops" : {
+ "description" : "Maximum r/w I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second."
+ "type" : "integer"
},
"iops_max" : {
- "optional" : 1,
"description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
"format_description" : "iops",
+ "optional" : 1,
"type" : "integer"
},
- "aio" : {
- "type" : "string",
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "enum" : [
- "native",
- "threads"
- ]
+ "type" : "integer"
},
- "queues" : {
- "type" : "integer",
- "minimum" : 2,
- "format_description" : "nbqueues",
- "description" : "Number of queues.",
- "optional" : 1
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
},
- "mbps_rd_max" : {
- "type" : "number",
+ "iops_wr" : {
+ "description" : "Maximum write I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second."
+ "type" : "integer"
},
"iops_wr_max" : {
- "format_description" : "iops",
"description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
"type" : "integer"
},
"iothread" : {
- "type" : "boolean",
"description" : "Whether to use iothreads for this drive",
+ "format_description" : "off|on",
"optional" : 1,
- "format_description" : "off|on"
+ "type" : "boolean"
},
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "string",
- "format" : "disk-size"
+ "type" : "number"
},
- "bps_rd" : {
- "type" : "integer",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "number"
},
- "backup" : {
- "description" : "Whether the drive should be included when making backups.",
+ "mbps_rd" : {
+ "description" : "Maximum read speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "on|off",
- "type" : "boolean"
+ "type" : "number"
},
- "detect_zeroes" : {
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean"
+ "type" : "number"
},
- "iops_wr" : {
- "type" : "integer",
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "number"
},
- "media" : {
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
"description" : "The drive's media type.",
- "format_description" : "cdrom|disk",
"enum" : [
"cdrom",
"disk"
],
- "type" : "string",
- "default" : "disk"
+ "format_description" : "cdrom|disk",
+ "optional" : 1,
+ "type" : "string"
},
- "format" : {
+ "rerror" : {
+ "description" : "Read error action.",
"enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
+ "ignore",
+ "report",
+ "stop"
],
- "description" : "The drive's backing file's data format.",
+ "format_description" : "ignore|report|stop",
"optional" : 1,
- "format_description" : "drive format",
"type" : "string"
},
- "cyls" : {
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"format_description" : "count",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"type" : "integer"
},
- "mbps_wr" : {
- "type" : "number",
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum write speed speed in megabytes per second."
+ "type" : "string"
},
- "mbps_rd" : {
- "type" : "number",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "string"
},
- "heads" : {
- "type" : "integer",
- "format_description" : "count",
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "format_description" : "on|off",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count."
+ "type" : "boolean"
},
- "secs" : {
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "format_description" : "none|lba|auto",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count",
- "type" : "integer"
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "format_description" : "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)."
+ "type" : "string"
},
- "shares" : {
- "type" : "integer",
- "default" : 1000,
- "maximum" : 50000,
- "minimum" : 0,
- "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning",
- "optional" : 1
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
},
- "smbios1" : {
+ "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)",
+ "format" : "pve-qm-watchdog",
"optional" : 1,
- "maxLength" : 256,
- "description" : "Specify SMBIOS type 1 fields.",
- "type" : "string",
- "format" : "pve-qm-smbios1"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk",
+ "VM.Config.CDROM",
+ "VM.Config.CPU",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.HWType",
+ "VM.Config.Options"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "PUT" : {
+ "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
+ "method" : "PUT",
+ "name" : "update_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "acpi" : {
+ "default" : 1,
+ "description" : "Enable/disable ACPI.",
"optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
+ "type" : "boolean"
},
- "memory" : {
+ "agent" : {
+ "default" : 0,
+ "description" : "Enable/disable Qemu GuestAgent.",
"optional" : 1,
- "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
- "minimum" : 16,
- "default" : 512,
- "type" : "integer"
+ "type" : "boolean"
},
- "description" : {
- "type" : "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",
"optional" : 1,
- "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file."
+ "type" : "string"
},
- "onboot" : {
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
"optional" : 1,
- "description" : "Specifies whether a VM will be started during system bootup.",
- "type" : "boolean",
- "default" : 0
+ "type" : "boolean"
},
- "localtime" : {
- "type" : "boolean",
- "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
- "optional" : 1
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bios" : {
+ "default" : "seabios",
+ "description" : "Select BIOS implementation.",
+ "enum" : [
+ "seabios",
+ "ovmf"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
"boot" : {
"default" : "cdn",
- "type" : "string",
"description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
"optional" : 1,
- "pattern" : "[acdn]{1,4}"
+ "pattern" : "[acdn]{1,4}",
+ "type" : "string"
},
- "startup" : {
+ "bootdisk" : {
+ "description" : "Enable booting from specified disk.",
+ "format" : "pve-qm-bootdisk",
"optional" : 1,
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
- "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
- "format" : "pve-startup-order",
+ "pattern" : "(ide|sata|scsi|virtio)\\d+",
"type" : "string"
},
- "skiplock" : {
- "type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1
- },
- "scsihw" : {
- "default" : "lsi",
+ "cdrom" : {
+ "description" : "This is an alias for option -ide2",
+ "format" : "pve-qm-drive",
+ "optional" : 1,
"type" : "string",
- "description" : "scsi controller model",
+ "typetext" : "volume"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
"optional" : 1,
- "enum" : [
- "lsi",
- "lsi53c810",
- "virtio-scsi-pci",
- "virtio-scsi-single",
- "megasas",
- "pvscsi"
- ]
+ "type" : "integer"
},
- "name" : {
+ "cpu" : {
+ "description" : "Emulated CPU type.",
+ "format" : {
+ "cputype" : {
+ "default" : "kvm64",
+ "default_key" : 1,
+ "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"
+ ],
+ "format_description" : "cputype",
+ "type" : "string"
+ },
+ "hidden" : {
+ "default" : 0,
+ "description" : "Do not identify as a KVM virtual machine.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
"optional" : 1,
- "description" : "Set a name for the VM. Only used on the configuration web interface.",
- "format" : "dns-name",
"type" : "string"
},
- "balloon" : {
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit.",
+ "maximum" : 128,
+ "minimum" : 0,
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "number"
},
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "cpuunits" : {
+ "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.",
+ "maximum" : 500000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
- "revert" : {
- "description" : "Revert a pending change.",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
- }
- },
- "additionalProperties" : 0
- },
- "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT",
- "name" : "update_vm"
- },
- "POST" : {
- "parameters" : {
- "properties" : {
- "tdf" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable time drift fix.",
- "optional" : 1
+ "type" : "string"
},
- "cdrom" : {
- "description" : "This is an alias for option -ide2",
- "typetext" : "volume",
+ "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-drive"
+ "type" : "string"
},
- "sockets" : {
- "description" : "The number of CPU sockets.",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
- "minimum" : 1,
- "type" : "integer",
- "default" : 1
+ "type" : "string"
},
- "serial[n]" : {
- "description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0), or create a unix socket on the host side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
+ "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"
+ },
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "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",
+ "format" : "pve-qm-hostpci",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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,
- "pattern" : "(/dev/.+|socket)",
"type" : "string"
},
"ide[n]" : {
- "type" : "string",
+ "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
"format" : {
- "cache" : {
- "type" : "string",
- "optional" : 1,
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
+ "aio" : {
+ "description" : "AIO type to use.",
"enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
- },
- "snapshot" : {
- "type" : "boolean",
+ "native",
+ "threads"
+ ],
+ "format_description" : "native|threads",
"optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off"
+ "type" : "string"
},
- "mbps_wr_max" : {
- "type" : "number",
- "format_description" : "mbps",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "format_description" : "on|off",
"optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second."
+ "type" : "boolean"
},
"bps" : {
- "format_description" : "bps",
"description" : "Maximum r/w speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
"type" : "integer"
},
- "trans" : {
- "type" : "string",
+ "bps_rd" : {
+ "description" : "Maximum read speed speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
"none",
- "lba",
- "auto"
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
+ "format_description" : "none|writethrough|writeback|unsafe|directsync",
"optional" : 1,
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode."
+ "type" : "string"
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "format_description" : "count",
"optional" : 1,
- "format_description" : "iops",
"type" : "integer"
},
- "volume" : {
- "alias" : "file"
- },
- "rerror" : {
- "optional" : 1,
- "description" : "Read error action.",
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string"
- },
- "iops_rd" : {
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second.",
- "optional" : 1,
- "type" : "integer"
- },
- "werror" : {
- "description" : "Write error action.",
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string"
+ "type" : "boolean"
},
"discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"enum" : [
"ignore",
"on"
],
- "optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"format_description" : "ignore|on",
- "type" : "string"
- },
- "serial" : {
- "format" : "urlencoded",
- "type" : "string",
- "optional" : 1,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
- "maxLength" : 60
- },
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "format_description" : "mbps",
"optional" : 1,
- "type" : "number"
+ "type" : "string"
},
"file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
"default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
"format_description" : "volume",
- "description" : "The drive's backing volume."
+ "type" : "string"
},
- "bps_wr" : {
- "description" : "Maximum write speed speed in bytes per second.",
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "format_description" : "drive format",
"optional" : 1,
- "format_description" : "bps",
- "type" : "integer"
+ "type" : "string"
},
- "mbps" : {
- "type" : "number",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "format_description" : "count",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second."
+ "type" : "integer"
},
"iops" : {
- "format_description" : "iops",
- "optional" : 1,
"description" : "Maximum r/w I/O speed in operations per second.",
- "type" : "integer"
- },
- "iops_wr_max" : {
"format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
"optional" : 1,
"type" : "integer"
},
- "size" : {
- "type" : "string",
- "format" : "disk-size",
- "optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
- },
"iops_max" : {
- "type" : "integer",
- "format_description" : "iops",
"description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "optional" : 1
- },
- "mbps_rd_max" : {
- "type" : "number",
- "format_description" : "mbps",
- "optional" : 1,
- "description" : "Maximum unthrottled read pool speed in megabytes per second."
- },
- "aio" : {
- "type" : "string",
- "enum" : [
- "native",
- "threads"
- ],
+ "format_description" : "iops",
"optional" : 1,
- "description" : "AIO type to use.",
- "format_description" : "native|threads"
+ "type" : "integer"
},
- "backup" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "on|off"
- },
- "bps_rd" : {
- "type" : "integer",
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "optional" : 1
+ "type" : "integer"
},
- "format" : {
- "type" : "string",
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "drive format",
- "description" : "The drive's backing file's data format."
+ "type" : "integer"
},
"iops_wr" : {
"description" : "Maximum write I/O speed in operations per second.",
- "optional" : 1,
"format_description" : "iops",
- "type" : "integer"
- },
- "detect_zeroes" : {
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "type" : "boolean"
- },
- "model" : {
- "format" : "urlencoded",
- "type" : "string",
- "format_description" : "model",
- "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
- "maxLength" : 120,
- "optional" : 1
+ "type" : "integer"
},
- "media" : {
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "type" : "string",
- "default" : "disk"
+ "type" : "integer"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
"format_description" : "mbps",
"optional" : 1,
"type" : "number"
},
- "cyls" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "optional" : 1,
- "format_description" : "count"
- },
- "secs" : {
- "type" : "integer",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count"
- },
- "heads" : {
- "type" : "integer",
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "optional" : 1
+ "type" : "number"
},
"mbps_rd" : {
- "optional" : 1,
"description" : "Maximum read speed speed in megabytes per second.",
"format_description" : "mbps",
- "type" : "number"
- }
- },
- "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
- "optional" : 1
- },
- "cpuunits" : {
- "optional" : 1,
- "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
- "default" : 1000,
- "maximum" : 500000,
- "type" : "integer",
- "minimum" : 0
- },
- "cpulimit" : {
- "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit.",
- "optional" : 1,
- "default" : 0,
- "type" : "number",
- "maximum" : 128,
- "minimum" : 0
- },
- "lock" : {
- "type" : "string",
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ],
- "optional" : 1,
- "description" : "Lock/unlock the VM."
- },
- "numa" : {
- "type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "Enable/disable NUMA."
- },
- "virtio[n]" : {
- "format" : {
- "bps_rd" : {
- "type" : "integer",
- "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second."
+ "type" : "number"
},
- "backup" : {
- "description" : "Whether the drive should be included when making backups.",
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "on|off",
- "type" : "boolean"
+ "type" : "number"
},
- "detect_zeroes" : {
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "iops_wr" : {
- "format_description" : "iops",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "type" : "integer"
+ "type" : "number"
},
"media" : {
"default" : "disk",
- "type" : "string",
- "optional" : 1,
- "format_description" : "cdrom|disk",
"description" : "The drive's media type.",
"enum" : [
"cdrom",
"disk"
- ]
+ ],
+ "format_description" : "cdrom|disk",
+ "optional" : 1,
+ "type" : "string"
},
- "format" : {
+ "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" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
+ "ignore",
+ "report",
+ "stop"
],
- "description" : "The drive's backing file's data format.",
+ "format_description" : "ignore|report|stop",
"optional" : 1,
- "format_description" : "drive format",
"type" : "string"
},
- "cyls" : {
- "type" : "integer",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
"format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "optional" : 1
- },
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "mbps_rd" : {
- "type" : "number",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second."
+ "type" : "integer"
},
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count",
+ "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"
},
- "secs" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
"optional" : 1,
- "format_description" : "count"
+ "type" : "string"
},
"snapshot" : {
- "type" : "boolean",
- "optional" : 1,
+ "description" : "Whether the drive should be included when making snapshots.",
"format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots."
- },
- "cache" : {
- "type" : "string",
- "optional" : 1,
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
- },
- "mbps_wr_max" : {
- "type" : "number",
- "format_description" : "mbps",
- "optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second."
- },
- "bps" : {
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
- "optional" : 1,
- "type" : "integer"
- },
- "iops_rd" : {
- "type" : "integer",
- "optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second."
- },
- "werror" : {
- "type" : "string",
- "optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
- "description" : "Write error action.",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ]
- },
- "volume" : {
- "alias" : "file"
- },
- "iops_rd_max" : {
- "type" : "integer",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "boolean"
},
"trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
- "optional" : 1,
- "description" : "Force disk geometry bios translation mode.",
"format_description" : "none|lba|auto",
+ "optional" : 1,
"type" : "string"
},
- "rerror" : {
- "optional" : 1,
- "description" : "Read error action.",
- "format_description" : "ignore|report|stop",
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
"enum" : [
+ "enospc",
"ignore",
"report",
"stop"
],
- "type" : "string"
- },
- "iops" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops"
- },
- "mbps" : {
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "bps_wr" : {
- "type" : "integer",
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps",
- "optional" : 1
- },
- "file" : {
- "description" : "The drive's backing volume.",
- "format_description" : "volume",
- "default_key" : 1,
- "format" : "pve-volume-id-or-qm-path",
- "type" : "string"
- },
- "serial" : {
- "format" : "urlencoded",
- "type" : "string",
- "optional" : 1,
- "maxLength" : 60,
- "format_description" : "serial",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long."
- },
- "mbps_max" : {
- "optional" : 1,
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
- },
- "discard" : {
- "type" : "string",
- "format_description" : "ignore|on",
- "optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "enum" : [
- "ignore",
- "on"
- ]
- },
- "iops_max" : {
- "optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "type" : "integer"
- },
- "aio" : {
- "description" : "AIO type to use.",
+ "format_description" : "enospc|ignore|report|stop",
"optional" : 1,
- "format_description" : "native|threads",
- "enum" : [
- "native",
- "threads"
- ],
"type" : "string"
- },
- "mbps_rd_max" : {
- "format_description" : "mbps",
- "optional" : 1,
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number"
- },
- "iops_wr_max" : {
- "optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "format_description" : "iops",
- "type" : "integer"
- },
- "iothread" : {
- "format_description" : "off|on",
- "description" : "Whether to use iothreads for this drive",
- "optional" : 1,
- "type" : "boolean"
- },
- "size" : {
- "optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect.",
- "type" : "string",
- "format" : "disk-size"
}
},
- "type" : "string",
- "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "bios" : {
- "type" : "string",
- "default" : "seabios",
+ "keyboard" : {
+ "default" : "en-us",
+ "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
"enum" : [
- "seabios",
- "ovmf"
+ "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,
- "description" : "Select BIOS implementation."
- },
- "agent" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable Qemu GuestAgent.",
- "optional" : 1
- },
- "parallel[n]" : {
- "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
- "optional" : 1,
- "description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
"type" : "string"
},
- "tablet" : {
- "type" : "boolean",
+ "kvm" : {
"default" : 1,
+ "description" : "Enable/disable KVM hardware virtualization.",
"optional" : 1,
- "description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl)."
- },
- "usb[n]" : {
- "format" : {
- "host" : {
- "format" : "pve-qm-usb-device",
- "type" : "string",
- "format_description" : "HOSTUSBDEVICE|spice",
- "description" : "The Host USB device or port or the value spice",
- "default_key" : 1
- },
- "usb3" : {
- "optional" : 1,
- "description" : "Specifies whether if given host option is a USB3 device or port",
- "format_description" : "yes|no",
- "type" : "boolean"
- }
- },
- "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
- },
- "smp" : {
- "type" : "integer",
- "default" : 1,
- "minimum" : 1,
- "description" : "The number of CPUs. Please use option -sockets instead.",
- "optional" : 1
+ "type" : "boolean"
},
- "hostpci[n]" : {
- "format" : "pve-qm-hostpci",
- "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,
- "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"
},
- "kvm" : {
- "type" : "boolean",
- "default" : 1,
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "migrate",
+ "backup",
+ "snapshot",
+ "rollback"
+ ],
"optional" : 1,
- "description" : "Enable/disable KVM hardware virtualization."
+ "type" : "string"
},
- "node" : {
+ "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"
+ },
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number"
+ },
+ "migrate_speed" : {
+ "default" : 0,
+ "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Set a name for the VM. Only used on the configuration web interface.",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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",
+ "format" : "pve-qm-net",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "numa" : {
+ "default" : 0,
+ "description" : "Enable/disable NUMA.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "numa[n]" : {
+ "description" : "numa topology",
+ "format" : {
+ "cpus" : {
+ "description" : "CPUs accessing this numa node.",
+ "format_description" : "id[-id];...",
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "hostnodes" : {
+ "description" : "host numa nodes to use",
+ "format_description" : "id[-id];...",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "memory" : {
+ "description" : "Amount of memory this numa node provides.",
+ "format_description" : "mb",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "policy" : {
+ "description" : "numa allocation policy.",
+ "enum" : [
+ "preferred",
+ "bind",
+ "interleave"
+ ],
+ "format_description" : "preferred|bind|interleave",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
+ "type" : "boolean"
},
"ostype" : {
- "type" : "string",
+ "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",
"enum" : [
"other",
"wxp",
"l26",
"solaris"
],
- "description" : "Used to enable special optimization/features for specific\noperating systems:\n\nother => unspecified OS\nwxp => Microsoft Windows XP\nw2k => Microsoft Windows 2000\nw2k3 => Microsoft Windows 2003\nw2k8 => Microsoft Windows 2008\nwvista => Microsoft Windows Vista\nwin7 => Microsoft Windows 7\nwin8 => Microsoft Windows 8/2012\nl24 => Linux 2.4 Kernel\nl26 => Linux 2.6/3.X Kernel\nsolaris => solaris/opensolaris/openindiania kernel\n\nother|l24|l26|solaris ... no special behaviour\nwxp|w2k|w2k3|w2k8|wvista|win7|win8 ... use --localtime switch\n",
- "optional" : 1
- },
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
"optional" : 1,
- "description" : "Reference to unused volumes."
- },
- "template" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Enable/disable Template.",
- "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)",
+ "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",
"optional" : 1,
- "type" : "string",
- "format" : "pve-qm-watchdog"
- },
- "args" : {
- "type" : "string",
- "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
- "optional" : 1
+ "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
+ "type" : "string"
},
"protection" : {
+ "default" : 0,
"description" : "Sets the protection flag of the VM. This will prevent the remove operation.",
"optional" : 1,
- "type" : "boolean",
- "default" : 0
+ "type" : "boolean"
},
"reboot" : {
- "optional" : 1,
+ "default" : 1,
"description" : "Allow reboot. If set to '0' the VM exit on reboot.",
- "type" : "boolean",
- "default" : 1
- },
- "hotplug" : {
"optional" : 1,
- "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
- "type" : "string",
- "default" : "network,disk,usb",
- "format" : "pve-hotplug-features"
+ "type" : "boolean"
},
- "machine" : {
- "description" : "Specific the Qemu machine type.",
+ "revert" : {
+ "description" : "Revert a pending change.",
+ "format" : "pve-configid-list",
"optional" : 1,
- "maxLength" : 40,
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
"type" : "string"
},
- "migrate_speed" : {
- "type" : "integer",
- "default" : 0,
- "minimum" : 0,
- "optional" : 1,
- "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit."
- },
- "background_delay" : {
- "type" : "integer",
- "maximum" : 30,
- "minimum" : 1,
- "optional" : 1,
- "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time."
- },
"sata[n]" : {
- "type" : "string",
+ "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
"format" : {
- "snapshot" : {
- "type" : "boolean",
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
- "optional" : 1
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
+ "format_description" : "native|threads",
+ "optional" : 1,
+ "type" : "string"
},
- "cache" : {
- "type" : "string",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "format_description" : "on|off",
"optional" : 1,
- "description" : "The drive's cache mode",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
+ "type" : "boolean"
},
"bps" : {
"description" : "Maximum r/w speed speed in bytes per second.",
"optional" : 1,
"type" : "integer"
},
- "mbps_wr_max" : {
- "type" : "number",
+ "bps_rd" : {
+ "description" : "Maximum read speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled write pool speed in megabytes per second."
+ "type" : "integer"
},
- "iops_rd" : {
- "type" : "integer",
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "integer"
},
- "werror" : {
- "description" : "Write error action.",
- "optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
+ "format_description" : "none|writethrough|writeback|unsafe|directsync",
+ "optional" : 1,
"type" : "string"
},
- "volume" : {
- "alias" : "file"
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "format_description" : "count",
+ "optional" : 1,
+ "type" : "integer"
},
- "iops_rd_max" : {
- "type" : "integer",
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "boolean"
},
- "trans" : {
- "type" : "string",
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"enum" : [
- "none",
- "lba",
- "auto"
+ "ignore",
+ "on"
],
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
- "optional" : 1
- },
- "rerror" : {
- "type" : "string",
- "description" : "Read error action.",
+ "format_description" : "ignore|on",
"optional" : 1,
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ]
- },
- "iops" : {
- "type" : "integer",
- "format_description" : "iops",
- "description" : "Maximum r/w I/O speed in operations per second.",
- "optional" : 1
- },
- "bps_wr" : {
- "type" : "integer",
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps",
- "optional" : 1
- },
- "mbps" : {
- "type" : "number",
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps",
- "optional" : 1
+ "type" : "string"
},
"file" : {
"default_key" : 1,
"description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
"format_description" : "volume",
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path"
- },
- "serial" : {
- "maxLength" : 60,
- "optional" : 1,
- "format_description" : "serial",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format" : "urlencoded",
"type" : "string"
},
- "mbps_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "optional" : 1,
- "type" : "number"
- },
- "discard" : {
+ "format" : {
+ "description" : "The drive's backing file's data format.",
"enum" : [
- "ignore",
- "on"
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
],
+ "format_description" : "drive format",
"optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "format_description" : "ignore|on",
"type" : "string"
},
- "iops_max" : {
- "type" : "integer",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "format_description" : "count",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
"description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
},
- "aio" : {
- "type" : "string",
- "enum" : [
- "native",
- "threads"
- ],
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use."
+ "type" : "integer"
},
- "mbps_rd_max" : {
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed speed in megabytes per second.",
"format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
"description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
"type" : "number"
},
- "iops_wr_max" : {
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "format_description" : "cdrom|disk",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "format_description" : "ignore|report|stop",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "format_description" : "count",
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum unthrottled write 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.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
"size" : {
- "type" : "string",
+ "description" : "Disk size. This is purely informational and has no effect.",
"format" : "disk-size",
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "format_description" : "on|off",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "format_description" : "none|lba|auto",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "format_description" : "enospc|ignore|report|stop",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "scsi[n]" : {
+ "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
+ "format_description" : "native|threads",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "format_description" : "on|off",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
"bps_rd" : {
"description" : "Maximum read speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
"format_description" : "bps",
+ "optional" : 1,
"type" : "integer"
},
- "backup" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "format_description" : "none|writethrough|writeback|unsafe|directsync",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "format_description" : "count",
"optional" : 1,
- "format_description" : "on|off"
+ "type" : "integer"
},
"detect_zeroes" : {
- "type" : "boolean",
"description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
- },
- "iops_wr" : {
- "type" : "integer",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "boolean"
},
- "media" : {
- "format_description" : "cdrom|disk",
- "optional" : 1,
- "description" : "The drive's media type.",
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"enum" : [
- "cdrom",
- "disk"
+ "ignore",
+ "on"
],
- "default" : "disk",
+ "format_description" : "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.",
- "format_description" : "drive format",
- "optional" : 1,
"enum" : [
"raw",
"cow",
"vmdk",
"cloop"
],
+ "format_description" : "drive format",
+ "optional" : 1,
"type" : "string"
},
- "cyls" : {
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
"format_description" : "count",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"type" : "integer"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
+ "iops" : {
+ "description" : "Maximum r/w I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
+ "format_description" : "off|on",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
"mbps_rd" : {
- "type" : "number",
+ "description" : "Maximum read speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool speed in megabytes per second.",
"format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second."
+ "optional" : 1,
+ "type" : "number"
},
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "format_description" : "cdrom|disk",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "queues" : {
+ "description" : "Number of queues.",
+ "format_description" : "nbqueues",
+ "minimum" : 2,
"optional" : 1,
- "format_description" : "count",
"type" : "integer"
},
"secs" : {
- "type" : "integer",
- "optional" : 1,
"description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count"
+ "format_description" : "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",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "format_description" : "on|off",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "format_description" : "none|lba|auto",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "format_description" : "enospc|ignore|report|stop",
+ "optional" : 1,
+ "type" : "string"
}
},
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
- "optional" : 1
- },
- "bootdisk" : {
- "type" : "string",
- "format" : "pve-qm-bootdisk",
- "pattern" : "(ide|sata|scsi|virtio)\\d+",
"optional" : 1,
- "description" : "Enable booting from specified disk."
- },
- "migrate_downtime" : {
- "minimum" : 0,
- "type" : "number",
- "default" : 0.1,
- "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
- "optional" : 1
+ "type" : "string"
},
- "cores" : {
- "minimum" : 1,
- "type" : "integer",
- "default" : 1,
+ "scsihw" : {
+ "default" : "lsi",
+ "description" : "scsi controller model",
+ "enum" : [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
"optional" : 1,
- "description" : "The number of cores per socket."
+ "type" : "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",
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0), or create a unix socket on the host side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
"optional" : 1,
- "type" : "string",
- "format" : "pve-qm-net"
+ "pattern" : "(/dev/.+|socket)",
+ "type" : "string"
},
- "freeze" : {
- "type" : "boolean",
+ "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" : "Freeze CPU at startup (use 'c' monitor command to start execution)."
+ "type" : "integer"
},
- "keyboard" : {
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
- "enum" : [
- "en-gb",
- "de-ch",
- "en-us",
- "mk",
- "fr-be",
- "de",
- "pt-br",
- "sv",
- "fr-ch",
- "no",
- "pt",
- "hu",
- "sl",
- "lt",
- "fi",
- "it",
- "nl",
- "is",
- "da",
- "fr-ca",
- "pl",
- "fr",
- "es",
- "ja",
- "tr"
- ],
- "default" : "en-us",
- "type" : "string"
+ "type" : "boolean"
},
- "digest" : {
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 256,
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
"type" : "string"
},
- "vcpus" : {
- "description" : "Number of hotplugged vcpus.",
- "optional" : 1,
- "default" : 0,
- "type" : "integer",
- "minimum" : 1
- },
- "memory" : {
- "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+ "smp" : {
+ "default" : 1,
+ "description" : "The number of CPUs. Please use option -sockets instead.",
+ "minimum" : 1,
"optional" : 1,
- "minimum" : 16,
- "type" : "integer",
- "default" : 512
+ "type" : "integer"
},
- "localtime" : {
- "type" : "boolean",
+ "sockets" : {
+ "default" : 1,
+ "description" : "The number of CPU sockets.",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS."
- },
- "onboot" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Specifies whether a VM will be started during system bootup.",
- "optional" : 1
+ "type" : "integer"
},
- "description" : {
+ "startdate" : {
+ "default" : "now",
+ "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
"optional" : 1,
- "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
- "type" : "string"
+ "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
+ "type" : "string",
+ "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
},
"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+] ",
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
+ },
+ "tablet" : {
+ "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).",
"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" : "boolean"
},
- "boot" : {
- "pattern" : "[acdn]{1,4}",
- "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
- "optional" : 1,
- "default" : "cdn",
- "type" : "string"
- },
- "skiplock" : {
+ "tdf" : {
+ "default" : 0,
+ "description" : "Enable/disable time drift fix.",
"optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option.",
"type" : "boolean"
},
- "name" : {
- "optional" : 1,
- "description" : "Set a name for the VM. Only used on the configuration web interface.",
- "format" : "dns-name",
- "type" : "string"
- },
- "scsihw" : {
- "enum" : [
- "lsi",
- "lsi53c810",
- "virtio-scsi-pci",
- "virtio-scsi-single",
- "megasas",
- "pvscsi"
- ],
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
"optional" : 1,
- "description" : "scsi controller model",
- "type" : "string",
- "default" : "lsi"
- },
- "balloon" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
- "optional" : 1
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
+ "type" : "boolean"
},
- "revert" : {
+ "unused[n]" : {
+ "description" : "Reference to unused volumes.",
+ "format" : "pve-volume-id",
"optional" : 1,
- "description" : "Revert a pending change.",
- "format" : "pve-configid-list",
"type" : "string"
},
- "force" : {
- "requires" : "delete",
- "type" : "boolean",
- "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
- "optional" : 1
- },
- "numa[n]" : {
- "description" : "numa topology",
- "optional" : 1,
- "type" : "string",
+ "usb[n]" : {
+ "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" : {
- "cpus" : {
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "description" : "CPUs accessing this numa node.",
- "format_description" : "id[-id];...",
+ "host" : {
+ "default_key" : 1,
+ "description" : "The Host USB device or port or the value spice",
+ "format" : "pve-qm-usb-device",
+ "format_description" : "HOSTUSBDEVICE|spice",
"type" : "string"
},
- "memory" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Amount of memory this numa node provides.",
- "format_description" : "mb"
- },
- "hostnodes" : {
- "type" : "string",
- "description" : "host numa nodes to use",
- "format_description" : "id[-id];...",
- "optional" : 1,
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)"
- },
- "policy" : {
- "enum" : [
- "preferred",
- "bind",
- "interleave"
- ],
+ "usb3" : {
+ "description" : "Specifies whether if given host option is a USB3 device or port",
+ "format_description" : "yes|no",
"optional" : 1,
- "format_description" : "preferred|bind|interleave",
- "description" : "numa allocation policy.",
- "type" : "string"
+ "type" : "boolean"
}
- }
- },
- "cpu" : {
+ },
"optional" : 1,
- "description" : "Emulated CPU type.",
- "type" : "string",
- "format" : {
- "cputype" : {
- "type" : "string",
- "default" : "kvm64",
- "enum" : [
- "486",
- "athlon",
- "pentium",
- "pentium2",
- "pentium3",
- "coreduo",
- "core2duo",
- "kvm32",
- "kvm64",
- "qemu32",
- "qemu64",
- "phenom",
- "Conroe",
- "Penryn",
- "Nehalem",
- "Westmere",
- "SandyBridge",
- "IvyBridge",
- "Haswell",
- "Haswell-noTSX",
- "Broadwell",
- "Broadwell-noTSX",
- "Opteron_G1",
- "Opteron_G2",
- "Opteron_G3",
- "Opteron_G4",
- "Opteron_G5",
- "host"
- ],
- "format_description" : "cputype",
- "description" : "Emulated CPU type.",
- "default_key" : 1
- },
- "hidden" : {
- "optional" : 1,
- "description" : "Do not identify as a KVM virtual machine.",
- "type" : "boolean",
- "default" : 0
- }
- }
+ "type" : "string"
},
- "autostart" : {
+ "vcpus" : {
+ "default" : 0,
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Automatic restart after crash (currently ignored).",
- "type" : "boolean",
- "default" : 0
+ "type" : "integer"
},
"vga" : {
- "type" : "string",
+ "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",
"qxl4"
],
"optional" : 1,
- "description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal."
- },
- "startdate" : {
- "default" : "now",
- "type" : "string",
- "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
- "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)",
- "optional" : 1,
- "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)"
- },
- "acpi" : {
- "optional" : 1,
- "description" : "Enable/disable ACPI.",
- "type" : "boolean",
- "default" : 1
+ "type" : "string"
},
- "scsi[n]" : {
+ "virtio[n]" : {
+ "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
"format" : {
- "secs" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
+ "format_description" : "native|threads",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "format_description" : "on|off",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
"type" : "integer"
},
- "heads" : {
- "type" : "integer",
+ "bps_rd" : {
+ "description" : "Maximum read speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific head count."
+ "type" : "integer"
},
- "mbps_rd" : {
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "integer"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "format_description" : "none|writethrough|writeback|unsafe|directsync",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "string"
},
"cyls" : {
- "type" : "integer",
- "optional" : 1,
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific cylinder count."
+ "optional" : 1,
+ "type" : "integer"
},
- "format" : {
- "type" : "string",
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "format_description" : "drive format",
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "format_description" : "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",
"qcow2",
"vmdk",
"cloop"
- ]
+ ],
+ "format_description" : "drive format",
+ "optional" : 1,
+ "type" : "string"
},
- "iops_wr" : {
- "format_description" : "iops",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "format_description" : "count",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
"type" : "integer"
},
- "detect_zeroes" : {
- "type" : "boolean",
+ "iops" : {
+ "description" : "Maximum r/w I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "type" : "integer"
},
- "media" : {
- "type" : "string",
- "default" : "disk",
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "enum" : [
- "cdrom",
- "disk"
- ]
+ "type" : "integer"
},
- "backup" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "on|off"
+ "type" : "integer"
},
- "bps_rd" : {
- "type" : "integer",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
},
"iops_wr_max" : {
- "type" : "integer",
"description" : "Maximum unthrottled write I/O pool speed in operations per second.",
"format_description" : "iops",
- "optional" : 1
- },
- "size" : {
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect.",
- "type" : "string",
- "format" : "disk-size"
+ "type" : "integer"
},
"iothread" : {
- "type" : "boolean",
- "optional" : 1,
"description" : "Whether to use iothreads for this drive",
- "format_description" : "off|on"
+ "format_description" : "off|on",
+ "optional" : 1,
+ "type" : "boolean"
},
- "iops_max" : {
- "type" : "integer",
- "format_description" : "iops",
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second."
+ "type" : "number"
},
- "mbps_rd_max" : {
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed speed in megabytes per second.",
"format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
"description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
"type" : "number"
},
- "aio" : {
- "type" : "string",
- "enum" : [
- "native",
- "threads"
- ],
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use."
+ "type" : "number"
},
- "queues" : {
- "minimum" : 2,
- "type" : "integer",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "nbqueues",
- "description" : "Number of queues."
+ "type" : "number"
},
- "discard" : {
- "type" : "string",
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "format_description" : "cdrom|disk",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
"enum" : [
"ignore",
- "on"
+ "report",
+ "stop"
],
+ "format_description" : "ignore|report|stop",
"optional" : 1,
- "format_description" : "ignore|on",
- "description" : "Controls whether to pass discard/trim requests to the underlying storage."
+ "type" : "string"
},
- "serial" : {
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "format_description" : "count",
"optional" : 1,
- "format_description" : "serial",
+ "type" : "integer"
+ },
+ "serial" : {
"description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
"maxLength" : 60,
- "type" : "string",
- "format" : "urlencoded"
- },
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "file" : {
- "description" : "The drive's backing volume.",
- "format_description" : "volume",
- "default_key" : 1,
- "format" : "pve-volume-id-or-qm-path",
"type" : "string"
},
- "mbps" : {
- "type" : "number",
- "optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second."
- },
- "bps_wr" : {
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
"optional" : 1,
- "type" : "integer"
+ "type" : "string"
},
- "iops" : {
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "format_description" : "on|off",
"optional" : 1,
- "format_description" : "iops",
- "type" : "integer"
+ "type" : "boolean"
},
"trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
- "optional" : 1,
- "description" : "Force disk geometry bios translation mode.",
"format_description" : "none|lba|auto",
+ "optional" : 1,
"type" : "string"
},
"volume" : {
"alias" : "file"
},
- "iops_rd_max" : {
- "optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops",
- "type" : "integer"
- },
- "iops_rd" : {
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second.",
- "optional" : 1,
- "type" : "integer"
- },
"werror" : {
+ "description" : "Write error action.",
"enum" : [
"enospc",
"ignore",
],
"format_description" : "enospc|ignore|report|stop",
"optional" : 1,
- "description" : "Write error action.",
- "type" : "string"
- },
- "cache" : {
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "optional" : 1,
- "description" : "The drive's cache mode",
"type" : "string"
- },
- "snapshot" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off"
- },
- "bps" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second.",
- "format_description" : "bps"
- },
- "mbps_wr_max" : {
- "type" : "number",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps"
}
},
- "type" : "string",
- "optional" : 1,
- "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13)."
- },
- "delete" : {
- "type" : "string",
- "format" : "pve-configid-list",
"optional" : 1,
- "description" : "A list of settings you want to delete."
+ "type" : "string"
},
- "shares" : {
- "minimum" : 0,
- "type" : "integer",
- "maximum" : 50000,
- "default" : 1000,
- "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning",
- "optional" : 1
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
},
- "smbios1" : {
- "type" : "string",
- "format" : "pve-qm-smbios1",
+ "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)",
+ "format" : "pve-qm-watchdog",
"optional" : 1,
- "description" : "Specify SMBIOS type 1 fields.",
- "maxLength" : 256
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
- "method" : "POST",
- "name" : "update_vm_async",
+ "proxyto" : "node",
"returns" : {
- "optional" : 1,
- "type" : "string"
- },
- "description" : "Set virtual machine options (asynchrounous API)."
- },
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/config",
+ "text" : "config"
+ },
+ {
+ "info" : {
"GET" : {
- "description" : "Get current virtual machine configuration. This does not include pending configuration changes (see 'pending' API).",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
+ "description" : "Get virtual machine configuration, including pending changes.",
"method" : "GET",
- "name" : "vm_config",
- "proxyto" : "node",
+ "name" : "vm_pending",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "current" : {
- "type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "Get current values (instead of pending values)."
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "returns" : {
- "properties" : {
- "digest" : {
- "type" : "string",
- "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications."
- }
- },
- "type" : "object"
- }
- }
- },
- "text" : "config",
- "leaf" : 1
- },
- {
- "info" : {
- "GET" : {
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
"proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"delete" : {
- "optional" : 1,
"description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
"maximum" : 2,
- "type" : "integer",
- "minimum" : 0
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
"key" : {
- "type" : "string",
- "description" : "Configuration option name."
+ "description" : "Configuration option name.",
+ "type" : "string"
},
- "value" : {
- "type" : "string",
+ "pending" : {
+ "description" : "Pending value.",
"optional" : 1,
- "description" : "Current value."
+ "type" : "string"
},
- "pending" : {
- "type" : "string",
+ "value" : {
+ "description" : "Current value.",
"optional" : 1,
- "description" : "Pending value."
+ "type" : "string"
}
},
"type" : "object"
- }
- },
- "name" : "vm_pending",
- "method" : "GET",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "Get virtual machine configuration, including pending changes."
+ },
+ "type" : "array"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/pending",
- "text" : "pending",
- "leaf" : 1
+ "text" : "pending"
},
{
- "leaf" : 1,
- "text" : "unlink",
- "path" : "/nodes/{node}/qemu/{vmid}/unlink",
"info" : {
"PUT" : {
"description" : "Unlink/delete disk images.",
- "returns" : {
- "type" : "null"
- },
"method" : "PUT",
"name" : "unlink",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk"
- ]
- ]
- },
- "protected" : 1,
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "idlist" : {
- "description" : "A list of disk IDs you want to delete.",
- "type" : "string",
- "format" : "pve-configid-list"
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
"force" : {
"description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
"optional" : 1,
"type" : "boolean"
},
+ "idlist" : {
+ "description" : "A list of disk IDs you want to delete.",
+ "format" : "pve-configid-list",
+ "type" : "string"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node"
- }
- }
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
- "info" : {
- "POST" : {
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Console"
+ "VM.Config.Disk"
]
]
},
- "description" : "Creates a TCP VNC proxy connections.",
"protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/unlink",
+ "text" : "unlink"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Creates a TCP VNC proxy connections.",
"method" : "POST",
"name" : "vncproxy",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer"
},
"websocket" : {
"description" : "starts websockify instead of vncproxy",
"optional" : 1,
"type" : "boolean"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
- "upid" : {
+ "cert" : {
"type" : "string"
},
+ "port" : {
+ "type" : "integer"
+ },
"ticket" : {
"type" : "string"
},
- "user" : {
+ "upid" : {
"type" : "string"
},
- "port" : {
- "type" : "integer"
- },
- "cert" : {
+ "user" : {
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
}
}
},
- "text" : "vncproxy",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
+ "text" : "vncproxy"
},
{
- "leaf" : 1,
- "text" : "vncwebsocket",
"info" : {
"GET" : {
+ "description" : "Opens a weksocket for VNC traffic.",
"method" : "GET",
"name" : "vncwebsocket",
- "returns" : {
- "type" : "object",
- "properties" : {
- "port" : {
- "type" : "string"
- }
- }
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
"port" : {
"description" : "Port number returned by previous vncproxy call.",
+ "maximum" : 5999,
"minimum" : 5900,
- "type" : "integer",
- "maximum" : 5999
+ "type" : "integer"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
},
"vncticket" : {
"description" : "Ticket from previous call to vncproxy.",
"maxLength" : 512,
"type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
- "description" : "You also need to pass a valid ticket (vncticket).",
"check" : [
"perm",
"/vms/{vmid}",
[
"VM.Console"
]
- ]
+ ],
+ "description" : "You also need to pass a valid ticket (vncticket)."
},
- "description" : "Opens a weksocket for VNC traffic."
+ "returns" : {
+ "properties" : {
+ "port" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
+ "text" : "vncwebsocket"
},
{
"info" : {
"POST" : {
"description" : "Returns a SPICE configuration to connect to the VM.",
- "returns" : {
+ "method" : "POST",
+ "name" : "spiceproxy",
+ "parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "tls-port" : {
- "type" : "integer"
- },
- "password" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string"
- },
- "host" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "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"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 1,
- "description" : "Returned values can be directly passed to the 'remote-viewer' application."
+ }
},
- "name" : "spiceproxy",
- "method" : "POST",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "parameters" : {
- "additionalProperties" : 0,
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "additionalProperties" : 1,
+ "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
"properties" : {
+ "host" : {
+ "type" : "string"
+ },
+ "password" : {
+ "type" : "string"
+ },
"proxy" : {
- "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"
},
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "tls-port" : {
+ "type" : "integer"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "type" : {
"type" : "string"
}
}
- },
- "proxyto" : "node"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
"leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
"text" : "spiceproxy"
},
{
- "text" : "status",
- "leaf" : 0,
- "path" : "/nodes/{node}/qemu/{vmid}/status",
"children" : [
{
- "leaf" : 1,
- "text" : "current",
- "path" : "/nodes/{node}/qemu/{vmid}/status/current",
"info" : {
"GET" : {
- "proxyto" : "node",
+ "description" : "Get virtual machine status.",
+ "method" : "GET",
+ "name" : "vm_status",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "object"
- },
- "name" : "vm_status",
- "method" : "GET",
- "description" : "Get virtual machine status."
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/current",
+ "text" : "current"
},
{
- "text" : "start",
- "leaf" : 1,
"info" : {
"POST" : {
+ "description" : "Start virtual machine.",
"method" : "POST",
"name" : "vm_start",
- "returns" : {
- "type" : "string"
- },
- "description" : "Start virtual machine.",
- "proxyto" : "node",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "skiplock" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option."
- },
"machine" : {
- "type" : "string",
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
"description" : "Specific the Qemu machine type.",
"maxLength" : 40,
- "optional" : 1
+ "optional" : 1,
+ "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
+ "type" : "string"
+ },
+ "migratedfrom" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
},
- "stateuri" : {
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
+ "type" : "boolean"
+ },
+ "stateuri" : {
"description" : "Some command save/restore state from this location.",
"maxLength" : 128,
+ "optional" : 1,
"type" : "string"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "migratedfrom" : {
- "description" : "The cluster node name.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-node"
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"VM.PowerMgmt"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/status/start"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/start",
+ "text" : "start"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
"info" : {
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "protected" : 1,
+ "description" : "Stop virtual machine. The qemu process will exit immediately. Thisis akin to pulling the power plug of a running computer and may damage the VM data",
+ "method" : "POST",
+ "name" : "vm_stop",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"keepActive" : {
- "type" : "boolean",
"default" : 0,
+ "description" : "Do not decativate storage volumes.",
"optional" : 1,
- "description" : "Do not decativate storage volumes."
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "type" : "boolean"
},
"migratedfrom" : {
- "format" : "pve-node",
- "type" : "string",
"description" : "The cluster node name.",
- "optional" : 1
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
},
"skiplock" : {
"description" : "Ignore locks - only root is allowed to use this option.",
"type" : "boolean"
},
"timeout" : {
+ "description" : "Wait maximal timeout seconds.",
"minimum" : 0,
- "type" : "integer",
"optional" : 1,
- "description" : "Wait maximal timeout seconds."
+ "type" : "integer"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "Stop virtual machine. The qemu process will exit immediately. Thisis akin to pulling the power plug of a running computer and may damage the VM data",
- "returns" : {
- "type" : "string"
+ }
},
- "method" : "POST",
- "name" : "vm_stop"
- }
- },
- "leaf" : 1,
- "text" : "stop"
- },
- {
- "info" : {
- "POST" : {
"permissions" : {
"check" : [
"perm",
},
"protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
+ "text" : "stop"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Reset virtual machine.",
+ "method" : "POST",
+ "name" : "vm_reset",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
},
"skiplock" : {
- "type" : "boolean",
"description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Reset virtual machine.",
- "method" : "POST",
- "name" : "vm_reset",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
}
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
"leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
"text" : "reset"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
"info" : {
"POST" : {
- "returns" : {
- "type" : "string"
- },
+ "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",
- "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.",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "timeout" : {
+ "forceStop" : {
+ "default" : 0,
+ "description" : "Make sure the VM stops.",
"optional" : 1,
- "description" : "Wait maximal timeout seconds.",
- "minimum" : 0,
- "type" : "integer"
+ "type" : "boolean"
+ },
+ "keepActive" : {
+ "default" : 0,
+ "description" : "Do not decativate storage volumes.",
+ "optional" : 1,
+ "type" : "boolean"
},
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
},
"skiplock" : {
- "type" : "boolean",
"description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1
- },
- "forceStop" : {
"optional" : 1,
- "description" : "Make sure the VM stops.",
- "default" : 0,
"type" : "boolean"
},
- "keepActive" : {
- "type" : "boolean",
- "default" : 0,
+ "timeout" : {
+ "description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Do not decativate storage volumes."
+ "type" : "integer"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
"format" : "pve-vmid",
- "minimum" : 1
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
"text" : "shutdown"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
"info" : {
"POST" : {
"description" : "Suspend virtual machine.",
"method" : "POST",
"name" : "vm_suspend",
- "returns" : {
- "type" : "string"
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
},
"permissions" : {
"check" : [
},
"protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- },
- "skiplock" : {
- "type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
+ "returns" : {
+ "type" : "string"
}
}
},
- "text" : "suspend",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
+ "text" : "suspend"
},
{
- "text" : "resume",
- "leaf" : 1,
"info" : {
"POST" : {
- "proxyto" : "node",
+ "description" : "Resume virtual machine.",
+ "method" : "POST",
+ "name" : "vm_resume",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "skiplock" : {
+ "nocheck" : {
"optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option.",
"type" : "boolean"
},
"node" : {
"format" : "pve-node",
"type" : "string"
},
- "nocheck" : {
- "type" : "boolean",
- "optional" : 1
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "method" : "POST",
- "name" : "vm_resume",
- "description" : "Resume virtual machine."
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/status/resume"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
+ "text" : "resume"
}
],
"info" : {
"GET" : {
- "permissions" : {
- "user" : "all"
- },
"description" : "Directory index",
"method" : "GET",
"name" : "vmcmdidx",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
},
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
"proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
"subdir" : {
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{subdir}"
+ "href" : "{subdir}",
+ "rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/status",
+ "text" : "status"
},
{
- "leaf" : 1,
- "text" : "sendkey",
- "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
"info" : {
"PUT" : {
- "returns" : {
- "type" : "null"
- },
- "name" : "vm_sendkey",
- "method" : "PUT",
"description" : "Send key event to virtual machine.",
+ "method" : "PUT",
+ "name" : "vm_sendkey",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
"key" : {
- "type" : "string",
- "description" : "The key (qemu monitor encoding)."
+ "description" : "The key (qemu monitor encoding).",
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
},
"skiplock" : {
"description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
"type" : "boolean"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"VM.Console"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
+ "text" : "sendkey"
},
{
- "text" : "feature",
- "leaf" : 1,
"info" : {
"GET" : {
"description" : "Check if feature for virtual machine is available.",
- "name" : "vm_feature",
"method" : "GET",
- "returns" : {
+ "name" : "vm_feature",
+ "parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "nodes" : {
- "items" : {
- "type" : "string"
- },
- "type" : "array"
+ "feature" : {
+ "description" : "Feature to check.",
+ "enum" : [
+ "snapshot",
+ "clone",
+ "copy"
+ ],
+ "type" : "string"
},
- "hasFeature" : {
- "type" : "boolean"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "type" : "object"
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "parameters" : {
+ "returns" : {
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "feature" : {
- "type" : "string",
- "enum" : [
- "snapshot",
- "clone",
- "copy"
- ],
- "description" : "Feature to check."
+ "hasFeature" : {
+ "type" : "boolean"
},
- "snapname" : {
- "optional" : 1,
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "type" : "string",
- "format" : "pve-configid"
+ "nodes" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
}
},
- "additionalProperties" : 0
+ "type" : "object"
}
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/feature"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/feature",
+ "text" : "feature"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/clone",
"info" : {
"POST" : {
- "returns" : {
- "type" : "string"
- },
- "name" : "clone_vm",
- "method" : "POST",
"description" : "Create a copy of virtual machine/template.",
- "proxyto" : "node",
+ "method" : "POST",
+ "name" : "clone_vm",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "snapname" : {
- "type" : "string",
- "format" : "pve-configid",
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "optional" : 1
+ "description" : {
+ "description" : "Description for the new VM.",
+ "optional" : 1,
+ "type" : "string"
},
- "full" : {
+ "format" : {
+ "description" : "Target format for file storage.",
+ "enum" : [
+ "raw",
+ "qcow2",
+ "vmdk"
+ ],
"optional" : 1,
- "description" : "Create a full copy of all disk. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.",
+ "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"
},
- "target" : {
- "description" : "Target node. Only allowed if the original VM is on shared storage.",
+ "name" : {
+ "description" : "Set a name for the new VM.",
+ "format" : "dns-name",
"optional" : 1,
- "format" : "pve-node",
"type" : "string"
},
- "pool" : {
- "format" : "pve-poolid",
- "type" : "string",
- "description" : "Add the new VM to the specified pool.",
- "optional" : 1
+ "newid" : {
+ "description" : "VMID for the clone.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
},
- "description" : {
- "description" : "Description for the new VM.",
+ "pool" : {
+ "description" : "Add the new VM to the specified pool.",
+ "format" : "pve-poolid",
"optional" : 1,
"type" : "string"
},
- "name" : {
- "description" : "Set a name for the new VM.",
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
"optional" : 1,
- "format" : "dns-name",
"type" : "string"
},
- "newid" : {
- "description" : "VMID for the clone.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "format" : {
- "type" : "string",
- "requires" : "full",
- "enum" : [
- "raw",
- "qcow2",
- "vmdk"
- ],
- "description" : "Target format for file storage.",
- "optional" : 1
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
"storage" : {
"description" : "Target storage for full clone.",
- "optional" : 1,
"format" : "pve-storage-id",
+ "optional" : 1,
"requires" : "full",
"type" : "string"
+ },
+ "target" : {
+ "description" : "Target node. Only allowed if the original VM is on shared storage.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "protected" : 1,
"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",
+ "returns" : {
+ "type" : "string"
+ }
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/clone",
"text" : "clone"
},
{
- "leaf" : 1,
- "text" : "move_disk",
- "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
"info" : {
"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",
+ "description" : "Move volume to different storage.",
+ "method" : "POST",
+ "name" : "move_vm_disk",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"delete" : {
- "type" : "boolean",
"default" : 0,
"description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
- "optional" : 1
- },
- "format" : {
- "type" : "string",
- "description" : "Target Format.",
"optional" : 1,
- "enum" : [
- "raw",
- "qcow2",
- "vmdk"
- ]
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
+ "type" : "boolean"
},
- "storage" : {
- "description" : "Target storage.",
- "format" : "pve-storage-id",
+ "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"
},
"disk" : {
- "type" : "string",
"description" : "The disk you want to move.",
"enum" : [
"ide0",
"sata3",
"sata4",
"sata5"
- ]
+ ],
+ "type" : "string"
},
- "digest" : {
- "maxLength" : 40,
+ "format" : {
+ "description" : "Target Format.",
+ "enum" : [
+ "raw",
+ "qcow2",
+ "vmdk"
+ ],
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"type" : "string"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
+ },
+ "storage" : {
+ "description" : "Target storage.",
+ "format" : "pve-storage-id",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "description" : "Move volume to different storage.",
- "method" : "POST",
- "name" : "move_vm_disk",
+ "permissions" : {
+ "check" : [
+ "and",
+ [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk"
+ ]
+ ],
+ [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.AllocateSpace"
+ ]
+ ]
+ ],
+ "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage."
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "string",
- "description" : "the task ID."
+ "description" : "the task ID.",
+ "type" : "string"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
+ "text" : "move_disk"
},
{
- "text" : "migrate",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/migrate",
"info" : {
"POST" : {
- "proxyto" : "node",
+ "description" : "Migrate virtual machine. Creates a new migration task.",
+ "method" : "POST",
+ "name" : "migrate_vm",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "online" : {
+ "force" : {
+ "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
"optional" : 1,
- "description" : "Use online/live migration.",
"type" : "boolean"
},
"node" : {
"format" : "pve-node",
"type" : "string"
},
- "force" : {
- "type" : "boolean",
+ "online" : {
+ "description" : "Use online/live migration.",
"optional" : 1,
- "description" : "Allow to migrate VMs which use local devices. Only root may use this option."
+ "type" : "boolean"
},
"target" : {
"description" : "Target node.",
"format" : "pve-node",
"type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"description" : "the task ID.",
"type" : "string"
- },
- "name" : "migrate_vm",
- "method" : "POST",
- "description" : "Migrate virtual machine. Creates a new migration task."
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/migrate",
+ "text" : "migrate"
},
{
"info" : {
"POST" : {
+ "description" : "Execute Qemu monitor commands.",
"method" : "POST",
"name" : "monitor",
- "returns" : {
- "type" : "string"
- },
- "description" : "Execute Qemu monitor commands.",
- "proxyto" : "node",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
"command" : {
"description" : "The monitor command.",
"type" : "string"
},
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "minimum" : 1,
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"VM.Monitor"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/qemu/{vmid}/monitor",
- "text" : "monitor",
- "leaf" : 1
+ "text" : "monitor"
},
{
- "leaf" : 1,
- "text" : "resize",
- "path" : "/nodes/{node}/qemu/{vmid}/resize",
"info" : {
"PUT" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk"
- ]
- ]
- },
- "protected" : 1,
+ "description" : "Extend volume size.",
+ "method" : "PUT",
+ "name" : "resize_vm",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "size" : {
- "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
- "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
+ "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"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
"disk" : {
"description" : "The disk you want to resize.",
"enum" : [
],
"type" : "string"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string"
- },
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
+ "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
+ "type" : "string"
},
"skiplock" : {
"description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
"type" : "boolean"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "Extend volume size.",
- "returns" : {
- "type" : "null"
- },
- "name" : "resize_vm",
- "method" : "PUT"
- }
- }
- },
- {
- "info" : {
- "POST" : {
- "description" : "Snapshot a VM.",
- "method" : "POST",
- "name" : "snapshot",
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
+ }
},
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Snapshot"
+ "VM.Config.Disk"
]
]
},
"protected" : 1,
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "description" : {
- "type" : "string",
- "description" : "A textual description or comment.",
- "optional" : 1
- },
- "vmstate" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Save the vmstate"
- },
- "snapname" : {
- "format" : "pve-configid",
- "type" : "string",
- "maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node"
- },
- "GET" : {
"proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "protected" : 1,
"returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- }
- },
- "name" : "snapshot_list",
- "method" : "GET",
- "description" : "List all snapshots."
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/resize",
+ "text" : "resize"
+ },
+ {
"children" : [
{
"children" : [
{
- "text" : "config",
- "leaf" : 1,
"info" : {
"GET" : {
+ "description" : "Get snapshot configuration",
"method" : "GET",
"name" : "get_snapshot_config",
- "proxyto" : "node",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
"snapname" : {
"description" : "The name of the snapshot.",
+ "format" : "pve-configid",
"maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
+ "type" : "string"
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "returns" : {
- "type" : "object"
- },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get snapshot configuration"
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
},
"PUT" : {
"description" : "Update snapshot metadata.",
- "returns" : {
- "type" : "null"
- },
- "name" : "update_snapshot_config",
"method" : "PUT",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
+ "name" : "update_snapshot_config",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "description" : {
+ "description" : "A textual description or comment.",
+ "optional" : 1,
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "description" : {
- "type" : "string",
- "description" : "A textual description or comment.",
- "optional" : 1
+ "format" : "pve-node",
+ "type" : "string"
},
"snapname" : {
"description" : "The name of the snapshot.",
+ "format" : "pve-configid",
"maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
},
- "proxyto" : "node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
+ "text" : "config"
},
{
- "leaf" : 1,
- "text" : "rollback",
"info" : {
"POST" : {
- "proxyto" : "node",
+ "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",
- "description" : "The cluster node name."
+ "type" : "string"
},
"snapname" : {
- "type" : "string",
+ "description" : "The name of the snapshot.",
"format" : "pve-configid",
"maxLength" : 40,
- "description" : "The name of the snapshot."
+ "type" : "string"
},
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"description" : "the task ID.",
"type" : "string"
- },
- "method" : "POST",
- "name" : "rollback",
- "description" : "Rollback VM state to specified snapshot."
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
+ "text" : "rollback"
}
],
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
"info" : {
- "GET" : {
+ "DELETE" : {
+ "description" : "Delete a VM snapshot.",
+ "method" : "DELETE",
+ "name" : "delsnapshot",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "snapname" : {
- "format" : "pve-configid",
- "type" : "string",
- "description" : "The name of the snapshot.",
- "maxLength" : 40
+ "force" : {
+ "description" : "For removal from config file, even if removing disk snapshots fails.",
+ "optional" : 1,
+ "type" : "boolean"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string"
},
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{cmd}"
+ "type" : "integer"
}
- ]
- },
- "name" : "snapshot_cmd_idx",
- "method" : "GET",
- "permissions" : {
- "user" : "all"
+ }
},
- "description" : ""
- },
- "DELETE" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ },
+ "GET" : {
+ "description" : "",
+ "method" : "GET",
+ "name" : "snapshot_cmd_idx",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "force" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "For removal from config file, even if removing disk snapshots fails."
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
"snapname" : {
- "type" : "string",
+ "description" : "The name of the snapshot.",
"format" : "pve-configid",
"maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
"type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "description" : "Delete a VM snapshot.",
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
+ "permissions" : {
+ "user" : "all"
},
- "method" : "DELETE",
- "name" : "delsnapshot"
+ "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",
- "leaf" : 0
- },
- {
- "text" : "template",
- "leaf" : 1,
"info" : {
- "POST" : {
- "description" : "Create a Template.",
- "method" : "POST",
- "name" : "template",
- "returns" : {
- "type" : "null"
- },
+ "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"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Allocate"
+ "VM.Audit"
]
- ],
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
+ ]
},
"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"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
},
- "disk" : {
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ },
+ "vmstate" : {
+ "description" : "Save the vmstate",
"optional" : 1,
+ "type" : "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",
"sata4",
"sata5"
],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Allocate"
+ ]
+ ],
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
},
- "proxyto" : "node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/template"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/template",
+ "text" : "template"
}
],
- "text" : "{vmid}",
- "leaf" : 0
+ "info" : {
+ "DELETE" : {
+ "description" : "Destroy the vm (also delete all used/owned volumes).",
+ "method" : "DELETE",
+ "name" : "destroy_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "GET" : {
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "vmdiridx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}",
+ "text" : "{vmid}"
}
],
"info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
- },
- "name" : "create_vm",
- "method" : "POST",
- "description" : "Create or restore a virtual machine.",
+ "GET" : {
+ "description" : "Virtual machine index (per node).",
+ "method" : "GET",
+ "name" : "vmlist",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "memory" : {
- "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
- "optional" : 1,
- "minimum" : 16,
- "type" : "integer",
- "default" : 512
- },
- "boot" : {
- "pattern" : "[acdn]{1,4}",
- "optional" : 1,
- "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
- "default" : "cdn",
- "type" : "string"
- },
- "startup" : {
- "optional" : 1,
- "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
- "type" : "string",
- "format" : "pve-startup-order"
- },
- "onboot" : {
- "default" : 0,
- "type" : "boolean",
+ "full" : {
+ "description" : "Determine the full status of active VMs.",
"optional" : 1,
- "description" : "Specifies whether a VM will be started during system bootup."
- },
- "localtime" : {
- "type" : "boolean",
- "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
- "optional" : 1
+ "type" : "boolean"
},
- "description" : {
- "optional" : 1,
- "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string"
- },
- "balloon" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
- "optional" : 1
- },
- "name" : {
- "format" : "dns-name",
- "type" : "string",
- "description" : "Set a name for the VM. Only used on the configuration web interface.",
- "optional" : 1
- },
- "scsihw" : {
- "type" : "string",
- "default" : "lsi",
- "description" : "scsi controller model",
+ }
+ }
+ },
+ "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" : {
+ "default" : 1,
+ "description" : "Enable/disable ACPI.",
"optional" : 1,
- "enum" : [
- "lsi",
- "lsi53c810",
- "virtio-scsi-pci",
- "virtio-scsi-single",
- "megasas",
- "pvscsi"
- ]
+ "type" : "boolean"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "agent" : {
+ "default" : 0,
+ "description" : "Enable/disable Qemu GuestAgent.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "numa[n]" : {
+ "archive" : {
+ "description" : "The backup file.",
+ "maxLength" : 255,
"optional" : 1,
- "description" : "numa topology",
- "format" : {
- "cpus" : {
- "description" : "CPUs accessing this numa node.",
- "format_description" : "id[-id];...",
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "type" : "string"
- },
- "memory" : {
- "optional" : 1,
- "format_description" : "mb",
- "description" : "Amount of memory this numa node provides.",
- "type" : "number"
- },
- "hostnodes" : {
- "type" : "string",
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "format_description" : "id[-id];...",
- "optional" : 1,
- "description" : "host numa nodes to use"
- },
- "policy" : {
- "type" : "string",
- "enum" : [
- "preferred",
- "bind",
- "interleave"
- ],
- "description" : "numa allocation policy.",
- "optional" : 1,
- "format_description" : "preferred|bind|interleave"
- }
- },
"type" : "string"
},
- "force" : {
+ "args" : {
+ "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
"optional" : 1,
- "description" : "Allow to overwrite existing VM.",
- "requires" : "archive",
- "type" : "boolean"
+ "type" : "string"
},
"autostart" : {
"default" : 0,
- "type" : "boolean",
+ "description" : "Automatic restart after crash (currently ignored).",
"optional" : 1,
- "description" : "Automatic restart after crash (currently ignored)."
+ "type" : "boolean"
},
- "cpu" : {
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bios" : {
+ "default" : "seabios",
+ "description" : "Select BIOS implementation.",
+ "enum" : [
+ "seabios",
+ "ovmf"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "boot" : {
+ "default" : "cdn",
+ "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+ "optional" : 1,
+ "pattern" : "[acdn]{1,4}",
+ "type" : "string"
+ },
+ "bootdisk" : {
+ "description" : "Enable booting from specified disk.",
+ "format" : "pve-qm-bootdisk",
+ "optional" : 1,
+ "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "type" : "string"
+ },
+ "cdrom" : {
+ "description" : "This is an alias for option -ide2",
+ "format" : "pve-qm-drive",
"optional" : 1,
- "description" : "Emulated CPU type.",
"type" : "string",
+ "typetext" : "volume"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cpu" : {
+ "description" : "Emulated CPU type.",
"format" : {
- "hidden" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Do not identify as a KVM virtual machine."
- },
"cputype" : {
- "type" : "string",
"default" : "kvm64",
+ "default_key" : 1,
+ "description" : "Emulated CPU type.",
"enum" : [
"486",
"athlon",
"Opteron_G5",
"host"
],
- "description" : "Emulated CPU type.",
"format_description" : "cputype",
- "default_key" : 1
+ "type" : "string"
+ },
+ "hidden" : {
+ "default" : 0,
+ "description" : "Do not identify as a KVM virtual machine.",
+ "optional" : 1,
+ "type" : "boolean"
}
- }
+ },
+ "optional" : 1,
+ "type" : "string"
},
- "acpi" : {
- "description" : "Enable/disable ACPI.",
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit.",
+ "maximum" : 128,
+ "minimum" : 0,
"optional" : 1,
- "default" : 1,
+ "type" : "number"
+ },
+ "cpuunits" : {
+ "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.",
+ "maximum" : 500000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "force" : {
+ "description" : "Allow to overwrite existing VM.",
+ "optional" : 1,
+ "requires" : "archive",
"type" : "boolean"
},
- "startdate" : {
- "type" : "string",
- "default" : "now",
- "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)",
- "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
"optional" : 1,
- "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)"
+ "type" : "boolean"
},
- "vga" : {
- "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",
+ "format" : "pve-qm-hostpci",
"optional" : 1,
- "description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal.",
- "enum" : [
- "std",
- "cirrus",
- "vmware",
- "qxl",
- "serial0",
- "serial1",
- "serial2",
- "serial3",
- "qxl2",
- "qxl3",
- "qxl4"
- ]
+ "type" : "string"
},
- "scsi[n]" : {
- "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+ "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"
+ },
+ "ide[n]" : {
+ "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
"format" : {
- "heads" : {
- "type" : "integer",
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
+ "format_description" : "native|threads",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count"
- },
- "mbps_rd" : {
- "type" : "number",
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second.",
- "optional" : 1
+ "type" : "string"
},
- "secs" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "format_description" : "on|off",
"optional" : 1,
- "format_description" : "count"
+ "type" : "boolean"
},
- "cyls" : {
- "type" : "integer",
- "format_description" : "count",
+ "bps" : {
+ "description" : "Maximum r/w speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count."
+ "type" : "integer"
},
- "mbps_wr" : {
+ "bps_rd" : {
+ "description" : "Maximum read speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "integer"
},
- "detect_zeroes" : {
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean"
+ "type" : "integer"
},
- "iops_wr" : {
- "type" : "integer",
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "format_description" : "none|writethrough|writeback|unsafe|directsync",
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second."
+ "type" : "string"
},
- "media" : {
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "format_description" : "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" : [
- "cdrom",
- "disk"
+ "ignore",
+ "on"
],
- "format_description" : "cdrom|disk",
+ "format_description" : "ignore|on",
"optional" : 1,
- "description" : "The drive's media type.",
- "type" : "string",
- "default" : "disk"
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
},
"format" : {
+ "description" : "The drive's backing file's data format.",
"enum" : [
"raw",
"cow",
"cloop"
],
"format_description" : "drive format",
- "description" : "The drive's backing file's data format.",
"optional" : 1,
"type" : "string"
},
- "bps_rd" : {
- "type" : "integer",
- "description" : "Maximum read speed speed in bytes per second.",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "format_description" : "count",
"optional" : 1,
- "format_description" : "bps"
+ "type" : "integer"
},
- "backup" : {
- "description" : "Whether the drive should be included when making backups.",
+ "iops" : {
+ "description" : "Maximum r/w I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "on|off",
- "type" : "boolean"
+ "type" : "integer"
},
"iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
"format_description" : "iops",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
"type" : "integer"
},
- "mbps_rd_max" : {
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number"
+ "type" : "integer"
},
- "aio" : {
- "type" : "string",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
- "enum" : [
- "native",
- "threads"
- ]
+ "type" : "integer"
},
- "queues" : {
- "minimum" : 2,
- "type" : "integer",
- "format_description" : "nbqueues",
+ "iops_wr" : {
+ "description" : "Maximum write I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Number of queues."
+ "type" : "integer"
},
"iops_wr_max" : {
- "type" : "integer",
"description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "iops"
+ "type" : "integer"
},
- "size" : {
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect.",
- "format" : "disk-size",
- "type" : "string"
- },
- "iothread" : {
- "type" : "boolean",
- "description" : "Whether to use iothreads for this drive",
- "format_description" : "off|on",
- "optional" : 1
+ "type" : "number"
},
- "mbps" : {
- "type" : "number",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "number"
},
- "bps_wr" : {
- "description" : "Maximum write speed speed in bytes per second.",
+ "mbps_rd" : {
+ "description" : "Maximum read speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "bps",
- "type" : "integer"
+ "type" : "number"
},
- "iops" : {
- "format_description" : "iops",
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "integer"
+ "type" : "number"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
"format_description" : "mbps",
"optional" : 1,
"type" : "number"
},
- "serial" : {
- "type" : "string",
- "format" : "urlencoded",
- "format_description" : "serial",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "maxLength" : 60,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long."
+ "type" : "number"
},
- "discard" : {
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
"enum" : [
- "ignore",
- "on"
+ "cdrom",
+ "disk"
],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "format_description" : "cdrom|disk",
"optional" : 1,
- "format_description" : "ignore|on",
"type" : "string"
},
- "file" : {
- "format" : "pve-volume-id-or-qm-path",
- "type" : "string",
- "format_description" : "volume",
- "description" : "The drive's backing volume.",
- "default_key" : 1
- },
- "iops_rd" : {
- "type" : "integer",
+ "model" : {
+ "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "model",
+ "maxLength" : 120,
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "string"
},
- "werror" : {
+ "rerror" : {
+ "description" : "Read error action.",
"enum" : [
- "enospc",
"ignore",
"report",
"stop"
],
+ "format_description" : "ignore|report|stop",
"optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
- "description" : "Write error action.",
"type" : "string"
},
- "trans" : {
- "format_description" : "none|lba|auto",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "format_description" : "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",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "format_description" : "on|off",
"optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
"description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
+ "format_description" : "none|lba|auto",
+ "optional" : 1,
"type" : "string"
},
"volume" : {
"alias" : "file"
},
- "iops_rd_max" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
- },
- "cache" : {
- "type" : "string",
- "optional" : 1,
- "description" : "The drive's cache mode",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
+ "werror" : {
+ "description" : "Write error action.",
"enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
- },
- "snapshot" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off",
- "optional" : 1
- },
- "mbps_wr_max" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "bps" : {
- "format_description" : "bps",
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "format_description" : "enospc|ignore|report|stop",
"optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second.",
- "type" : "integer"
+ "type" : "string"
}
},
- "type" : "string"
- },
- "shares" : {
"optional" : 1,
- "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning",
- "minimum" : 0,
- "maximum" : 50000,
- "default" : 1000,
- "type" : "integer"
- },
- "smbios1" : {
- "description" : "Specify SMBIOS type 1 fields.",
- "optional" : 1,
- "maxLength" : 256,
- "type" : "string",
- "format" : "pve-qm-smbios1"
- },
- "cores" : {
- "type" : "integer",
- "default" : 1,
- "minimum" : 1,
- "description" : "The number of cores per socket.",
- "optional" : 1
- },
- "migrate_downtime" : {
- "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
- "optional" : 1,
- "minimum" : 0,
- "default" : 0.1,
- "type" : "number"
+ "type" : "string"
},
"keyboard" : {
- "type" : "string",
"default" : "en-us",
+ "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
"enum" : [
- "en-gb",
+ "de",
"de-ch",
+ "da",
+ "en-gb",
"en-us",
- "mk",
+ "es",
+ "fi",
+ "fr",
"fr-be",
- "de",
- "pt-br",
- "sv",
+ "fr-ca",
"fr-ch",
- "no",
- "pt",
"hu",
- "sl",
- "lt",
- "fi",
+ "is",
"it",
+ "ja",
+ "lt",
+ "mk",
"nl",
- "is",
- "da",
- "fr-ca",
+ "no",
"pl",
- "fr",
- "es",
- "ja",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
"tr"
],
"optional" : 1,
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file."
+ "type" : "string"
},
- "freeze" : {
- "type" : "boolean",
- "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
- "optional" : 1
+ "kvm" : {
+ "default" : 1,
+ "description" : "Enable/disable KVM hardware virtualization.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "net[n]" : {
- "format" : "pve-qm-net",
- "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,
- "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" : "boolean"
},
- "vcpus" : {
- "minimum" : 1,
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "migrate",
+ "backup",
+ "snapshot",
+ "rollback"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "machine" : {
+ "description" : "Specific the Qemu machine type.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
+ "type" : "string"
+ },
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number"
+ },
+ "migrate_speed" : {
"default" : 0,
- "type" : "integer",
+ "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Number of hotplugged vcpus."
+ "type" : "integer"
},
- "pool" : {
+ "name" : {
+ "description" : "Set a name for the VM. Only used on the configuration web interface.",
+ "format" : "dns-name",
"optional" : 1,
- "description" : "Add the VM to the specified pool.",
- "format" : "pve-poolid",
"type" : "string"
},
- "archive" : {
- "maxLength" : 255,
+ "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",
+ "format" : "pve-qm-net",
"optional" : 1,
- "description" : "The backup file.",
"type" : "string"
},
- "hostpci[n]" : {
- "description" : "Map host pci devices. HOSTPCIDEVICE syntax is:\n\n'bus:dev.func' (hexadecimal numbers)\n\nYou can us the 'lspci' command to list existing pci devices.\n\nThe 'rombar' option determines whether or not the device's ROM will be visible in the guest's memory map (default is 'on').\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "numa" : {
+ "default" : 0,
+ "description" : "Enable/disable NUMA.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "numa[n]" : {
+ "description" : "numa topology",
+ "format" : {
+ "cpus" : {
+ "description" : "CPUs accessing this numa node.",
+ "format_description" : "id[-id];...",
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "hostnodes" : {
+ "description" : "host numa nodes to use",
+ "format_description" : "id[-id];...",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "memory" : {
+ "description" : "Amount of memory this numa node provides.",
+ "format_description" : "mb",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "policy" : {
+ "description" : "numa allocation policy.",
+ "enum" : [
+ "preferred",
+ "bind",
+ "interleave"
+ ],
+ "format_description" : "preferred|bind|interleave",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
"optional" : 1,
- "format" : "pve-qm-hostpci",
"type" : "string"
},
- "kvm" : {
- "default" : 1,
- "type" : "boolean",
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
"optional" : 1,
- "description" : "Enable/disable KVM hardware virtualization."
+ "type" : "boolean"
},
"ostype" : {
- "type" : "string",
+ "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",
"enum" : [
"other",
"wxp",
"l26",
"solaris"
],
- "description" : "Used to enable special optimization/features for specific\noperating systems:\n\nother => unspecified OS\nwxp => Microsoft Windows XP\nw2k => Microsoft Windows 2000\nw2k3 => Microsoft Windows 2003\nw2k8 => Microsoft Windows 2008\nwvista => Microsoft Windows Vista\nwin7 => Microsoft Windows 7\nwin8 => Microsoft Windows 8/2012\nl24 => Linux 2.4 Kernel\nl26 => Linux 2.6/3.X Kernel\nsolaris => solaris/opensolaris/openindiania kernel\n\nother|l24|l26|solaris ... no special behaviour\nwxp|w2k|w2k3|w2k8|wvista|win7|win8 ... use --localtime switch\n",
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
- "description" : "Reference to unused volumes.",
- "optional" : 1
- },
- "watchdog" : {
- "type" : "string",
- "format" : "pve-qm-watchdog",
- "optional" : 1,
- "description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
- },
- "template" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable Template.",
- "optional" : 1
- },
- "reboot" : {
"optional" : 1,
- "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
- "type" : "boolean",
- "default" : 1
+ "type" : "string"
},
- "machine" : {
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
- "description" : "Specific the Qemu machine type.",
- "maxLength" : 40,
+ "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",
"optional" : 1,
+ "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
"type" : "string"
},
- "hotplug" : {
- "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
+ "pool" : {
+ "description" : "Add the VM to the specified pool.",
+ "format" : "pve-poolid",
"optional" : 1,
- "type" : "string",
- "default" : "network,disk,usb",
- "format" : "pve-hotplug-features"
+ "type" : "string"
},
"protection" : {
- "type" : "boolean",
"default" : 0,
"description" : "Sets the protection flag of the VM. This will prevent the remove operation.",
- "optional" : 1
- },
- "args" : {
- "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
- "optional" : 1,
- "type" : "string"
- },
- "migrate_speed" : {
- "minimum" : 0,
- "default" : 0,
- "type" : "integer",
"optional" : 1,
- "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit."
+ "type" : "boolean"
},
- "bootdisk" : {
- "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "reboot" : {
+ "default" : 1,
+ "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
"optional" : 1,
- "description" : "Enable booting from specified disk.",
- "type" : "string",
- "format" : "pve-qm-bootdisk"
+ "type" : "boolean"
},
"sata[n]" : {
- "type" : "string",
+ "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"
+ ],
+ "format_description" : "native|threads",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "format_description" : "on|off",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"bps" : {
"description" : "Maximum r/w speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed speed in bytes per second.",
"format_description" : "bps",
+ "optional" : 1,
"type" : "integer"
},
- "mbps_wr_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "number"
+ "type" : "integer"
},
"cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
"none",
"writethrough",
"directsync"
],
"format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
"optional" : 1,
"type" : "string"
},
- "snapshot" : {
- "format_description" : "on|off",
- "optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean"
- },
- "rerror" : {
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
- "format_description" : "ignore|report|stop",
- "description" : "Read error action.",
- "optional" : 1,
- "type" : "string"
- },
- "trans" : {
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "description" : "Force disk geometry bios translation mode.",
- "format_description" : "none|lba|auto",
- "optional" : 1,
- "type" : "string"
- },
- "volume" : {
- "alias" : "file"
- },
- "iops_rd_max" : {
- "type" : "integer",
- "format_description" : "iops",
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "optional" : 1
- },
- "werror" : {
- "format_description" : "enospc|ignore|report|stop",
- "description" : "Write error action.",
- "optional" : 1,
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string"
- },
- "iops_rd" : {
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "format_description" : "count",
"optional" : 1,
- "description" : "Maximum read I/O speed in operations per second.",
- "format_description" : "iops",
"type" : "integer"
},
- "serial" : {
- "format" : "urlencoded",
- "type" : "string",
- "optional" : 1,
- "format_description" : "serial",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "maxLength" : 60
- },
- "mbps_max" : {
- "type" : "number",
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
"optional" : 1,
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "boolean"
},
"discard" : {
- "optional" : 1,
- "format_description" : "ignore|on",
"description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"enum" : [
"ignore",
"on"
],
+ "format_description" : "ignore|on",
+ "optional" : 1,
"type" : "string"
},
"file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
"default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
"format_description" : "volume",
- "description" : "The drive's backing volume."
+ "type" : "string"
},
- "mbps" : {
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "format_description" : "drive format",
"optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "string"
},
- "bps_wr" : {
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "format_description" : "count",
"optional" : 1,
"type" : "integer"
},
"iops" : {
"description" : "Maximum r/w I/O speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
"format_description" : "iops",
+ "optional" : 1,
"type" : "integer"
},
- "size" : {
- "type" : "string",
- "format" : "disk-size",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
+ "type" : "integer"
},
- "iops_wr_max" : {
- "type" : "integer",
+ "iops_wr" : {
+ "description" : "Maximum write I/O speed in operations per second.",
"format_description" : "iops",
"optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second."
+ "type" : "integer"
},
- "mbps_rd_max" : {
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
"format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "optional" : 1,
"type" : "number"
},
- "aio" : {
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
- "enum" : [
- "native",
- "threads"
- ],
- "type" : "string"
+ "type" : "number"
},
- "iops_max" : {
- "type" : "integer",
- "format_description" : "iops",
+ "mbps_rd" : {
+ "description" : "Maximum read speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second."
+ "type" : "number"
},
- "backup" : {
- "type" : "boolean",
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making backups.",
- "optional" : 1
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "bps_rd" : {
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "type" : "integer"
+ "type" : "number"
},
- "format" : {
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "description" : "The drive's backing file's data format.",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "drive format",
- "type" : "string"
+ "type" : "number"
},
"media" : {
- "type" : "string",
"default" : "disk",
+ "description" : "The drive's media type.",
"enum" : [
"cdrom",
"disk"
],
- "description" : "The drive's media type.",
+ "format_description" : "cdrom|disk",
"optional" : 1,
- "format_description" : "cdrom|disk"
+ "type" : "string"
},
- "detect_zeroes" : {
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "format_description" : "ignore|report|stop",
+ "optional" : 1,
+ "type" : "string"
},
- "iops_wr" : {
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second.",
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "format_description" : "count",
"optional" : 1,
"type" : "integer"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "string"
},
- "cyls" : {
- "format_description" : "count",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "type" : "integer"
+ "type" : "string"
},
- "secs" : {
- "type" : "integer",
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "format_description" : "on|off",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count"
+ "type" : "boolean"
},
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "format_description" : "none|lba|auto",
"optional" : 1,
- "format_description" : "count",
- "type" : "integer"
+ "type" : "string"
},
- "mbps_rd" : {
- "type" : "number",
- "format_description" : "mbps",
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "format_description" : "enospc|ignore|report|stop",
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second."
+ "type" : "string"
}
},
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "cdrom" : {
- "description" : "This is an alias for option -ide2",
- "typetext" : "volume",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-qm-drive"
- },
- "tdf" : {
- "description" : "Enable/disable time drift fix.",
- "optional" : 1,
- "type" : "boolean",
- "default" : 0
- },
- "serial[n]" : {
- "type" : "string",
- "pattern" : "(/dev/.+|socket)",
- "description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0), or create a unix socket on the host side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
- "optional" : 1
- },
- "sockets" : {
- "description" : "The number of CPU sockets.",
- "optional" : 1,
- "type" : "integer",
- "default" : 1,
- "minimum" : 1
- },
- "ide[n]" : {
+ "scsi[n]" : {
+ "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
"format" : {
- "bps_rd" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
+ "format_description" : "native|threads",
"optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "type" : "integer"
+ "type" : "string"
},
"backup" : {
- "optional" : 1,
- "format_description" : "on|off",
"description" : "Whether the drive should be included when making backups.",
+ "format_description" : "on|off",
+ "optional" : 1,
"type" : "boolean"
},
- "model" : {
- "type" : "string",
- "format" : "urlencoded",
+ "bps" : {
+ "description" : "Maximum r/w speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "maxLength" : 120,
- "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
- "format_description" : "model"
+ "type" : "integer"
},
- "media" : {
- "type" : "string",
- "default" : "disk",
+ "bps_rd" : {
+ "description" : "Maximum read speed speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
- "cdrom",
- "disk"
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
- "format_description" : "cdrom|disk",
+ "format_description" : "none|writethrough|writeback|unsafe|directsync",
"optional" : 1,
- "description" : "The drive's media type."
+ "type" : "string"
},
- "iops_wr" : {
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second.",
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "format_description" : "count",
"optional" : 1,
"type" : "integer"
},
"detect_zeroes" : {
- "type" : "boolean",
"description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "format_description" : "ignore|on",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
},
"format" : {
- "type" : "string",
+ "description" : "The drive's backing file's data format.",
"enum" : [
"raw",
"cow",
"vmdk",
"cloop"
],
- "description" : "The drive's backing file's data format.",
"format_description" : "drive format",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "cyls" : {
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
"format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
"optional" : 1,
"type" : "integer"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
+ "iops" : {
+ "description" : "Maximum r/w I/O speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
+ "format_description" : "off|on",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
"format_description" : "mbps",
"optional" : 1,
"type" : "number"
},
- "heads" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific head count.",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "integer"
+ "type" : "number"
},
"mbps_rd" : {
- "type" : "number",
"description" : "Maximum read speed speed in megabytes per second.",
"format_description" : "mbps",
- "optional" : 1
+ "optional" : 1,
+ "type" : "number"
},
- "secs" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "count"
+ "type" : "number"
},
- "bps" : {
- "description" : "Maximum r/w speed speed in bytes per second.",
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "bps",
- "type" : "integer"
+ "type" : "number"
},
"mbps_wr_max" : {
"description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "optional" : 1,
"format_description" : "mbps",
+ "optional" : 1,
"type" : "number"
},
- "snapshot" : {
- "format_description" : "on|off",
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "format_description" : "cdrom|disk",
"optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean"
+ "type" : "string"
},
- "cache" : {
- "type" : "string",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
+ "queues" : {
+ "description" : "Number of queues.",
+ "format_description" : "nbqueues",
+ "minimum" : 2,
"optional" : 1,
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
+ "type" : "integer"
},
- "werror" : {
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "format_description" : "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,
- "format_description" : "enospc|ignore|report|stop",
- "description" : "Write error action.",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
"type" : "string"
},
- "iops_rd" : {
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second.",
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
"optional" : 1,
- "type" : "integer"
+ "type" : "string"
},
- "rerror" : {
- "type" : "string",
- "description" : "Read error action.",
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "format_description" : "on|off",
"optional" : 1,
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ]
+ "type" : "boolean"
},
"trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
- "optional" : 1,
"format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
+ "optional" : 1,
"type" : "string"
},
"volume" : {
"alias" : "file"
},
- "iops_rd_max" : {
- "type" : "integer",
- "optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum unthrottled read I/O pool speed in operations per second."
- },
- "mbps" : {
- "format_description" : "mbps",
- "optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "type" : "number"
- },
- "bps_wr" : {
- "optional" : 1,
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps",
- "type" : "integer"
- },
- "iops" : {
- "type" : "integer",
- "description" : "Maximum r/w I/O speed in operations per second.",
- "optional" : 1,
- "format_description" : "iops"
- },
- "serial" : {
- "format" : "urlencoded",
- "type" : "string",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
- "optional" : 1,
- "maxLength" : 60
- },
- "discard" : {
+ "werror" : {
+ "description" : "Write error action.",
"enum" : [
+ "enospc",
"ignore",
- "on"
+ "report",
+ "stop"
],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "optional" : 1,
- "format_description" : "ignore|on",
- "type" : "string"
- },
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "default_key" : 1,
- "format_description" : "volume",
- "description" : "The drive's backing volume."
- },
- "mbps_rd_max" : {
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "aio" : {
+ "format_description" : "enospc|ignore|report|stop",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "enum" : [
- "native",
- "threads"
- ],
"type" : "string"
- },
- "iops_max" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops"
- },
- "size" : {
- "type" : "string",
- "format" : "disk-size",
- "description" : "Disk size. This is purely informational and has no effect.",
- "optional" : 1
- },
- "iops_wr_max" : {
- "format_description" : "iops",
- "optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "type" : "integer"
}
},
- "type" : "string",
- "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "cpuunits" : {
+ "scsihw" : {
+ "default" : "lsi",
+ "description" : "scsi controller model",
+ "enum" : [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
"optional" : 1,
- "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
- "minimum" : 0,
- "type" : "integer",
- "default" : 1000,
- "maximum" : 500000
+ "type" : "string"
},
- "cpulimit" : {
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0), or create a unix socket on the host side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
"optional" : 1,
- "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.",
+ "pattern" : "(/dev/.+|socket)",
+ "type" : "string"
+ },
+ "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,
- "default" : 0,
- "type" : "number",
- "maximum" : 128
+ "optional" : 1,
+ "type" : "integer"
},
- "storage" : {
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "smp" : {
+ "default" : 1,
+ "description" : "The number of CPUs. Please use option -sockets instead.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "sockets" : {
+ "default" : 1,
+ "description" : "The number of CPU sockets.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
},
+ "tablet" : {
+ "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).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "tdf" : {
+ "default" : 0,
+ "description" : "Enable/disable time drift fix.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"unique" : {
- "type" : "boolean",
- "requires" : "archive",
"description" : "Assign a unique random ethernet address.",
- "optional" : 1
+ "optional" : 1,
+ "requires" : "archive",
+ "type" : "boolean"
},
- "numa" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Enable/disable NUMA.",
- "optional" : 1
+ "unused[n]" : {
+ "description" : "Reference to unused volumes.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string"
},
- "lock" : {
- "type" : "string",
+ "usb[n]" : {
+ "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" : {
+ "default_key" : 1,
+ "description" : "The Host USB device or port or the value spice",
+ "format" : "pve-qm-usb-device",
+ "format_description" : "HOSTUSBDEVICE|spice",
+ "type" : "string"
+ },
+ "usb3" : {
+ "description" : "Specifies whether if given host option is a USB3 device or port",
+ "format_description" : "yes|no",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
"optional" : 1,
- "description" : "Lock/unlock the VM.",
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ]
+ "type" : "string"
},
- "agent" : {
+ "vcpus" : {
+ "default" : 0,
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Enable/disable Qemu GuestAgent.",
- "type" : "boolean",
- "default" : 0
+ "type" : "integer"
+ },
+ "vga" : {
+ "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"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
"virtio[n]" : {
- "type" : "string",
+ "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
"format" : {
- "secs" : {
- "type" : "integer",
- "format_description" : "count",
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads"
+ ],
+ "format_description" : "native|threads",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count."
+ "type" : "string"
},
- "heads" : {
- "type" : "integer",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "format_description" : "on|off",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count"
+ "type" : "boolean"
},
- "mbps_rd" : {
- "type" : "number",
- "format_description" : "mbps",
+ "bps" : {
+ "description" : "Maximum r/w speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second."
+ "type" : "integer"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
+ "bps_rd" : {
+ "description" : "Maximum read speed speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "integer"
},
- "cyls" : {
+ "bps_wr" : {
+ "description" : "Maximum write speed speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "format_description" : "none|writethrough|writeback|unsafe|directsync",
"optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
"description" : "Force the drive's physical geometry to have a specific cylinder count.",
"format_description" : "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"
+ ],
+ "format_description" : "ignore|on",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
"format" : {
- "type" : "string",
"description" : "The drive's backing file's data format.",
- "optional" : 1,
- "format_description" : "drive format",
"enum" : [
"raw",
"cow",
"qcow2",
"vmdk",
"cloop"
- ]
- },
- "media" : {
- "optional" : 1,
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
],
- "default" : "disk",
+ "format_description" : "drive format",
+ "optional" : 1,
"type" : "string"
},
- "iops_wr" : {
- "format_description" : "iops",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "format_description" : "count",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
"type" : "integer"
},
- "detect_zeroes" : {
- "type" : "boolean",
+ "iops" : {
+ "description" : "Maximum r/w I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
- },
- "backup" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off",
- "optional" : 1
- },
- "bps_rd" : {
- "type" : "integer",
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "optional" : 1
+ "type" : "integer"
},
- "size" : {
- "type" : "string",
- "format" : "disk-size",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
+ "type" : "integer"
},
- "iothread" : {
- "description" : "Whether to use iothreads for this drive",
+ "iops_rd" : {
+ "description" : "Maximum read I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "off|on",
- "type" : "boolean"
+ "type" : "integer"
},
- "iops_wr_max" : {
- "type" : "integer",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
"format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "optional" : 1
- },
- "mbps_rd_max" : {
- "type" : "number",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "format_description" : "mbps",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "aio" : {
- "type" : "string",
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
+ "iops_wr" : {
+ "description" : "Maximum write I/O speed in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "enum" : [
- "native",
- "threads"
- ]
+ "type" : "integer"
},
- "iops_max" : {
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
"format_description" : "iops",
"optional" : 1,
"type" : "integer"
},
- "discard" : {
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
+ "format_description" : "off|on",
"optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "format_description" : "ignore|on",
- "enum" : [
- "ignore",
- "on"
- ],
- "type" : "string"
+ "type" : "boolean"
},
- "serial" : {
- "format_description" : "serial",
+ "mbps" : {
+ "description" : "Maximum r/w speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "maxLength" : 60,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format" : "urlencoded",
- "type" : "string"
+ "type" : "number"
},
"mbps_max" : {
"description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed speed in megabytes per second.",
"format_description" : "mbps",
+ "optional" : 1,
"type" : "number"
},
- "file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "default_key" : 1,
- "description" : "The drive's backing volume.",
- "format_description" : "volume"
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "bps_wr" : {
- "format_description" : "bps",
+ "mbps_wr" : {
+ "description" : "Maximum write speed speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum write speed speed in bytes per second.",
- "type" : "integer"
+ "type" : "number"
},
- "mbps" : {
- "type" : "number",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool speed in megabytes per second.",
"format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "number"
},
- "iops" : {
- "type" : "integer",
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "format_description" : "cdrom|disk",
"optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "string"
},
"rerror" : {
"description" : "Read error action.",
- "optional" : 1,
- "format_description" : "ignore|report|stop",
"enum" : [
"ignore",
"report",
"stop"
],
+ "format_description" : "ignore|report|stop",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "format_description" : "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",
+ "optional" : 1,
"type" : "string"
},
+ "snapshot" : {
+ "description" : "Whether the drive should be included when making snapshots.",
+ "format_description" : "on|off",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
"format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
"optional" : 1,
"type" : "string"
},
"volume" : {
"alias" : "file"
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "optional" : 1,
- "format_description" : "iops",
- "type" : "integer"
- },
"werror" : {
+ "description" : "Write error action.",
"enum" : [
"enospc",
"ignore",
"report",
"stop"
],
- "description" : "Write error action.",
"format_description" : "enospc|ignore|report|stop",
"optional" : 1,
"type" : "string"
- },
- "iops_rd" : {
- "description" : "Maximum read I/O speed in operations per second.",
- "format_description" : "iops",
- "optional" : 1,
- "type" : "integer"
- },
- "mbps_wr_max" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "bps" : {
- "type" : "integer",
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
- "optional" : 1
- },
- "cache" : {
- "type" : "string",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "description" : "The drive's cache mode",
- "optional" : 1,
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
- },
- "snapshot" : {
- "optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean"
}
},
- "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
- "optional" : 1
- },
- "bios" : {
"optional" : 1,
- "description" : "Select BIOS implementation.",
- "enum" : [
- "seabios",
- "ovmf"
- ],
- "default" : "seabios",
- "type" : "string"
- },
- "parallel[n]" : {
- "optional" : 1,
- "description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
- "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
"type" : "string"
},
- "usb[n]" : {
- "format" : {
- "usb3" : {
- "description" : "Specifies whether if given host option is a USB3 device or port",
- "optional" : 1,
- "format_description" : "yes|no",
- "type" : "boolean"
- },
- "host" : {
- "description" : "The Host USB device or port or the value spice",
- "format_description" : "HOSTUSBDEVICE|spice",
- "default_key" : 1,
- "format" : "pve-qm-usb-device",
- "type" : "string"
- }
- },
- "type" : "string",
- "optional" : 1,
- "description" : "Configure an USB device (n is 0 to 4). This can be used to\npass-through usb devices to the guest. HOSTUSBDEVICE syntax is:\n\n'bus-port(.port)*' (decimal numbers) or\n'vendor_id:product_id' (hexadeciaml numbers) or\n'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nThe 'usb3' option determines whether the device is a USB3 device or not (this does currently not work reliably with spice redirection and is then ignored).\n\n"
- },
- "smp" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "default" : 1,
- "type" : "integer",
- "description" : "The number of CPUs. Please use option -sockets instead.",
- "optional" : 1
+ "type" : "integer"
},
- "tablet" : {
- "optional" : 1,
- "description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl).",
- "default" : 1,
- "type" : "boolean"
- }
- }
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "user" : "all",
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore (option 'archive'), it is enough if the user has 'VM.Backup' permission and the VM already exists. If you create disks you need 'Datastore.AllocateSpace' on any used storage."
- }
- },
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "full" : {
+ "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)",
+ "format" : "pve-qm-watchdog",
"optional" : 1,
- "description" : "Determine the full status of active VMs.",
- "type" : "boolean"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
"type" : "string"
}
}
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
- "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
+ "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" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{vmid}"
- }
- ],
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "type" : "array"
- },
- "name" : "vmlist",
- "method" : "GET",
- "description" : "Virtual machine index (per node)."
+ "type" : "string"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu",
+ "text" : "qemu"
},
{
"children" : [
{
- "leaf" : 0,
- "text" : "{vmid}",
"children" : [
{
- "leaf" : 1,
- "text" : "config",
- "path" : "/nodes/{node}/lxc/{vmid}/config",
"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"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
+ "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,
- "type" : "boolean",
+ "description" : "Attach a console device (/dev/console) to the container.",
"optional" : 1,
- "description" : "Attach a console device (/dev/console) to the container."
+ "type" : "boolean"
},
"cpulimit" : {
- "minimum" : 0,
- "maximum" : 128,
- "type" : "number",
"default" : 0,
"description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.",
- "optional" : 1
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number"
},
"cpuunits" : {
- "minimum" : 0,
- "type" : "integer",
"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" : "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"
},
- "net[n]" : {
- "description" : "Specifies network interfaces for the container.",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "description" : {
+ "description" : "Container description. Only used on the configuration web interface.",
"optional" : 1,
- "format" : {
- "ip6" : {
- "format" : "pve-ipv6-config",
- "type" : "string",
- "description" : "IPv6 address in CIDR format.",
- "optional" : 1,
- "format_description" : "IPv6Format/CIDR"
- },
- "firewall" : {
- "type" : "boolean",
- "optional" : 1,
- "format_description" : "[1|0]",
- "description" : "Controls whether this interface's firewall rules should be used."
- },
- "mtu" : {
- "type" : "integer",
- "minimum" : 64,
- "format_description" : "Number",
- "optional" : 1,
- "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)"
- },
- "gw6" : {
- "optional" : 1,
- "format_description" : "GatewayIPv6",
- "description" : "Default gateway for IPv6 traffic.",
- "format" : "ipv6",
- "type" : "string"
- },
- "hwaddr" : {
- "type" : "string",
- "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})",
- "description" : "Bridge to attach the network device to. (lxc.network.hwaddr)",
- "optional" : 1,
- "format_description" : "MAC"
- },
- "gw" : {
- "format_description" : "GatewayIPv4",
- "description" : "Default gateway for IPv4 traffic.",
- "optional" : 1,
- "type" : "string",
- "format" : "ipv4"
- },
- "ip" : {
- "format" : "pve-ipv4-config",
- "type" : "string",
- "description" : "IPv4 address in CIDR format.",
- "format_description" : "IPv4Format/CIDR",
- "optional" : 1
- },
- "tag" : {
- "optional" : 1,
- "description" : "VLAN tag for this interface.",
- "format_description" : "VlanNo",
- "minimum" : "2",
- "type" : "integer",
- "maximum" : "4094"
- },
- "rate" : {
- "type" : "number",
- "description" : "Apply rate limiting to the interface",
- "format_description" : "mbps",
- "optional" : 1
- },
- "name" : {
- "type" : "string",
- "pattern" : "[-_.\\w\\d]+",
- "format_description" : "String",
- "description" : "Name of the network device as seen from inside the container. (lxc.network.name)"
- },
- "bridge" : {
- "pattern" : "[-_.\\w\\d]+",
- "optional" : 1,
- "description" : "Bridge to attach the network device to.",
- "format_description" : "vmbr<Number>",
- "type" : "string"
- },
- "trunks" : {
- "type" : "string",
- "optional" : 1,
- "description" : "VLAN ids to pass through the interface",
- "format_description" : "vlanid[;vlanid...]",
- "pattern" : "(?^:\\d+(?:;\\d+)*)"
- },
- "type" : {
- "description" : "Network interface type.",
- "optional" : 1,
- "enum" : [
- "veth"
- ],
- "type" : "string"
- }
- },
"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" : 1,
+ "type" : "string"
+ },
+ "hostname" : {
+ "description" : "Set a host name for the container.",
+ "format" : "dns-name",
+ "maxLength" : 255,
"optional" : 1,
"type" : "string"
},
"lock" : {
+ "description" : "Lock/unlock the VM.",
"enum" : [
"migrate",
"backup",
"rollback"
],
"optional" : 1,
- "description" : "Lock/unlock the VM.",
- "type" : "string"
- },
- "swap" : {
- "minimum" : 0,
- "type" : "integer",
- "default" : 512,
- "description" : "Amount of SWAP for the VM in MB.",
- "optional" : 1
- },
- "description" : {
- "description" : "Container description. Only used on the configuration web interface.",
- "optional" : 1,
- "type" : "string"
- },
- "onboot" : {
- "description" : "Specifies whether a VM will be started during system bootup.",
- "optional" : 1,
- "default" : 0,
- "type" : "boolean"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "ostype" : {
- "type" : "string",
- "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
- "optional" : 1,
- "enum" : [
- "debian",
- "ubuntu",
- "centos",
- "fedora",
- "opensuse",
- "archlinux",
- "alpine",
- "unmanaged"
- ]
- },
- "tty" : {
- "minimum" : 0,
- "default" : 2,
- "maximum" : 6,
- "type" : "integer",
- "description" : "Specify the number of tty available to the container",
- "optional" : 1
- },
- "hostname" : {
- "description" : "Set a host name for the container.",
- "optional" : 1,
- "maxLength" : 255,
- "type" : "string",
- "format" : "dns-name"
- },
- "startup" : {
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
- "optional" : 1,
- "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
- "format" : "pve-startup-order",
"type" : "string"
},
"memory" : {
- "description" : "Amount of RAM for the VM in MB.",
- "optional" : 1,
- "type" : "integer",
"default" : 512,
- "minimum" : 16
- },
- "cmode" : {
- "type" : "string",
- "default" : "tty",
- "description" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login).",
+ "description" : "Amount of RAM for the VM in MB.",
+ "minimum" : 16,
"optional" : 1,
- "enum" : [
- "shell",
- "console",
- "tty"
- ]
+ "type" : "integer"
},
"mp[n]" : {
- "optional" : 1,
"description" : "Use volume as container mount point (experimental feature).",
- "type" : "string",
"format" : {
"acl" : {
- "type" : "boolean",
- "optional" : 1,
+ "description" : "Explicitly enable or disable ACL support.",
"format_description" : "acl",
- "description" : "Explicitly enable or disable ACL support."
+ "optional" : 1,
+ "type" : "boolean"
},
- "ro" : {
- "type" : "boolean",
+ "backup" : {
+ "description" : "Whether to include the mountpoint in backups.",
+ "format_description" : "[1|0]",
"optional" : 1,
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "format_description" : "ro"
+ "type" : "boolean"
},
"mp" : {
+ "description" : "Path to the mountpoint as seen from inside the container.",
"format" : "pve-lxc-mp-string",
- "type" : "string",
"format_description" : "Path",
- "description" : "Path to the mountpoint as seen from inside the container."
+ "type" : "string"
},
- "backup" : {
+ "quota" : {
+ "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
+ "format_description" : "[0|1]",
"optional" : 1,
- "description" : "Whether to include the mountpoint in backups.",
- "format_description" : "[1|0]",
"type" : "boolean"
},
- "volume" : {
- "description" : "Volume, device or directory to mount into the container.",
- "format_description" : "volume",
- "default_key" : 1,
- "format" : "pve-lxc-mp-string",
- "type" : "string"
+ "ro" : {
+ "description" : "Read-only mountpoint (not supported with bind mounts)",
+ "format_description" : "ro",
+ "optional" : 1,
+ "type" : "boolean"
},
"size" : {
"description" : "Volume size (read only value).",
- "optional" : 1,
- "format_description" : "DiskSize",
"format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
"type" : "string"
},
- "quota" : {
- "type" : "boolean",
- "format_description" : "[0|1]",
- "optional" : 1,
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)"
+ "volume" : {
+ "default_key" : 1,
+ "description" : "Volume, device or directory to mount into the container.",
+ "format" : "pve-lxc-mp-string",
+ "format_description" : "volume",
+ "type" : "string"
}
- }
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- },
- "template" : {
- "type" : "boolean",
- "default" : 0,
+ },
"optional" : 1,
- "description" : "Enable/disable Template."
+ "type" : "string"
},
"nameserver" : {
- "type" : "string",
+ "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,
- "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver."
- },
- "arch" : {
- "type" : "string",
- "default" : "amd64",
- "optional" : 1,
- "description" : "OS architecture type.",
- "enum" : [
- "amd64",
- "i386"
- ]
- },
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
- "description" : "Reference to unused volumes.",
- "optional" : 1
- },
- "protection" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
- "optional" : 1
+ "type" : "string"
},
- "rootfs" : {
- "type" : "string",
+ "net[n]" : {
+ "description" : "Specifies network interfaces for the container.",
"format" : {
- "backup" : {
- "type" : "boolean",
- "description" : "Whether to include the mountpoint in backups.",
+ "bridge" : {
+ "description" : "Bridge to attach the network device to.",
+ "format_description" : "vmbr<Number>",
"optional" : 1,
- "format_description" : "[1|0]"
+ "pattern" : "[-_.\\w\\d]+",
+ "type" : "string"
},
- "volume" : {
- "description" : "Volume, device or directory to mount into the container.",
- "format_description" : "volume",
- "default_key" : 1,
- "format" : "pve-lxc-mp-string",
+ "firewall" : {
+ "description" : "Controls whether this interface's firewall rules should be used.",
+ "format_description" : "[1|0]",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "gw" : {
+ "description" : "Default gateway for IPv4 traffic.",
+ "format" : "ipv4",
+ "format_description" : "GatewayIPv4",
+ "optional" : 1,
"type" : "string"
},
- "size" : {
+ "gw6" : {
+ "description" : "Default gateway for IPv6 traffic.",
+ "format" : "ipv6",
+ "format_description" : "GatewayIPv6",
"optional" : 1,
- "description" : "Volume size (read only value).",
- "format_description" : "DiskSize",
- "type" : "string",
- "format" : "disk-size"
+ "type" : "string"
},
- "quota" : {
- "format_description" : "[0|1]",
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
+ "hwaddr" : {
+ "description" : "Bridge to attach the network device to. (lxc.network.hwaddr)",
+ "format_description" : "MAC",
"optional" : 1,
- "type" : "boolean"
+ "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})",
+ "type" : "string"
},
- "acl" : {
- "description" : "Explicitly enable or disable ACL support.",
- "format_description" : "acl",
+ "ip" : {
+ "description" : "IPv4 address in CIDR format.",
+ "format" : "pve-ipv4-config",
+ "format_description" : "IPv4Format/CIDR",
"optional" : 1,
- "type" : "boolean"
+ "type" : "string"
},
- "ro" : {
- "type" : "boolean",
- "description" : "Read-only mountpoint (not supported with bind mounts)",
+ "ip6" : {
+ "description" : "IPv6 address in CIDR format.",
+ "format" : "pve-ipv6-config",
+ "format_description" : "IPv6Format/CIDR",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mtu" : {
+ "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
+ "format_description" : "Number",
+ "minimum" : 64,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
+ "format_description" : "String",
+ "pattern" : "[-_.\\w\\d]+",
+ "type" : "string"
+ },
+ "rate" : {
+ "description" : "Apply rate limiting to the interface",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "tag" : {
+ "description" : "VLAN tag for this interface.",
+ "format_description" : "VlanNo",
+ "maximum" : "4094",
+ "minimum" : "2",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "trunks" : {
+ "description" : "VLAN ids to pass through the interface",
+ "format_description" : "vlanid[;vlanid...]",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:;\\d+)*)",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Network interface type.",
+ "enum" : [
+ "veth"
+ ],
"optional" : 1,
- "format_description" : "ro"
+ "type" : "string"
}
},
"optional" : 1,
- "description" : "Use volume as container root."
- },
- "unprivileged" : {
- "optional" : 1,
- "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
- "type" : "boolean",
- "default" : 0
+ "type" : "string"
},
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "format" : "pve-configid-list",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string"
},
- "searchdomain" : {
- "format" : "dns-name-list",
- "type" : "string",
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
"optional" : 1,
- "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver."
- }
- },
- "additionalProperties" : 0
+ "type" : "boolean"
+ },
+ "ostype" : {
+ "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
+ "enum" : [
+ "debian",
+ "ubuntu",
+ "centos",
+ "fedora",
+ "opensuse",
+ "archlinux",
+ "alpine",
+ "unmanaged"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rootfs" : {
+ "description" : "Use volume as container root.",
+ "format" : {
+ "acl" : {
+ "description" : "Explicitly enable or disable ACL support.",
+ "format_description" : "acl",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "backup" : {
+ "description" : "Whether to include the mountpoint in backups.",
+ "format_description" : "[1|0]",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "quota" : {
+ "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
+ "format_description" : "[0|1]",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ro" : {
+ "description" : "Read-only mountpoint (not supported with bind mounts)",
+ "format_description" : "ro",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "size" : {
+ "description" : "Volume size (read only value).",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "default_key" : 1,
+ "description" : "Volume, device or directory to mount into the container.",
+ "format" : "pve-lxc-mp-string",
+ "format_description" : "volume",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "searchdomain" : {
+ "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
+ "format" : "dns-name-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "startup" : {
+ "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
+ "format" : "pve-startup-order",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
+ },
+ "swap" : {
+ "default" : 512,
+ "description" : "Amount of SWAP for the VM in MB.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "tty" : {
+ "default" : 2,
+ "description" : "Specify the number of tty available to the container",
+ "maximum" : 6,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "unprivileged" : {
+ "default" : 0,
+ "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
1
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "null"
- },
- "method" : "PUT",
- "name" : "update_vm",
- "description" : "Set container options."
- },
- "GET" : {
- "method" : "GET",
- "name" : "vm_config",
- "returns" : {
- "type" : "object",
- "properties" : {
- "digest" : {
- "type" : "string",
- "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications."
- }
- }
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "description" : "Get container configuration.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/config",
+ "text" : "config"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/status",
"children" : [
{
"info" : {
"GET" : {
- "protected" : 1,
+ "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"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- },
- "description" : "Get virtual machine status.",
- "method" : "GET",
- "name" : "vm_status",
"returns" : {
"type" : "object"
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/status/current",
"leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/current",
"text" : "current"
},
{
- "text" : "start",
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/status/start",
"info" : {
"POST" : {
- "name" : "vm_start",
- "method" : "POST",
- "returns" : {
- "type" : "string"
- },
"description" : "Start the container.",
- "proxyto" : "node",
+ "method" : "POST",
+ "name" : "vm_start",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "skiplock" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option."
- },
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean"
},
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer"
}
}
},
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/start",
+ "text" : "start"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
"info" : {
"POST" : {
+ "description" : "Stop the container. This will abruptly stop all processes running in the container.",
"method" : "POST",
"name" : "vm_stop",
- "returns" : {
- "type" : "string"
- },
- "description" : "Stop the container. This will abruptly stop all processes running in the container.",
- "proxyto" : "node",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "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"
},
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
"text" : "stop"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
"info" : {
"POST" : {
"description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
- "name" : "vm_shutdown",
"method" : "POST",
- "returns" : {
- "type" : "string"
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "proxyto" : "node",
+ "name" : "vm_shutdown",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "timeout" : {
- "description" : "Wait maximal timeout seconds.",
+ "forceStop" : {
+ "default" : 0,
+ "description" : "Make sure the Container stops.",
"optional" : 1,
- "type" : "integer",
- "default" : 60,
- "minimum" : 0
+ "type" : "boolean"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
},
- "forceStop" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Make sure the Container stops.",
- "optional" : 1
+ "timeout" : {
+ "default" : 60,
+ "description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer"
}
}
- }
- }
- },
- "leaf" : 1,
- "text" : "shutdown"
- },
- {
- "info" : {
- "POST" : {
- "protected" : 1,
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
+ "text" : "shutdown"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Suspend the container.",
+ "method" : "POST",
+ "name" : "vm_suspend",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
},
"vmid" : {
- "minimum" : 1,
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "description" : "Suspend the container.",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "method" : "POST",
- "name" : "vm_suspend"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
- "text" : "suspend",
- "leaf" : 1
+ "text" : "suspend"
},
{
"info" : {
"POST" : {
+ "description" : "Resume the container.",
+ "method" : "POST",
+ "name" : "vm_resume",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "type" : "integer"
}
}
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "name" : "vm_resume",
- "method" : "POST",
- "description" : "Resume the container."
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/lxc/{vmid}/status/resume",
- "text" : "resume",
- "leaf" : 1
+ "text" : "resume"
}
],
"info" : {
"GET" : {
"description" : "Directory index",
- "permissions" : {
- "user" : "all"
- },
- "name" : "vmcmdidx",
"method" : "GET",
- "proxyto" : "node",
+ "name" : "vmcmdidx",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
"subdir" : {
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
- "type" : "array",
"links" : [
{
"href" : "{subdir}",
"rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
}
},
"leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/status",
"text" : "status"
},
{
- "info" : {
- "POST" : {
- "description" : "Snapshot a container.",
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- },
- "name" : "snapshot",
- "method" : "POST",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "snapname" : {
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "format" : "pve-configid",
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "description" : {
- "optional" : 1,
- "description" : "A textual description or comment.",
- "type" : "string"
- }
- }
- },
- "proxyto" : "node"
- },
- "GET" : {
- "name" : "list",
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ]
- },
- "description" : "List all snapshots.",
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- }
- }
- },
"children" : [
{
- "info" : {
- "DELETE" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "force" : {
- "description" : "For removal from config file, even if removing disk snapshots fails.",
- "optional" : 1,
- "type" : "boolean"
- },
- "snapname" : {
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "description" : "Rollback LXC state to specified snapshot.",
+ "method" : "POST",
+ "name" : "rollback",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
},
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "description" : "Delete a LXC snapshot.",
- "name" : "delsnapshot",
- "method" : "DELETE",
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- }
- },
- "GET" : {
- "description" : "",
- "permissions" : {
- "user" : "all"
- },
- "method" : "GET",
- "name" : "snapshot_cmd_idx",
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{cmd}"
- }
- ],
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "snapname" : {
- "format" : "pve-configid",
- "type" : "string",
- "maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- }
- }
- },
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
- "children" : [
- {
- "leaf" : 1,
- "text" : "rollback",
- "info" : {
- "POST" : {
- "description" : "Rollback LXC state to specified snapshot.",
- "name" : "rollback",
- "method" : "POST",
- "returns" : {
- "description" : "the task ID.",
- "type" : "string"
- },
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "snapname" : {
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "format" : "pve-configid",
- "type" : "string"
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
+ "text" : "rollback"
},
{
- "leaf" : 1,
- "text" : "config",
"info" : {
"GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
"description" : "Get snapshot configuration",
"method" : "GET",
"name" : "get_snapshot_config",
- "returns" : {
- "type" : "object"
- },
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"snapname" : {
+ "description" : "The name of the snapshot.",
"format" : "pve-configid",
- "type" : "string",
"maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "proxyto" : "node"
- },
- "PUT" : {
- "description" : "Update snapshot metadata.",
- "name" : "update_snapshot_config",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update snapshot metadata.",
+ "method" : "PUT",
+ "name" : "update_snapshot_config",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "snapname" : {
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
- },
"description" : {
- "type" : "string",
"description" : "A textual description or comment.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "type" : "integer"
}
}
},
- "proxyto" : "node"
- }
- },
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config"
- }
- ],
- "leaf" : 0,
- "text" : "{snapname}"
- }
- ],
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
- "text" : "snapshot",
- "leaf" : 0
- },
- {
- "children" : [
- {
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
- "children" : [
- {
- "info" : {
- "PUT" : {
- "description" : "Modify rule data.",
- "returns" : {
- "type" : "null"
- },
- "name" : "update_rule",
- "method" : "PUT",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Config.Network"
+ "VM.Snapshot"
]
]
},
"protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
- },
- "action" : {
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "optional" : 1,
- "maxLength" : 20,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- },
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "iface" : {
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "maxLength" : 20,
- "optional" : 1,
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "source" : {
- "optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "type" : "string",
- "format" : "pve-fw-addr-spec"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "macro" : {
- "type" : "string",
- "maxLength" : 128,
- "optional" : 1
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "enable" : {
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "moveto" : {
- "optional" : 1,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
- "type" : "integer",
- "minimum" : 0
- },
- "dport" : {
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "format" : "pve-fw-dport-spec",
- "type" : "string"
- },
- "proto" : {
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-protocol-spec"
- },
- "sport" : {
- "optional" : 1,
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "format" : "pve-fw-sport-spec",
- "type" : "string"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
- }
- }
- },
- "proxyto" : null
- },
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "proxyto" : null,
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "method" : "DELETE",
- "name" : "delete_rule",
+ "proxyto" : "node",
"returns" : {
"type" : "null"
- },
- "description" : "Delete rule."
- },
- "GET" : {
- "description" : "Get single rule data.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "method" : "GET",
- "name" : "get_rule"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
"leaf" : 1,
- "text" : "{pos}"
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
+ "text" : "config"
}
],
"info" : {
- "POST" : {
- "description" : "Create new rule.",
- "method" : "POST",
- "name" : "create_rule",
- "returns" : {
- "type" : "null"
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "proxyto" : null,
+ "DELETE" : {
+ "description" : "Delete a LXC snapshot.",
+ "method" : "DELETE",
+ "name" : "delsnapshot",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "dest" : {
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "force" : {
+ "description" : "For removal from config file, even if removing disk snapshots fails.",
"optional" : 1,
- "type" : "string",
- "format" : "pve-fw-addr-spec"
+ "type" : "boolean"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "action" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "optional" : 0,
- "maxLength" : 20,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name."
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 0
- },
- "macro" : {
- "type" : "string",
- "maxLength" : 128,
- "optional" : 1
- },
- "dport" : {
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "format" : "pve-fw-dport-spec",
"type" : "string"
},
- "enable" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- },
- "digest" : {
- "optional" : 1,
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
"maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
- },
- "iface" : {
- "type" : "string",
- "format" : "pve-iface",
- "minLength" : 2,
- "maxLength" : 20,
- "optional" : 1,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings."
- },
- "proto" : {
- "type" : "string",
- "format" : "pve-fw-protocol-spec",
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
- },
- "sport" : {
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-sport-spec"
- },
- "source" : {
- "optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "format" : "pve-fw-addr-spec",
"type" : "string"
- }
- },
- "additionalProperties" : 0
- }
- },
- "GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{pos}"
- }
- ]
- },
- "proxyto" : null,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "minimum" : 1,
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer"
}
}
},
- "method" : "GET",
- "name" : "get_rules",
- "description" : "List rules.",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.Snapshot"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
}
- }
- },
- "leaf" : 0,
- "text" : "rules"
- },
- {
- "leaf" : 0,
- "text" : "aliases",
- "info" : {
- "POST" : {
+ },
+ "GET" : {
+ "description" : "",
+ "method" : "GET",
+ "name" : "snapshot_cmd_idx",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Alias name."
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string"
},
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDR",
- "description" : "Network/IP specification in CIDR format."
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "integer"
}
}
},
- "returns" : {
- "type" : "null"
- },
- "method" : "POST",
- "name" : "create_alias",
- "description" : "Create IP or Network Alias.",
"permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "protected" : 1
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "List aliases",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "user" : "all"
},
"returns" : {
- "type" : "array",
"items" : {
- "properties" : {
- "cidr" : {
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "name" : {
- "type" : "string"
- }
- },
+ "properties" : {},
"type" : "object"
},
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{cmd}",
+ "rel" : "child"
}
- ]
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
+ "text" : "{snapname}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List all snapshots.",
+ "method" : "GET",
+ "name" : "list",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
- "name" : "get_aliases",
- "method" : "GET"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
+ "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 container.",
+ "method" : "POST",
+ "name" : "snapshot",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "description" : {
+ "description" : "A textual description or comment.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
+ "text" : "snapshot"
+ },
+ {
+ "children" : [
+ {
"children" : [
{
- "text" : "{name}",
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
"info" : {
"DELETE" : {
- "description" : "Remove IP or Network alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "protected" : 1,
+ "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.",
"type" : "string"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "Alias name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
- "method" : "DELETE",
- "name" : "remove_alias"
- },
- "GET" : {
- "description" : "Read alias.",
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.Config.Network"
]
]
},
+ "protected" : 1,
+ "proxyto" : null,
"returns" : {
- "type" : "object"
- },
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "minimum" : 1,
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer"
- },
- "name" : {
- "description" : "Alias name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "read_alias",
- "method" : "GET"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
+ "returns" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
},
"PUT" : {
- "name" : "update_alias",
+ "description" : "Modify rule data.",
"method" : "PUT",
- "returns" : {
- "type" : "null"
- },
+ "name" : "update_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
+ "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\\-\\_]+",
- "maxLength" : 64,
- "description" : "Alias name.",
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "optional" : 1,
"type" : "string"
},
"digest" : {
- "type" : "string",
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "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"
+ },
+ "enable" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "macro" : {
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
"optional" : 1,
- "maxLength" : 40
+ "type" : "integer"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
},
- "comment" : {
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
},
- "rename" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Rename an existing alias.",
- "optional" : 1
+ "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"
},
- "cidr" : {
- "format" : "IPorCIDR",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
+ "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"
+ },
+ "type" : {
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "protected" : 1,
- "description" : "Update IP or Network alias.",
"permissions" : {
"check" : [
"perm",
"VM.Config.Network"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
+ "text" : "{pos}"
}
],
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases"
- },
- {
- "text" : "ipset",
- "leaf" : 0,
"info" : {
- "POST" : {
- "name" : "create_ipset",
- "method" : "POST",
+ "GET" : {
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "maxLength" : 40,
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
"type" : "string"
},
- "rename" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "optional" : 1,
- "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet."
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ }
},
- "description" : "Create new IPSet",
- "protected" : 1
- },
- "GET" : {
- "description" : "List IPSets",
"permissions" : {
"check" : [
"perm",
]
]
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- }
- }
- },
+ "proxyto" : null,
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0
+ "pos" : {
+ "type" : "integer"
}
- }
+ },
+ "type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{pos}",
+ "rel" : "child"
}
- ]
- },
- "method" : "GET",
- "name" : "ipset_index"
- }
- },
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
- "children" : [
- {
- "text" : "{name}",
- "leaf" : 0,
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Remove IP or Network from IPSet.",
- "protected" : 1,
- "name" : "remove_ip",
- "method" : "DELETE",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDRorAlias",
- "description" : "Network/IP specification in CIDR format."
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "digest" : {
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "type" : "string"
- },
- "name" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 64,
- "description" : "IP set name."
- },
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new rule.",
+ "method" : "POST",
+ "name" : "create_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 0,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "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" : 1,
+ "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"
+ },
+ "enable" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "macro" : {
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "type" : {
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
+ "text" : "rules"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
},
- "returns" : {
- "type" : "null"
+ "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"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read alias.",
+ "method" : "GET",
+ "name" : "read_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string"
+ },
+ "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" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "rename" : {
+ "description" : "Rename an existing alias.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "List aliases",
+ "method" : "GET",
+ "name" : "get_aliases",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
},
- "GET" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create IP or Network Alias.",
+ "method" : "POST",
+ "name" : "create_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
+ "text" : "aliases"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Remove IP or Network from IPSet.",
+ "method" : "DELETE",
+ "name" : "remove_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string"
+ },
+ "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"
+ },
+ "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"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.Config.Network"
]
]
},
- "description" : "Read IP or Network settings from IPSet.",
"protected" : 1,
- "name" : "read_ip",
+ "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"
+ },
+ "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"
},
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDRorAlias"
- },
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "maxLength" : 64,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
+ "type" : "integer"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
"returns" : {
"type" : "object"
}
},
"PUT" : {
+ "description" : "Update IP or Network settings",
"method" : "PUT",
"name" : "update_ip",
- "returns" : {
- "type" : "null"
- },
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
"cidr" : {
"description" : "Network/IP specification in CIDR format.",
"format" : "IPorCIDRorAlias",
"type" : "string"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "comment" : {
+ "optional" : 1,
"type" : "string"
},
"digest" : {
- "type" : "string",
- "maxLength" : 40,
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
"nomatch" : {
"optional" : 1,
"type" : "boolean"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "protected" : 1,
- "description" : "Update IP or Network settings",
"permissions" : {
"check" : [
"perm",
"VM.Config.Network"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
"leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
"text" : "{cidr}"
}
],
"info" : {
+ "DELETE" : {
+ "description" : "Delete IPSet",
+ "method" : "DELETE",
+ "name" : "delete_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
"GET" : {
- "name" : "get_ipset",
+ "description" : "List IPSet content",
"method" : "GET",
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{cidr}"
+ "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"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- ],
+ }
+ },
+ "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,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"type" : "string"
},
"nomatch" : {
"optional" : 1,
"type" : "boolean"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
}
},
"type" : "object"
},
+ "links" : [
+ {
+ "href" : "{cidr}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
- },
+ }
+ },
+ "POST" : {
+ "description" : "Add IP or Network to IPSet.",
+ "method" : "POST",
+ "name" : "create_ip",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string"
},
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
},
"name" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "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"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "List IPSet content"
- },
- "DELETE" : {
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Delete IPSet",
"protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "name" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "description" : "IP set name.",
- "maxLength" : 64,
- "type" : "string"
- }
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "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"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
+ },
+ "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"
}
},
- "returns" : {
- "type" : "null"
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new IPSet",
+ "method" : "POST",
+ "name" : "create_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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"
},
- "method" : "DELETE",
- "name" : "delete_ipset"
- },
- "POST" : {
- "returns" : {
- "type" : "null"
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "type" : "string",
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- },
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDRorAlias",
- "description" : "Network/IP specification in CIDR format."
- },
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
- "method" : "POST",
- "name" : "create_ip",
- "protected" : 1,
- "description" : "Add IP or Network to IPSet.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "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"
}
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
- ]
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
+ "text" : "ipset"
},
{
- "leaf" : 1,
- "text" : "options",
"info" : {
- "PUT" : {
- "name" : "set_options",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "description" : "Set Firewall options.",
+ "GET" : {
+ "description" : "Get VM firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
- },
- "policy_out" : {
- "type" : "string",
- "description" : "Output policy.",
- "optional" : 1,
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
- },
- "macfilter" : {
- "description" : "Enable/disable MAC address filter.",
- "optional" : 1,
- "type" : "boolean"
- },
- "policy_in" : {
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "optional" : 1,
- "description" : "Input policy.",
"type" : "string"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "minimum" : 1,
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer"
- },
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
"dhcp" : {
- "optional" : 1,
"description" : "Enable DHCP.",
+ "optional" : 1,
"type" : "boolean"
},
- "ndp" : {
- "type" : "boolean",
- "description" : "Enable NDP.",
- "optional" : 1
+ "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.",
"type" : "boolean"
},
"log_level_in" : {
- "optional" : 1,
"description" : "Log level for incoming traffic.",
"enum" : [
"emerg",
"debug",
"nolog"
],
- "type" : "string"
- },
- "enable" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable firewall rules."
- },
- "digest" : {
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
"type" : "string"
},
"log_level_out" : {
- "type" : "string",
+ "description" : "Log level for outgoing traffic.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "description" : "Log level for outgoing traffic.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "radv" : {
- "description" : "Allow sending Router Advertisement.",
+ "macfilter" : {
+ "description" : "Enable/disable MAC address filter.",
"optional" : 1,
"type" : "boolean"
},
- "delete" : {
- "type" : "string",
- "format" : "pve-configid-list",
+ "ndp" : {
+ "description" : "Enable NDP.",
"optional" : 1,
- "description" : "A list of settings you want to delete."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "protected" : 1
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "Get VM firewall options.",
- "method" : "GET",
- "name" : "get_options",
- "returns" : {
- "properties" : {
- "policy_out" : {
+ "type" : "boolean"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
"optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
"description" : "Output policy.",
"enum" : [
"ACCEPT",
"REJECT",
"DROP"
],
+ "optional" : 1,
"type" : "string"
},
- "ipfilter" : {
- "type" : "boolean",
+ "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,
- "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added."
+ "type" : "string"
},
"dhcp" : {
"description" : "Enable DHCP.",
"optional" : 1,
"type" : "boolean"
},
- "ndp" : {
- "optional" : 1,
- "description" : "Enable NDP.",
- "type" : "boolean"
- },
- "policy_in" : {
- "type" : "string",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "description" : "Input policy.",
- "optional" : 1
- },
- "macfilter" : {
- "type" : "boolean",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
- "description" : "Enable/disable MAC address filter."
+ "type" : "string"
},
"enable" : {
- "type" : "boolean",
+ "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,
- "description" : "Enable/disable firewall rules."
+ "type" : "boolean"
},
"log_level_in" : {
- "type" : "string",
+ "description" : "Log level for incoming traffic.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "description" : "Log level for incoming traffic.",
- "optional" : 1
- },
- "radv" : {
"optional" : 1,
- "description" : "Allow sending Router Advertisement.",
- "type" : "boolean"
+ "type" : "string"
},
"log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
"enum" : [
"emerg",
"alert",
"nolog"
],
"optional" : 1,
- "description" : "Log level for outgoing traffic.",
"type" : "string"
- }
- },
- "type" : "object"
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ },
+ "macfilter" : {
+ "description" : "Enable/disable MAC address filter.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ndp" : {
+ "description" : "Enable NDP.",
+ "optional" : 1,
+ "type" : "boolean"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/options"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
+ "text" : "options"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
"info" : {
"GET" : {
- "name" : "log",
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "t" : {
- "description" : "Line text",
- "type" : "string"
- },
- "n" : {
- "description" : "Line number",
- "type" : "integer"
- }
- }
- }
- },
"description" : "Read firewall log",
- "proxyto" : "node",
+ "method" : "GET",
+ "name" : "log",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
},
- "limit" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
- },
"start" : {
- "type" : "integer",
"minimum" : 0,
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "type" : "integer"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"VM.Console"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
- "text" : "log",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
+ "text" : "log"
},
{
- "text" : "refs",
- "leaf" : 1,
"info" : {
"GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
"description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
"method" : "GET",
"name" : "refs",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"type" : {
- "type" : "string",
+ "description" : "Only list references of specified type.",
"enum" : [
"alias",
"ipset"
],
- "description" : "Only list references of specified type.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
"vmid" : {
- "minimum" : 1,
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "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"
- ]
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
+ ],
+ "type" : "string"
}
- }
- }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
+ "text" : "refs"
}
],
- "path" : "/nodes/{node}/lxc/{vmid}/firewall",
"info" : {
"GET" : {
- "permissions" : {
- "user" : "all"
- },
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
"returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
"links" : [
{
"href" : "{name}",
"rel" : "child"
}
],
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
+ "type" : "array"
}
}
},
- "text" : "firewall",
- "leaf" : 0
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall",
+ "text" : "firewall"
},
{
- "text" : "rrd",
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/rrd",
"info" : {
"GET" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
"description" : "Read VM RRD statistics (returns PNG)",
- "returns" : {
- "type" : "object",
- "properties" : {
- "filename" : {
- "type" : "string"
- }
- }
- },
+ "method" : "GET",
+ "name" : "rrd",
"parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
+ "additionalProperties" : 0,
+ "properties" : {
"cf" : {
- "optional" : 1,
"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"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string"
},
"timeframe" : {
],
"type" : "string"
},
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "ds" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "The list of datasources you want to display."
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "GET",
- "name" : "rrd"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/rrd",
+ "text" : "rrd"
},
{
- "text" : "rrddata",
- "leaf" : 1,
"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"
+ },
"timeframe" : {
"description" : "Specify the time frame you are interested in.",
"enum" : [
],
"type" : "string"
},
- "cf" : {
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "optional" : 1,
- "description" : "The RRD consolidation function",
- "type" : "string"
- },
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
}
},
- "method" : "GET",
- "name" : "rrddata",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Read VM RRD statistics",
- "protected" : 1
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/rrddata"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
+ "text" : "rrddata"
},
{
"info" : {
"POST" : {
"description" : "Creates a TCP VNC proxy connections.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
- },
- "protected" : 1,
- "name" : "vncproxy",
"method" : "POST",
+ "name" : "vncproxy",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
},
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ },
"websocket" : {
"description" : "use websocket instead of standard VNC.",
"optional" : 1,
"type" : "boolean"
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
},
+ "protected" : 1,
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
- "upid" : {
+ "cert" : {
"type" : "string"
},
+ "port" : {
+ "type" : "integer"
+ },
"ticket" : {
"type" : "string"
},
- "user" : {
+ "upid" : {
"type" : "string"
},
- "cert" : {
+ "user" : {
"type" : "string"
- },
- "port" : {
- "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
"leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
"text" : "vncproxy"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
"info" : {
"GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ],
- "description" : "You also need to pass a valid ticket (vncticket)."
- },
"description" : "Opens a weksocket for VNC traffic.",
+ "method" : "GET",
+ "name" : "vncwebsocket",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
"port" : {
+ "description" : "Port number returned by previous vncproxy call.",
"maximum" : 5999,
- "type" : "integer",
"minimum" : 5900,
- "description" : "Port number returned by previous vncproxy call."
+ "type" : "integer"
},
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
},
"vncticket" : {
"description" : "Ticket from previous call to vncproxy.",
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ],
+ "description" : "You also need to pass a valid ticket (vncticket)."
+ },
"returns" : {
- "type" : "object",
"properties" : {
"port" : {
"type" : "string"
}
- }
- },
- "method" : "GET",
- "name" : "vncwebsocket"
+ },
+ "type" : "object"
+ }
}
},
- "text" : "vncwebsocket",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
+ "text" : "vncwebsocket"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
"info" : {
"POST" : {
- "proxyto" : "node",
+ "description" : "Returns a SPICE configuration to connect to the CT.",
+ "method" : "POST",
+ "name" : "spiceproxy",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "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",
- "format" : "address"
+ "type" : "string"
},
- "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"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
+ "additionalProperties" : 1,
+ "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
"properties" : {
- "type" : {
+ "host" : {
"type" : "string"
},
"password" : {
"proxy" : {
"type" : "string"
},
- "host" : {
- "type" : "string"
- },
"tls-port" : {
"type" : "integer"
+ },
+ "type" : {
+ "type" : "string"
}
- },
- "additionalProperties" : 1,
- "description" : "Returned values can be directly passed to the 'remote-viewer' application."
- },
- "method" : "POST",
- "name" : "spiceproxy",
- "description" : "Returns a SPICE configuration to connect to the CT."
+ }
+ }
}
},
- "text" : "spiceproxy",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
+ "text" : "spiceproxy"
},
{
- "text" : "migrate",
- "leaf" : 1,
"info" : {
"POST" : {
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "online" : {
+ "description" : "Migrate the container to another node. Creates a new migration task.",
+ "method" : "POST",
+ "name" : "migrate_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "description" : "Force migration despite local bind / device mounts. WARNING: identical bind / device mounts need to be available on the target node.",
"optional" : 1,
- "description" : "Use online/live migration.",
"type" : "boolean"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
},
- "force" : {
- "type" : "boolean",
+ "online" : {
+ "description" : "Use online/live migration.",
"optional" : 1,
- "description" : "Force migration despite local bind / device mounts. WARNING: identical bind / device mounts need to be available on the target node."
+ "type" : "boolean"
},
"target" : {
- "type" : "string",
+ "description" : "Target node.",
"format" : "pve-node",
- "description" : "Target node."
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"description" : "the task ID.",
"type" : "string"
- },
- "name" : "migrate_vm",
- "method" : "POST",
- "description" : "Migrate the container to another node. Creates a new migration task."
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/migrate"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/migrate",
+ "text" : "migrate"
},
{
- "text" : "feature",
- "leaf" : 1,
"info" : {
"GET" : {
+ "description" : "Check if feature for virtual machine is available.",
"method" : "GET",
"name" : "vm_feature",
- "returns" : {
- "properties" : {
- "hasFeature" : {
- "type" : "boolean"
- }
- },
- "type" : "object"
- },
- "description" : "Check if feature for virtual machine is available.",
- "proxyto" : "node",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "snapname" : {
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid"
- },
"feature" : {
"description" : "Feature to check.",
"enum" : [
"format" : "pve-node",
"type" : "string"
},
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
+ },
"vmid" : {
- "minimum" : 1,
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "hasFeature" : {
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/feature"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/feature",
+ "text" : "feature"
},
{
- "path" : "/nodes/{node}/lxc/{vmid}/template",
"info" : {
"POST" : {
- "returns" : {
- "type" : "null"
- },
- "name" : "template",
- "method" : "POST",
"description" : "Create a Template.",
- "proxyto" : "node",
+ "method" : "POST",
+ "name" : "template",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "experimental" : {
+ "default" : 0,
+ "description" : "The template feature is experimental, set this flag if you know what you are doing.",
+ "type" : "boolean"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- },
- "experimental" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "The template feature is experimental, set this flag if you know what you are doing."
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
- "protected" : 1,
"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}"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/template",
"text" : "template"
},
{
- "leaf" : 1,
- "text" : "clone",
- "path" : "/nodes/{node}/lxc/{vmid}/clone",
"info" : {
"POST" : {
"description" : "Create a container clone/copy",
- "name" : "clone_vm",
"method" : "POST",
- "returns" : {
- "type" : "string"
+ "name" : "clone_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "description" : {
+ "description" : "Description for the new CT.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "experimental" : {
+ "default" : 0,
+ "description" : "The clone feature is experimental, set this flag if you know what you are doing.",
+ "type" : "boolean"
+ },
+ "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" : "boolean"
+ },
+ "hostname" : {
+ "description" : "Set a hostname for the new CT.",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "newid" : {
+ "description" : "VMID for the clone.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "pool" : {
+ "description" : "Add the new CT to the specified pool.",
+ "format" : "pve-poolid",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "storage" : {
+ "description" : "Target storage for full clone.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "requires" : "full",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ }
},
"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",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "storage" : {
- "requires" : "full",
- "type" : "string",
- "format" : "pve-storage-id",
- "description" : "Target storage for full clone.",
- "optional" : 1
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "newid" : {
- "description" : "VMID for the clone.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "experimental" : {
- "description" : "The clone feature is experimental, set this flag if you know what you are doing.",
- "type" : "boolean",
- "default" : 0
- },
- "description" : {
- "optional" : 1,
- "description" : "Description for the new CT.",
- "type" : "string"
- },
- "hostname" : {
- "description" : "Set a hostname for the new CT.",
- "optional" : 1,
- "type" : "string",
- "format" : "dns-name"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "pool" : {
- "optional" : 1,
- "description" : "Add the new CT to the specified pool.",
- "format" : "pve-poolid",
- "type" : "string"
- },
- "snapname" : {
- "optional" : 1,
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
- },
- "full" : {
- "optional" : 1,
- "description" : "Create a full copy of all disk. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default.",
- "default" : 0,
- "type" : "boolean"
- }
- }
+ "returns" : {
+ "type" : "string"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/clone",
+ "text" : "clone"
},
{
- "text" : "resize",
- "leaf" : 1,
- "info" : {
- "PUT" : {
- "description" : "Resize a container mountpoint.",
- "returns" : {
- "description" : "the task ID.",
- "type" : "string"
- },
- "method" : "PUT",
- "name" : "resize_vm",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk"
- ],
- "any",
- 1
- ]
- },
- "protected" : 1,
+ "info" : {
+ "PUT" : {
+ "description" : "Resize a container mountpoint.",
+ "method" : "PUT",
+ "name" : "resize_vm",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "size" : {
- "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
- "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
- "type" : "string"
- },
"digest" : {
- "type" : "string",
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"maxLength" : 40,
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
},
"disk" : {
- "type" : "string",
+ "description" : "The disk you want to resize.",
"enum" : [
"rootfs",
"mp0",
"mp8",
"mp9"
],
- "description" : "The disk you want to resize."
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "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"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk"
+ ],
+ "any",
+ 1
+ ]
},
- "proxyto" : "node"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/resize"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/resize",
+ "text" : "resize"
}
],
"info" : {
"DELETE" : {
- "name" : "destroy_vm",
- "method" : "DELETE",
- "returns" : {
- "type" : "string"
- },
"description" : "Destroy the container (also delete all uses files).",
+ "method" : "DELETE",
+ "name" : "destroy_vm",
"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.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"VM.Allocate"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
},
"GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- }
- },
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
- ]
- },
- "proxyto" : "node",
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "vmdiridx",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
"format" : "pve-vmid",
- "minimum" : 1
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "GET",
- "name" : "vmdiridx",
- "description" : "Directory index",
"permissions" : {
"user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}",
+ "text" : "{vmid}"
}
],
- "path" : "/nodes/{node}/lxc",
"info" : {
"GET" : {
- "permissions" : {
- "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
- "user" : "all"
- },
- "protected" : 1,
+ "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"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
+ "user" : "all"
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "LXC container index (per node).",
- "method" : "GET",
- "name" : "vmlist",
"returns" : {
"items" : {
- "type" : "object",
- "properties" : {}
+ "properties" : {},
+ "type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{vmid}"
+ "href" : "{vmid}",
+ "rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
},
- "POST" : {
- "protected" : 1,
- "permissions" : {
- "user" : "all",
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore, it is enough if the user has 'VM.Backup' permission and the VM already exists. You also need 'Datastore.AllocateSpace' permissions on the storage."
- },
- "parameters" : {
- "properties" : {
- "net[n]" : {
- "format" : {
- "gw6" : {
- "type" : "string",
- "format" : "ipv6",
- "description" : "Default gateway for IPv6 traffic.",
- "format_description" : "GatewayIPv6",
- "optional" : 1
- },
- "hwaddr" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Bridge to attach the network device to. (lxc.network.hwaddr)",
- "format_description" : "MAC",
- "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})"
- },
- "gw" : {
- "type" : "string",
- "format" : "ipv4",
- "format_description" : "GatewayIPv4",
- "optional" : 1,
- "description" : "Default gateway for IPv4 traffic."
- },
- "ip" : {
- "format_description" : "IPv4Format/CIDR",
- "optional" : 1,
- "description" : "IPv4 address in CIDR format.",
- "type" : "string",
- "format" : "pve-ipv4-config"
- },
- "rate" : {
- "type" : "number",
- "format_description" : "mbps",
- "description" : "Apply rate limiting to the interface",
- "optional" : 1
- },
- "tag" : {
- "type" : "integer",
- "maximum" : "4094",
- "minimum" : "2",
- "format_description" : "VlanNo",
- "description" : "VLAN tag for this interface.",
- "optional" : 1
- },
- "name" : {
- "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
- "format_description" : "String",
- "pattern" : "[-_.\\w\\d]+",
- "type" : "string"
- },
- "bridge" : {
- "type" : "string",
- "format_description" : "vmbr<Number>",
- "description" : "Bridge to attach the network device to.",
- "optional" : 1,
- "pattern" : "[-_.\\w\\d]+"
- },
- "trunks" : {
- "type" : "string",
- "format_description" : "vlanid[;vlanid...]",
- "description" : "VLAN ids to pass through the interface",
- "optional" : 1,
- "pattern" : "(?^:\\d+(?:;\\d+)*)"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "veth"
- ],
- "optional" : 1,
- "description" : "Network interface type."
- },
- "ip6" : {
- "format_description" : "IPv6Format/CIDR",
- "optional" : 1,
- "description" : "IPv6 address in CIDR format.",
- "format" : "pve-ipv6-config",
- "type" : "string"
- },
- "firewall" : {
- "format_description" : "[1|0]",
- "optional" : 1,
- "description" : "Controls whether this interface's firewall rules should be used.",
- "type" : "boolean"
- },
- "mtu" : {
- "type" : "integer",
- "minimum" : 64,
- "format_description" : "Number",
- "optional" : 1,
- "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)"
- }
- },
- "type" : "string",
+ "POST" : {
+ "description" : "Create or restore a container.",
+ "method" : "POST",
+ "name" : "create_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "arch" : {
+ "default" : "amd64",
+ "description" : "OS architecture type.",
+ "enum" : [
+ "amd64",
+ "i386"
+ ],
"optional" : 1,
- "description" : "Specifies network interfaces for the container."
+ "type" : "string"
},
- "swap" : {
- "type" : "integer",
- "default" : 512,
+ "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"
+ },
+ "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,
- "description" : "Amount of SWAP for the VM in MB."
+ "type" : "number"
},
- "pool" : {
+ "cpuunits" : {
+ "default" : 1024,
+ "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
+ "maximum" : 500000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "description" : {
+ "description" : "Container description. Only used on the configuration web interface.",
"optional" : 1,
- "description" : "Add the VM to the specified pool.",
- "format" : "pve-poolid",
"type" : "string"
},
- "mp[n]" : {
+ "force" : {
+ "description" : "Allow to overwrite existing container.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "hostname" : {
+ "description" : "Set a host name for the container.",
+ "format" : "dns-name",
+ "maxLength" : 255,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ignore-unpack-errors" : {
+ "description" : "Ignore errors when extracting the template.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "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"
+ },
+ "mp[n]" : {
"description" : "Use volume as container mount point (experimental feature).",
"format" : {
- "quota" : {
- "type" : "boolean",
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
- "format_description" : "[0|1]",
- "optional" : 1
- },
- "size" : {
- "format" : "disk-size",
- "type" : "string",
- "description" : "Volume size (read only value).",
- "format_description" : "DiskSize",
- "optional" : 1
+ "acl" : {
+ "description" : "Explicitly enable or disable ACL support.",
+ "format_description" : "acl",
+ "optional" : 1,
+ "type" : "boolean"
},
"backup" : {
- "type" : "boolean",
"description" : "Whether to include the mountpoint in backups.",
"format_description" : "[1|0]",
- "optional" : 1
- },
- "volume" : {
- "format" : "pve-lxc-mp-string",
- "type" : "string",
- "format_description" : "volume",
- "description" : "Volume, device or directory to mount into the container.",
- "default_key" : 1
+ "optional" : 1,
+ "type" : "boolean"
},
"mp" : {
"description" : "Path to the mountpoint as seen from inside the container.",
+ "format" : "pve-lxc-mp-string",
"format_description" : "Path",
- "type" : "string",
- "format" : "pve-lxc-mp-string"
+ "type" : "string"
+ },
+ "quota" : {
+ "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
+ "format_description" : "[0|1]",
+ "optional" : 1,
+ "type" : "boolean"
},
"ro" : {
- "type" : "boolean",
"description" : "Read-only mountpoint (not supported with bind mounts)",
+ "format_description" : "ro",
"optional" : 1,
- "format_description" : "ro"
+ "type" : "boolean"
},
- "acl" : {
- "type" : "boolean",
+ "size" : {
+ "description" : "Volume size (read only value).",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "format_description" : "acl",
- "description" : "Explicitly enable or disable ACL support."
+ "type" : "string"
+ },
+ "volume" : {
+ "default_key" : 1,
+ "description" : "Volume, device or directory to mount into the container.",
+ "format" : "pve-lxc-mp-string",
+ "format_description" : "volume",
+ "type" : "string"
}
},
- "type" : "string"
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "description" : {
- "description" : "Container description. Only used on the configuration web interface.",
"optional" : 1,
"type" : "string"
},
- "tty" : {
- "minimum" : 0,
- "maximum" : 6,
- "type" : "integer",
- "default" : 2,
- "description" : "Specify the number of tty available to the container",
- "optional" : 1
- },
- "onboot" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Specifies whether a VM will be started during system bootup."
- },
- "ostemplate" : {
- "type" : "string",
- "description" : "The OS template or backup file.",
- "maxLength" : 255
- },
- "startup" : {
- "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-startup-order"
- },
- "memory" : {
- "default" : 512,
- "type" : "integer",
- "minimum" : 16,
- "optional" : 1,
- "description" : "Amount of RAM for the VM in MB."
- },
- "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.",
- "optional" : 1,
- "type" : "string",
- "format" : "dns-name-list"
- },
- "ignore-unpack-errors" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Ignore errors when extracting the template."
- },
- "force" : {
- "optional" : 1,
- "description" : "Allow to overwrite existing container.",
- "type" : "boolean"
- },
- "restore" : {
- "optional" : 1,
- "description" : "Mark this as restore task.",
- "type" : "boolean"
- },
- "unprivileged" : {
- "optional" : 1,
- "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
- "default" : 0,
- "type" : "boolean"
- },
- "cpulimit" : {
- "default" : 0,
- "type" : "number",
- "maximum" : 128,
- "minimum" : 0,
- "optional" : 1,
- "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit."
- },
- "storage" : {
- "type" : "string",
- "default" : "local",
- "format" : "pve-storage-id",
- "description" : "Default Storage.",
- "optional" : 1
- },
- "cpuunits" : {
+ "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,
- "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
- "minimum" : 0,
- "default" : 1024,
- "type" : "integer",
- "maximum" : 500000
+ "type" : "string"
},
- "console" : {
- "description" : "Attach a console device (/dev/console) to the container.",
+ "net[n]" : {
+ "description" : "Specifies network interfaces for the container.",
+ "format" : {
+ "bridge" : {
+ "description" : "Bridge to attach the network device to.",
+ "format_description" : "vmbr<Number>",
+ "optional" : 1,
+ "pattern" : "[-_.\\w\\d]+",
+ "type" : "string"
+ },
+ "firewall" : {
+ "description" : "Controls whether this interface's firewall rules should be used.",
+ "format_description" : "[1|0]",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "gw" : {
+ "description" : "Default gateway for IPv4 traffic.",
+ "format" : "ipv4",
+ "format_description" : "GatewayIPv4",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "gw6" : {
+ "description" : "Default gateway for IPv6 traffic.",
+ "format" : "ipv6",
+ "format_description" : "GatewayIPv6",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "hwaddr" : {
+ "description" : "Bridge to attach the network device to. (lxc.network.hwaddr)",
+ "format_description" : "MAC",
+ "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",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ip6" : {
+ "description" : "IPv6 address in CIDR format.",
+ "format" : "pve-ipv6-config",
+ "format_description" : "IPv6Format/CIDR",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mtu" : {
+ "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
+ "format_description" : "Number",
+ "minimum" : 64,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
+ "format_description" : "String",
+ "pattern" : "[-_.\\w\\d]+",
+ "type" : "string"
+ },
+ "rate" : {
+ "description" : "Apply rate limiting to the interface",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "tag" : {
+ "description" : "VLAN tag for this interface.",
+ "format_description" : "VlanNo",
+ "maximum" : "4094",
+ "minimum" : "2",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "trunks" : {
+ "description" : "VLAN ids to pass through the interface",
+ "format_description" : "vlanid[;vlanid...]",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:;\\d+)*)",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Network interface type.",
+ "enum" : [
+ "veth"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
"optional" : 1,
- "type" : "boolean",
- "default" : 1
+ "type" : "string"
},
- "lock" : {
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ],
- "description" : "Lock/unlock the VM.",
- "optional" : 1,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string"
},
- "template" : {
- "optional" : 1,
- "description" : "Enable/disable Template.",
+ "onboot" : {
"default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
"type" : "boolean"
},
- "password" : {
- "minLength" : 5,
- "optional" : 1,
- "description" : "Sets root password inside container.",
+ "ostemplate" : {
+ "description" : "The OS template or backup file.",
+ "maxLength" : 255,
"type" : "string"
},
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
- "optional" : 1,
- "description" : "Reference to unused volumes."
- },
- "arch" : {
- "enum" : [
- "amd64",
- "i386"
- ],
- "description" : "OS architecture type.",
- "optional" : 1,
- "type" : "string",
- "default" : "amd64"
- },
- "nameserver" : {
- "type" : "string",
- "format" : "address-list",
- "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
- "optional" : 1
- },
"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",
"alpine",
"unmanaged"
],
- "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
"optional" : 1,
"type" : "string"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "hostname" : {
- "format" : "dns-name",
- "type" : "string",
+ "password" : {
+ "description" : "Sets root password inside container.",
+ "minLength" : 5,
"optional" : 1,
- "maxLength" : 255,
- "description" : "Set a host name for the container."
+ "type" : "string"
},
- "ssh-public-keys" : {
- "type" : "string",
+ "pool" : {
+ "description" : "Add the VM to the specified pool.",
+ "format" : "pve-poolid",
"optional" : 1,
- "description" : "Setup public SSH keys (one key per line, OpenSSH format)."
+ "type" : "string"
},
- "cmode" : {
- "default" : "tty",
- "type" : "string",
- "enum" : [
- "shell",
- "console",
- "tty"
- ],
+ "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" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login)."
+ "type" : "boolean"
},
- "protection" : {
+ "restore" : {
+ "description" : "Mark this as restore task.",
"optional" : 1,
- "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
- "type" : "boolean",
- "default" : 0
+ "type" : "boolean"
},
"rootfs" : {
- "optional" : 1,
"description" : "Use volume as container root.",
- "type" : "string",
"format" : {
- "ro" : {
- "optional" : 1,
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "format_description" : "ro",
- "type" : "boolean"
- },
"acl" : {
- "format_description" : "acl",
"description" : "Explicitly enable or disable ACL support.",
+ "format_description" : "acl",
"optional" : 1,
"type" : "boolean"
},
- "volume" : {
- "default_key" : 1,
- "description" : "Volume, device or directory to mount into the container.",
- "format_description" : "volume",
- "type" : "string",
- "format" : "pve-lxc-mp-string"
- },
"backup" : {
- "format_description" : "[1|0]",
"description" : "Whether to include the mountpoint in backups.",
+ "format_description" : "[1|0]",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "quota" : {
+ "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
+ "format_description" : "[0|1]",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ro" : {
+ "description" : "Read-only mountpoint (not supported with bind mounts)",
+ "format_description" : "ro",
"optional" : 1,
"type" : "boolean"
},
"size" : {
- "format_description" : "DiskSize",
"description" : "Volume size (read only value).",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "type" : "string",
- "format" : "disk-size"
+ "type" : "string"
},
- "quota" : {
- "type" : "boolean",
- "format_description" : "[0|1]",
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
- "optional" : 1
+ "volume" : {
+ "default_key" : 1,
+ "description" : "Volume, device or directory to mount into the container.",
+ "format" : "pve-lxc-mp-string",
+ "format_description" : "volume",
+ "type" : "string"
}
- }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "searchdomain" : {
+ "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
+ "format" : "dns-name-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ssh-public-keys" : {
+ "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "startup" : {
+ "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
+ "format" : "pve-startup-order",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
+ },
+ "storage" : {
+ "default" : "local",
+ "description" : "Default Storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "swap" : {
+ "default" : 512,
+ "description" : "Amount of SWAP for the VM in MB.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "tty" : {
+ "default" : 2,
+ "description" : "Specify the number of tty available to the container",
+ "maximum" : 6,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "unprivileged" : {
+ "default" : 0,
+ "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
+ "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",
- "description" : "Create or restore a container.",
- "method" : "POST",
- "name" : "create_vm",
"returns" : {
"type" : "string"
}
}
},
- "text" : "lxc",
- "leaf" : 0
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc",
+ "text" : "lxc"
},
{
- "text" : "ceph",
- "leaf" : 0,
"children" : [
{
- "leaf" : 0,
- "text" : "osd",
"children" : [
{
- "text" : "{osdid}",
- "leaf" : 0,
"children" : [
{
- "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
"info" : {
"POST" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "ceph osd in",
"method" : "POST",
"name" : "in",
- "description" : "ceph osd in",
- "proxyto" : "node",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "osdid" : {
- "type" : "integer",
- "description" : "OSD ID"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
"text" : "in"
},
{
- "text" : "out",
- "leaf" : 1,
"info" : {
"POST" : {
"description" : "ceph osd out",
- "returns" : {
- "type" : "null"
- },
"method" : "POST",
"name" : "out",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
},
"protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "properties" : {
- "osdid" : {
- "type" : "integer",
- "description" : "OSD ID"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/nodes/{node}/ceph/osd/{osdid}/out"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
+ "text" : "out"
}
],
"info" : {
"DELETE" : {
- "protected" : 1,
"description" : "Destroy OSD",
- "returns" : {
- "type" : "string"
- },
+ "method" : "DELETE",
+ "name" : "destroyosd",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
"cleanup" : {
- "type" : "boolean",
"default" : 0,
+ "description" : "If set, we remove partition table entries.",
"optional" : 1,
- "description" : "If set, we remove partition table entries."
+ "type" : "boolean"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
"osdid" : {
- "type" : "integer",
- "description" : "OSD ID"
+ "description" : "OSD ID",
+ "type" : "integer"
}
}
},
+ "protected" : 1,
"proxyto" : "node",
- "name" : "destroyosd",
- "method" : "DELETE"
+ "returns" : {
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/ceph/osd/{osdid}"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}",
+ "text" : "{osdid}"
}
],
- "path" : "/nodes/{node}/ceph/osd",
"info" : {
"GET" : {
- "name" : "index",
- "method" : "GET",
- "returns" : {
- "type" : "object"
- },
"description" : "Get Ceph osd list/tree.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
}
}
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"any",
1
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
}
},
"POST" : {
- "protected" : 1,
"description" : "Create OSD",
- "returns" : {
- "type" : "string"
- },
+ "method" : "POST",
+ "name" : "createosd",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "dev" : {
+ "description" : "Block device name.",
+ "type" : "string"
+ },
"fstype" : {
- "type" : "string",
"default" : "xfs",
+ "description" : "File system type.",
"enum" : [
"xfs",
"ext4",
"btrfs"
],
"optional" : 1,
- "description" : "File system type."
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
"type" : "string"
},
- "dev" : {
- "type" : "string",
- "description" : "Block device name."
- },
"journal_dev" : {
"description" : "Block device name for journal.",
"optional" : 1,
"type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
}
}
},
+ "protected" : 1,
"proxyto" : "node",
- "method" : "POST",
- "name" : "createosd"
+ "returns" : {
+ "type" : "string"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/osd",
+ "text" : "osd"
},
{
- "path" : "/nodes/{node}/ceph/disks",
"info" : {
"GET" : {
- "proxyto" : "node",
+ "description" : "List local disks.",
+ "method" : "GET",
+ "name" : "disks",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"type" : {
- "type" : "string",
"description" : "Only list specific types of disks.",
- "optional" : 1,
"enum" : [
"unused",
"journal_disks"
- ]
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ ],
+ "optional" : 1,
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
1
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
- "used" : {
- "optional" : 1,
+ "dev" : {
"type" : "string"
},
- "size" : {
- "type" : "integer"
- },
- "vendor" : {
- "type" : "string",
- "optional" : 1
- },
"gpt" : {
"type" : "boolean"
},
"model" : {
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
+ },
+ "osdid" : {
+ "type" : "integer"
},
"serial" : {
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "osdid" : {
+ "size" : {
"type" : "integer"
},
- "dev" : {
+ "used" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vendor" : {
+ "optional" : 1,
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
"type" : "array"
- },
- "method" : "GET",
- "name" : "disks",
- "description" : "List local disks."
+ }
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/ceph/disks",
"text" : "disks"
},
{
- "path" : "/nodes/{node}/ceph/config",
"info" : {
"GET" : {
+ "description" : "Get Ceph configuration.",
+ "method" : "GET",
+ "name" : "config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
1
]
},
- "description" : "Get Ceph configuration.",
"returns" : {
"type" : "string"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "GET",
- "name" : "config"
+ }
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/ceph/config",
"text" : "config"
},
{
- "info" : {
- "POST" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "description" : "Destroy Ceph monitor.",
+ "method" : "DELETE",
+ "name" : "destroymon",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "monid" : {
+ "description" : "Monitor ID",
+ "type" : "integer"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "description" : "Create Ceph Monitor",
- "method" : "POST",
- "name" : "createmon",
- "returns" : {
- "type" : "string"
- }
- },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/mon/{monid}",
+ "text" : "{monid}"
+ }
+ ],
+ "info" : {
"GET" : {
- "proxyto" : "node",
+ "description" : "Get Ceph monitor list.",
+ "method" : "GET",
+ "name" : "listmon",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
}
}
},
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ],
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
- "name" : {
+ "addr" : {
"type" : "string"
},
- "addr" : {
+ "name" : {
"type" : "string"
}
- }
- }
- },
- "method" : "GET",
- "name" : "listmon",
- "description" : "Get Ceph monitor list."
- }
- },
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "monid" : {
- "description" : "Monitor ID",
- "type" : "integer"
- }
- }
},
- "proxyto" : "node",
- "description" : "Destroy Ceph monitor.",
- "name" : "destroymon",
- "method" : "DELETE",
- "returns" : {
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create Ceph Monitor",
+ "method" : "POST",
+ "name" : "createmon",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string"
}
}
},
- "path" : "/nodes/{node}/ceph/mon/{monid}",
- "text" : "{monid}",
- "leaf" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
- ],
- "path" : "/nodes/{node}/ceph/mon",
+ },
"leaf" : 0,
+ "path" : "/nodes/{node}/ceph/mon",
"text" : "mon"
},
{
- "text" : "init",
- "leaf" : 1,
"info" : {
"POST" : {
- "returns" : {
- "type" : "null"
- },
- "name" : "init",
- "method" : "POST",
"description" : "Create initial ceph default configuration and setup symlinks.",
+ "method" : "POST",
+ "name" : "init",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "network" : {
+ "description" : "Use specific network for all ceph related traffic",
+ "format" : "CIDR",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string"
+ },
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
},
"pg_bits" : {
- "optional" : 1,
+ "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.",
- "minimum" : 6,
"maximum" : 14,
- "default" : 6,
+ "minimum" : 6,
+ "optional" : 1,
"type" : "integer"
},
"size" : {
+ "default" : 2,
"description" : "Number of replicas per object",
- "optional" : 1,
- "minimum" : 1,
"maximum" : 3,
- "type" : "integer",
- "default" : 2
- },
- "network" : {
+ "minimum" : 1,
"optional" : 1,
- "maxLength" : 128,
- "description" : "Use specific network for all ceph related traffic",
- "format" : "CIDR",
- "type" : "string"
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/nodes/{node}/ceph/init"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/init",
+ "text" : "init"
},
{
- "path" : "/nodes/{node}/ceph/stop",
"info" : {
"POST" : {
"description" : "Stop ceph services.",
- "returns" : {
- "type" : "string"
- },
"method" : "POST",
"name" : "stop",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
},
"service" : {
- "type" : "string",
"description" : "Ceph service name.",
"optional" : 1,
- "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}"
+ "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/ceph/stop",
"text" : "stop"
},
{
- "leaf" : 1,
- "text" : "start",
- "path" : "/nodes/{node}/ceph/start",
"info" : {
"POST" : {
- "returns" : {
- "type" : "string"
- },
- "name" : "start",
- "method" : "POST",
"description" : "Start ceph services.",
+ "method" : "POST",
+ "name" : "start",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
},
"service" : {
- "optional" : 1,
"description" : "Ceph service name.",
+ "optional" : 1,
"pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}",
"type" : "string"
}
}
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/start",
+ "text" : "start"
},
{
- "path" : "/nodes/{node}/ceph/status",
"info" : {
"GET" : {
"description" : "Get ceph status.",
- "name" : "status",
"method" : "GET",
- "returns" : {
- "type" : "object"
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ }
+ }
},
"permissions" : {
"check" : [
},
"protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "returns" : {
+ "type" : "object"
}
}
},
- "text" : "status",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/status",
+ "text" : "status"
},
{
- "text" : "pools",
- "leaf" : 0,
"children" : [
{
- "text" : "{name}",
- "leaf" : 1,
"info" : {
"DELETE" : {
"description" : "Destroy pool",
- "name" : "destroypool",
"method" : "DELETE",
- "returns" : {
- "type" : "null"
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
+ "name" : "destroypool",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
"name" : {
"description" : "The name of the pool. It must be unique.",
"type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/ceph/pools/{name}"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/pools/{name}",
+ "text" : "{name}"
}
],
"info" : {
- "POST" : {
+ "GET" : {
+ "description" : "List all pools.",
+ "method" : "GET",
+ "name" : "lspools",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
- ]
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
]
},
"protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pool" : {
+ "type" : "integer"
+ },
+ "pool_name" : {
+ "type" : "string"
+ },
+ "size" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pool_name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create POOL",
+ "method" : "POST",
+ "name" : "createpool",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "pg_num" : {
- "description" : "Number of placement groups.",
- "optional" : 1,
- "minimum" : 8,
- "maximum" : 32768,
- "type" : "integer",
- "default" : 64
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
"crush_ruleset" : {
- "optional" : 1,
- "description" : "The ruleset to use for mapping object placement in the cluster.",
"default" : 0,
- "type" : "integer",
+ "description" : "The ruleset to use for mapping object placement in the cluster.",
"maximum" : 32768,
- "minimum" : 0
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
"min_size" : {
- "minimum" : 1,
- "maximum" : 3,
"default" : 1,
- "type" : "integer",
"description" : "Minimum number of replicas per object",
- "optional" : 1
- },
- "size" : {
"maximum" : 3,
- "default" : 2,
- "type" : "integer",
"minimum" : 1,
"optional" : 1,
- "description" : "Number of replicas per object"
+ "type" : "integer"
},
"name" : {
"description" : "The name of the pool. It must be unique.",
"type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "pg_num" : {
+ "default" : 64,
+ "description" : "Number of placement groups.",
+ "maximum" : 32768,
+ "minimum" : 8,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "size" : {
+ "default" : 2,
+ "description" : "Number of replicas per object",
+ "maximum" : 3,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Create POOL",
- "name" : "createpool",
- "method" : "POST",
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Modify"
+ ]
]
},
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
+ "protected" : 1,
"proxyto" : "node",
- "description" : "List all pools.",
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{pool_name}"
- }
- ],
- "type" : "array",
- "items" : {
- "properties" : {
- "pool_name" : {
- "type" : "string"
- },
- "pool" : {
- "type" : "integer"
- },
- "size" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- }
- },
- "method" : "GET",
- "name" : "lspools"
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/ceph/pools"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/pools",
+ "text" : "pools"
},
{
- "text" : "crush",
- "leaf" : 1,
- "path" : "/nodes/{node}/ceph/crush",
"info" : {
"GET" : {
- "proxyto" : "node",
+ "description" : "Get OSD crush map",
+ "method" : "GET",
+ "name" : "crush",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
}
}
},
]
},
"protected" : 1,
- "method" : "GET",
- "name" : "crush",
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "description" : "Get OSD crush map"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/crush",
+ "text" : "crush"
},
{
- "leaf" : 1,
- "text" : "log",
- "path" : "/nodes/{node}/ceph/log",
"info" : {
"GET" : {
- "name" : "log",
- "method" : "GET",
- "returns" : {
- "items" : {
- "properties" : {
- "n" : {
- "description" : "Line number",
- "type" : "integer"
- },
- "t" : {
- "type" : "string",
- "description" : "Line text"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- },
"description" : "Read ceph log",
- "proxyto" : "node",
+ "method" : "GET",
+ "name" : "log",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
},
- "limit" : {
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
"start" : {
- "type" : "integer",
"minimum" : 0,
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"Sys.Syslog"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/log",
+ "text" : "log"
}
],
- "path" : "/nodes/{node}/ceph",
"info" : {
"GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
"description" : "Directory index.",
- "name" : "index",
"method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
"returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
"links" : [
{
"href" : "{name}",
"rel" : "child"
}
],
- "items" : {
- "properties" : {},
- "type" : "object"
- },
"type" : "array"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph",
+ "text" : "ceph"
},
{
"info" : {
"POST" : {
- "protected" : 1,
- "permissions" : {
- "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage.",
- "user" : "all"
- },
- "proxyto" : "node",
+ "description" : "Create backup.",
+ "method" : "POST",
+ "name" : "vzdump",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "mailnotification" : {
- "default" : "always",
- "type" : "string",
- "optional" : 1,
- "description" : "Specify when to send an email",
- "enum" : [
- "always",
- "failure"
- ]
- },
- "stdexcludes" : {
- "default" : 1,
- "type" : "boolean",
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
"optional" : 1,
- "description" : "Exclude temporary files and logs."
+ "type" : "boolean"
},
- "pigz" : {
+ "bwlimit" : {
"default" : 0,
- "type" : "integer",
+ "description" : "Limit I/O bandwidth (KBytes per second).",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count."
+ "type" : "integer"
},
- "maxfiles" : {
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo"
+ ],
"optional" : 1,
- "description" : "Maximal number of backup files per guest system.",
- "minimum" : 1,
- "type" : "integer",
- "default" : 1
- },
- "lockwait" : {
- "minimum" : 0,
- "default" : 180,
- "type" : "integer",
- "description" : "Maximal time to wait for the global lock (minutes).",
- "optional" : 1
+ "type" : "string"
},
- "vmid" : {
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
"optional" : 1,
- "description" : "The ID of the guest system you want to backup.",
+ "type" : "string"
+ },
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
"format" : "pve-vmid-list",
+ "optional" : 1,
"type" : "string"
},
- "dumpdir" : {
- "description" : "Store resulting files to specified directory.",
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs).",
+ "format" : "string-alist",
"optional" : 1,
"type" : "string"
},
"ionice" : {
- "maximum" : 8,
- "type" : "integer",
"default" : 7,
- "minimum" : 0,
"description" : "Set CFQ ionice priority.",
- "optional" : 1
+ "maximum" : 8,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Only run if executed on this node."
+ "type" : "integer"
},
- "quiet" : {
- "description" : "Be quiet.",
+ "mailnotification" : {
+ "default" : "always",
+ "description" : "Specify when to send an email",
+ "enum" : [
+ "always",
+ "failure"
+ ],
"optional" : 1,
- "default" : 0,
- "type" : "boolean"
+ "type" : "string"
},
"mailto" : {
- "format" : "string-list",
- "type" : "string",
"description" : "Comma-separated list of email addresses that should receive email notifications.",
- "optional" : 1
+ "format" : "string-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "maxfiles" : {
+ "default" : 1,
+ "description" : "Maximal number of backup files per guest system.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
"mode" : {
"default" : "snapshot",
- "type" : "string",
"description" : "Backup mode.",
- "optional" : 1,
"enum" : [
"snapshot",
"suspend",
"stop"
- ]
- },
- "exclude" : {
- "description" : "Exclude specified guest systems (assumes --all)",
+ ],
"optional" : 1,
- "format" : "pve-vmid-list",
"type" : "string"
},
- "stopwait" : {
- "default" : 10,
- "type" : "integer",
- "minimum" : 0,
+ "node" : {
+ "description" : "Only run if executed on this node.",
+ "format" : "pve-node",
"optional" : 1,
- "description" : "Maximal time to wait until a guest system is stopped (minutes)."
+ "type" : "string"
},
- "exclude-path" : {
- "description" : "Exclude certain files/directories (shell globs).",
+ "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,
- "format" : "string-alist",
- "type" : "string"
+ "type" : "integer"
},
- "all" : {
+ "quiet" : {
"default" : 0,
- "type" : "boolean",
+ "description" : "Be quiet.",
"optional" : 1,
- "description" : "Backup all known guest systems on this host."
+ "type" : "boolean"
},
"remove" : {
- "type" : "boolean",
"default" : 1,
"description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
- "optional" : 1
- },
- "storage" : {
- "type" : "string",
- "format" : "pve-storage-id",
- "optional" : 1,
- "description" : "Store resulting file to this storage."
- },
- "stdout" : {
"optional" : 1,
- "description" : "Write tar to stdout, not to a file.",
"type" : "boolean"
},
- "compress" : {
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo"
- ],
- "description" : "Compress dump file.",
+ "script" : {
+ "description" : "Use specified hook script.",
"optional" : 1,
- "default" : "0",
"type" : "string"
},
"size" : {
- "optional" : 1,
+ "default" : 1024,
"description" : "Unused, will be removed in a future release.",
"minimum" : 500,
- "type" : "integer",
- "default" : 1024
+ "optional" : 1,
+ "type" : "integer"
},
- "bwlimit" : {
- "minimum" : 0,
- "default" : 0,
- "type" : "integer",
- "description" : "Limit I/O bandwidth (KBytes per second).",
- "optional" : 1
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "tmpdir" : {
- "type" : "string",
+ "stdout" : {
+ "description" : "Write tar to stdout, not to a file.",
"optional" : 1,
- "description" : "Store temporary files to specified directory."
+ "type" : "boolean"
},
"stop" : {
"default" : 0,
- "type" : "boolean",
+ "description" : "Stop runnig backup jobs on this host.",
"optional" : 1,
- "description" : "Stop runnig backup jobs on this host."
+ "type" : "boolean"
},
- "script" : {
- "description" : "Use specified hook script.",
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
+ "format" : "pve-vmid-list",
"optional" : 1,
"type" : "string"
}
}
},
- "description" : "Create backup.",
+ "permissions" : {
+ "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "name" : "vzdump",
- "method" : "POST"
+ }
}
},
- "path" : "/nodes/{node}/vzdump",
"leaf" : 1,
+ "path" : "/nodes/{node}/vzdump",
"text" : "vzdump"
},
{
- "path" : "/nodes/{node}/services",
"children" : [
{
"children" : [
{
- "leaf" : 1,
- "text" : "state",
- "path" : "/nodes/{node}/services/{service}/state",
"info" : {
"GET" : {
- "name" : "service_state",
- "method" : "GET",
- "returns" : {
- "type" : "object",
- "properties" : {}
- },
"description" : "Read service properties",
+ "method" : "GET",
+ "name" : "service_state",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"service" : {
"description" : "Service ID",
"enum" : [
"systemd-timesyncd"
],
"type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
}
}
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"Sys.Audit"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {},
+ "type" : "object"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/state",
+ "text" : "state"
},
{
"info" : {
"POST" : {
- "proxyto" : "node",
+ "description" : "Start service.",
+ "method" : "POST",
+ "name" : "service_start",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
},
"service" : {
+ "description" : "Service ID",
"enum" : [
"pveproxy",
"pvedaemon",
"ksmtuned",
"systemd-timesyncd"
],
- "description" : "Service ID",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "name" : "service_start",
- "method" : "POST",
- "description" : "Start service."
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/services/{service}/start",
- "text" : "start",
- "leaf" : 1
+ "text" : "start"
},
{
- "text" : "stop",
- "leaf" : 1,
- "path" : "/nodes/{node}/services/{service}/stop",
"info" : {
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
+ "description" : "Stop service.",
+ "method" : "POST",
+ "name" : "service_stop",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"service" : {
- "type" : "string",
"description" : "Service ID",
"enum" : [
"pveproxy",
"postfix",
"ksmtuned",
"systemd-timesyncd"
- ]
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ ],
+ "type" : "string"
}
}
},
- "description" : "Stop service.",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "name" : "service_stop",
- "method" : "POST"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/stop",
+ "text" : "stop"
},
{
- "path" : "/nodes/{node}/services/{service}/restart",
"info" : {
"POST" : {
+ "description" : "Restart service.",
+ "method" : "POST",
+ "name" : "service_restart",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
},
"service" : {
- "type" : "string",
"description" : "Service ID",
"enum" : [
"pveproxy",
"postfix",
"ksmtuned",
"systemd-timesyncd"
- ]
+ ],
+ "type" : "string"
}
}
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
- "name" : "service_restart",
- "method" : "POST",
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "description" : "Restart service."
+ }
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/restart",
"text" : "restart"
},
{
- "leaf" : 1,
- "text" : "reload",
- "path" : "/nodes/{node}/services/{service}/reload",
"info" : {
"POST" : {
- "name" : "service_reload",
- "method" : "POST",
- "returns" : {
- "type" : "string"
- },
"description" : "Reload service.",
- "proxyto" : "node",
+ "method" : "POST",
+ "name" : "service_reload",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
},
"service" : {
- "type" : "string",
+ "description" : "Service ID",
"enum" : [
"pveproxy",
"pvedaemon",
"ksmtuned",
"systemd-timesyncd"
],
- "description" : "Service ID"
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"Sys.Modify"
]
]
+ },
+ "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"
+ },
"service" : {
- "type" : "string",
+ "description" : "Service ID",
"enum" : [
"pveproxy",
"pvedaemon",
"ksmtuned",
"systemd-timesyncd"
],
- "description" : "Service ID"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
"returns" : {
"items" : {
"properties" : {
},
"type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{subdir}"
+ "href" : "{subdir}",
+ "rel" : "child"
}
- ]
- },
- "method" : "GET",
- "name" : "srvcmdidx",
- "description" : "Directory index",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
+ ],
+ "type" : "array"
}
}
},
- "path" : "/nodes/{node}/services/{service}",
"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"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- },
"proxyto" : "node",
- "description" : "Service list.",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {},
"type" : "object"
},
"links" : [
{
- "rel" : "child",
- "href" : "{service}"
+ "href" : "{service}",
+ "rel" : "child"
}
- ]
- },
- "method" : "GET",
- "name" : "index"
+ ],
+ "type" : "array"
+ }
}
},
"leaf" : 0,
+ "path" : "/nodes/{node}/services",
"text" : "services"
},
{
"info" : {
"GET" : {
- "permissions" : {
- "user" : "all"
- },
"description" : "Read subscription info.",
- "proxyto" : "node",
+ "method" : "GET",
+ "name" : "get",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
}
}
},
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
"returns" : {
"type" : "object"
- },
- "method" : "GET",
- "name" : "get"
+ }
},
"POST" : {
+ "description" : "Update subscription info.",
"method" : "POST",
"name" : "update",
- "proxyto" : "node",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"force" : {
"default" : 0,
- "type" : "boolean",
+ "description" : "Always connect to server, even if we have up to date info inside local cache.",
"optional" : 1,
- "description" : "Always connect to server, even if we have up to date info inside local cache."
+ "type" : "boolean"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "null"
- },
- "description" : "Update subscription info.",
- "protected" : 1
+ }
},
"PUT" : {
- "returns" : {
- "type" : "null"
- },
- "proxyto" : "node",
+ "description" : "Set subscription key.",
+ "method" : "PUT",
+ "name" : "set",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"key" : {
- "type" : "string",
- "description" : "Proxmox VE subscription key"
+ "description" : "Proxmox VE subscription key",
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "PUT",
- "name" : "set",
"protected" : 1,
- "description" : "Set subscription key."
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/subscription",
"leaf" : 1,
+ "path" : "/nodes/{node}/subscription",
"text" : "subscription"
},
{
- "leaf" : 0,
- "text" : "network",
- "path" : "/nodes/{node}/network",
"children" : [
{
- "leaf" : 1,
- "text" : "{iface}",
- "path" : "/nodes/{node}/network/{iface}",
"info" : {
- "PUT" : {
- "method" : "PUT",
- "name" : "update_network",
- "returns" : {
- "type" : "null"
+ "DELETE" : {
+ "description" : "Delete network device configuration",
+ "method" : "DELETE",
+ "name" : "delete_network",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "description" : "Update network device configuration",
+ "protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Read network device configuration",
+ "method" : "GET",
+ "name" : "network_config",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "ovs_tag" : {
- "minimum" : 1,
- "type" : "integer",
- "maximum" : 4094,
- "optional" : 1,
- "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)"
- },
- "ovs_bonds" : {
- "format" : "pve-iface-list",
- "type" : "string",
- "optional" : 1,
- "description" : "Specify the interfaces used by the bonding device."
- },
- "gateway6" : {
- "description" : "Default ipv6 gateway address.",
- "optional" : 1,
- "format" : "ipv6",
- "type" : "string"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "unknown"
- ],
- "description" : "Network interface type"
- },
- "comments6" : {
- "type" : "string",
- "description" : "Comments",
- "optional" : 1
- },
"iface" : {
- "type" : "string",
+ "description" : "Network interface name.",
"format" : "pve-iface",
- "minLength" : 2,
"maxLength" : 20,
- "description" : "Network interface name."
- },
- "bond_xmit_hash_policy" : {
- "optional" : 1,
- "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
- "enum" : [
- "layer2",
- "layer2+3",
- "layer3+4"
- ],
- "type" : "string"
- },
- "slaves" : {
- "optional" : 1,
- "description" : "Specify the interfaces used by the bonding device.",
- "format" : "pve-iface-list",
+ "minLength" : 2,
"type" : "string"
},
- "netmask" : {
- "description" : "Network mask.",
- "optional" : 1,
- "requires" : "address",
- "type" : "string",
- "format" : "ipv4mask"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "method" : {
+ "type" : "string"
},
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Update network device configuration",
+ "method" : "PUT",
+ "name" : "update_network",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
"address" : {
- "optional" : 1,
"description" : "IP address.",
+ "format" : "ipv4",
+ "optional" : 1,
"requires" : "netmask",
- "type" : "string",
- "format" : "ipv4"
- },
- "bridge_ports" : {
- "format" : "pve-iface-list",
- "type" : "string",
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "optional" : 1
+ "type" : "string"
},
- "comments" : {
- "description" : "Comments",
+ "address6" : {
+ "description" : "IP address.",
+ "format" : "ipv6",
"optional" : 1,
+ "requires" : "netmask6",
"type" : "string"
},
+ "autostart" : {
+ "description" : "Automatically start interface on boot.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"bond_mode" : {
- "type" : "string",
+ "description" : "Bonding mode.",
"enum" : [
"balance-rr",
"active-backup",
"lacp-balance-slb",
"lacp-balance-tcp"
],
- "description" : "Bonding mode.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bond_xmit_hash_policy" : {
+ "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
+ "enum" : [
+ "layer2",
+ "layer2+3",
+ "layer3+4"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bridge_ports" : {
+ "description" : "Specify the iterfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string"
},
"bridge_vlan_aware" : {
- "type" : "boolean",
"description" : "Enable bridge vlan support.",
- "optional" : 1
- },
- "autostart" : {
- "type" : "boolean",
"optional" : 1,
- "description" : "Automatically start interface on boot."
+ "type" : "boolean"
},
- "ovs_bridge" : {
- "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
+ "comments" : {
+ "description" : "Comments",
"optional" : 1,
- "type" : "string",
- "format" : "pve-iface"
+ "type" : "string"
},
- "address6" : {
+ "comments6" : {
+ "description" : "Comments",
"optional" : 1,
- "description" : "IP address.",
- "requires" : "netmask6",
- "type" : "string",
- "format" : "ipv6"
+ "type" : "string"
},
"delete" : {
- "optional" : 1,
"description" : "A list of settings you want to delete.",
"format" : "pve-configid-list",
+ "optional" : 1,
"type" : "string"
},
- "ovs_options" : {
- "type" : "string",
- "description" : "OVS interface options.",
- "maxLength" : 1024,
- "optional" : 1
+ "gateway" : {
+ "description" : "Default gateway address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "type" : "string"
},
- "ovs_ports" : {
+ "gateway6" : {
+ "description" : "Default ipv6 gateway address.",
+ "format" : "ipv6",
"optional" : 1,
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "type" : "string",
- "format" : "pve-iface-list"
+ "type" : "string"
},
- "gateway" : {
- "description" : "Default gateway address.",
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string"
+ },
+ "netmask" : {
+ "description" : "Network mask.",
+ "format" : "ipv4mask",
"optional" : 1,
- "format" : "ipv4",
+ "requires" : "address",
"type" : "string"
},
"netmask6" : {
"description" : "Network mask.",
- "optional" : 1,
- "minimum" : 0,
"maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
"requires" : "address6",
"type" : "integer"
- }
- }
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- }
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Read network device configuration",
- "method" : "GET",
- "name" : "network_config",
- "returns" : {
- "type" : "object",
- "properties" : {
- "method" : {
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "ovs_bonds" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "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"
+ },
+ "ovs_options" : {
+ "description" : "OVS interface options.",
+ "maxLength" : 1024,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ovs_ports" : {
+ "description" : "Specify the iterfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ovs_tag" : {
+ "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "slaves" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
"type" : "string"
},
"type" : {
+ "description" : "Network interface type",
+ "enum" : [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "unknown"
+ ],
"type" : "string"
}
}
},
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "iface" : {
- "minLength" : 2,
- "description" : "Network interface name.",
- "maxLength" : 20,
- "type" : "string",
- "format" : "pve-iface"
- }
- },
- "additionalProperties" : 0
- }
- },
- "DELETE" : {
- "description" : "Delete network device configuration",
- "method" : "DELETE",
- "name" : "delete_network",
- "returns" : {
- "type" : "null"
- },
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "iface" : {
- "description" : "Network interface name.",
- "maxLength" : 20,
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/network/{iface}",
+ "text" : "{iface}"
}
],
"info" : {
"DELETE" : {
+ "description" : "Revert network configuration changes.",
+ "method" : "DELETE",
+ "name" : "revert_network_changes",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
}
}
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
- "method" : "DELETE",
- "name" : "revert_network_changes",
+ "proxyto" : "node",
"returns" : {
"type" : "null"
- },
- "description" : "Revert network configuration changes."
+ }
},
"GET" : {
"description" : "List available networks",
- "permissions" : {
- "user" : "all"
- },
- "name" : "index",
"method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "links" : [
- {
- "href" : "{iface}",
- "rel" : "child"
- }
- ]
- },
- "proxyto" : "node",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"type" : {
- "type" : "string",
- "optional" : 1,
"description" : "Only list specific interface types.",
"enum" : [
"bridge",
"OVSPort",
"OVSIntPort",
"any_bridge"
- ]
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ ],
+ "optional" : 1,
+ "type" : "string"
}
}
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{iface}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
"POST" : {
+ "description" : "Create network device configuration",
"method" : "POST",
"name" : "create_network",
- "returns" : {
- "type" : "null"
- },
- "description" : "Create network device configuration",
- "proxyto" : "node",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "slaves" : {
- "format" : "pve-iface-list",
- "type" : "string",
- "description" : "Specify the interfaces used by the bonding device.",
- "optional" : 1
+ "address" : {
+ "description" : "IP address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "requires" : "netmask",
+ "type" : "string"
+ },
+ "address6" : {
+ "description" : "IP address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "requires" : "netmask6",
+ "type" : "string"
+ },
+ "autostart" : {
+ "description" : "Automatically start interface on boot.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bond_mode" : {
+ "description" : "Bonding mode.",
+ "enum" : [
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
"bond_xmit_hash_policy" : {
"description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
- "optional" : 1,
"enum" : [
"layer2",
"layer2+3",
"layer3+4"
],
+ "optional" : 1,
"type" : "string"
},
- "comments6" : {
- "description" : "Comments",
+ "bridge_ports" : {
+ "description" : "Specify the iterfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
"optional" : 1,
"type" : "string"
},
- "iface" : {
- "type" : "string",
- "format" : "pve-iface",
- "minLength" : 2,
- "description" : "Network interface name.",
- "maxLength" : 20
+ "bridge_vlan_aware" : {
+ "description" : "Enable bridge vlan support.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "type" : {
- "type" : "string",
- "description" : "Network interface type",
- "enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "unknown"
- ]
+ "comments" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string"
},
- "ovs_tag" : {
- "minimum" : 1,
- "type" : "integer",
- "maximum" : 4094,
- "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
- "optional" : 1
+ "comments6" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string"
},
- "ovs_bonds" : {
- "description" : "Specify the interfaces used by the bonding device.",
+ "gateway" : {
+ "description" : "Default gateway address.",
+ "format" : "ipv4",
"optional" : 1,
- "type" : "string",
- "format" : "pve-iface-list"
+ "type" : "string"
},
"gateway6" : {
- "type" : "string",
+ "description" : "Default ipv6 gateway address.",
"format" : "ipv6",
"optional" : 1,
- "description" : "Default ipv6 gateway address."
+ "type" : "string"
},
- "ovs_options" : {
- "type" : "string",
- "description" : "OVS interface options.",
- "optional" : 1,
- "maxLength" : 1024
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string"
},
- "address6" : {
- "format" : "ipv6",
- "requires" : "netmask6",
- "type" : "string",
- "description" : "IP address.",
- "optional" : 1
+ "netmask" : {
+ "description" : "Network mask.",
+ "format" : "ipv4mask",
+ "optional" : 1,
+ "requires" : "address",
+ "type" : "string"
},
"netmask6" : {
+ "description" : "Network mask.",
+ "maximum" : 128,
"minimum" : 0,
- "type" : "integer",
+ "optional" : 1,
"requires" : "address6",
- "maximum" : 128,
- "description" : "Network mask.",
- "optional" : 1
+ "type" : "integer"
},
- "ovs_ports" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "ovs_bonds" : {
+ "description" : "Specify the interfaces used by the bonding device.",
"format" : "pve-iface-list",
- "type" : "string",
"optional" : 1,
- "description" : "Specify the iterfaces you want to add to your bridge."
- },
- "gateway" : {
- "format" : "ipv4",
- "type" : "string",
- "description" : "Default gateway address.",
- "optional" : 1
+ "type" : "string"
},
"ovs_bridge" : {
- "optional" : 1,
"description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
"format" : "pve-iface",
+ "optional" : 1,
"type" : "string"
},
- "autostart" : {
- "description" : "Automatically start interface on boot.",
+ "ovs_options" : {
+ "description" : "OVS interface options.",
+ "maxLength" : 1024,
"optional" : 1,
- "type" : "boolean"
- },
- "bond_mode" : {
- "type" : "string",
- "enum" : [
- "balance-rr",
- "active-backup",
- "balance-xor",
- "broadcast",
- "802.3ad",
- "balance-tlb",
- "balance-alb",
- "balance-slb",
- "lacp-balance-slb",
- "lacp-balance-tcp"
- ],
- "description" : "Bonding mode.",
- "optional" : 1
+ "type" : "string"
},
- "bridge_vlan_aware" : {
- "type" : "boolean",
+ "ovs_ports" : {
+ "description" : "Specify the iterfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
"optional" : 1,
- "description" : "Enable bridge vlan support."
- },
- "comments" : {
- "type" : "string",
- "description" : "Comments",
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "netmask" : {
- "type" : "string",
- "requires" : "address",
- "format" : "ipv4mask",
- "description" : "Network mask.",
- "optional" : 1
+ "type" : "string"
},
- "bridge_ports" : {
- "description" : "Specify the iterfaces you want to add to your bridge.",
+ "ovs_tag" : {
+ "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
+ "maximum" : 4094,
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "format" : "pve-iface-list"
+ "type" : "integer"
},
- "address" : {
+ "slaves" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
"optional" : 1,
- "description" : "IP address.",
- "format" : "ipv4",
- "requires" : "netmask",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Network interface type",
+ "enum" : [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "unknown"
+ ],
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"Sys.Modify"
]
]
- }
- }
- }
- },
- {
- "leaf" : 0,
- "text" : "tasks",
- "info" : {
- "GET" : {
- "permissions" : {
- "user" : "all",
- "description" : "List task associated with the current user, or all task the user has 'Sys.Audit' permissions on /nodes/<node> (the <node> the task runs on)."
- },
- "description" : "Read task list for one node (finished tasks).",
- "method" : "GET",
- "name" : "node_tasks",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "limit" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "errors" : {
- "type" : "boolean",
- "optional" : 1
- },
- "start" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- },
- "vmid" : {
- "description" : "Only list tasks for this VM.",
- "optional" : 1,
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "userfilter" : {
- "type" : "string",
- "optional" : 1
- }
- }
},
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
- "items" : {
- "properties" : {
- "upid" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "href" : "{upid}",
- "rel" : "child"
- }
- ]
+ "type" : "null"
}
}
},
- "path" : "/nodes/{node}/tasks",
+ "leaf" : 0,
+ "path" : "/nodes/{node}/network",
+ "text" : "network"
+ },
+ {
"children" : [
{
- "text" : "{upid}",
- "leaf" : 0,
"children" : [
{
- "text" : "log",
- "leaf" : 1,
- "path" : "/nodes/{node}/tasks/{upid}/log",
"info" : {
"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 log.",
+ "method" : "GET",
+ "name" : "read_task_log",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
"limit" : {
"minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
"start" : {
"minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
"upid" : {
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Read task log.",
+ "permissions" : {
+ "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if the task does not belong to him.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
"n" : {
- "type" : "integer",
- "description" : "Line number"
+ "description" : "Line number",
+ "type" : "integer"
},
"t" : {
"description" : "Line text",
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
"type" : "array"
- },
- "method" : "GET",
- "name" : "read_task_log"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/tasks/{upid}/log",
+ "text" : "log"
},
{
- "text" : "status",
- "leaf" : 1,
"info" : {
"GET" : {
- "proxyto" : "node",
+ "description" : "Read task status.",
+ "method" : "GET",
+ "name" : "read_task_status",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "upid" : {
- "type" : "string"
- },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
+ },
+ "upid" : {
+ "type" : "string"
}
}
},
- "protected" : 1,
"permissions" : {
- "user" : "all",
- "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if the task does not belong to him."
+ "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if the task does not belong to him.",
+ "user" : "all"
},
- "method" : "GET",
- "name" : "read_task_status",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "object",
"properties" : {
+ "pid" : {
+ "type" : "integer"
+ },
"status" : {
"enum" : [
"running",
"stopped"
],
"type" : "string"
- },
- "pid" : {
- "type" : "integer"
}
- }
- },
- "description" : "Read task status."
+ },
+ "type" : "object"
+ }
}
},
- "path" : "/nodes/{node}/tasks/{upid}/status"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/tasks/{upid}/status",
+ "text" : "status"
}
],
"info" : {
- "GET" : {
- "description" : "",
- "permissions" : {
- "user" : "all"
- },
- "name" : "upid_index",
- "method" : "GET",
+ "DELETE" : {
+ "description" : "Stop a task.",
+ "method" : "DELETE",
+ "name" : "stop_task",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
},
"upid" : {
"type" : "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" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ]
+ "type" : "null"
}
},
- "DELETE" : {
+ "GET" : {
+ "description" : "",
+ "method" : "GET",
+ "name" : "upid_index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "upid" : {
- "type" : "string"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
+ },
+ "upid" : {
+ "type" : "string"
}
}
},
- "proxyto" : "node",
"permissions" : {
- "user" : "all",
- "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if the task does not belong to him."
+ "user" : "all"
},
- "protected" : 1,
- "method" : "DELETE",
- "name" : "stop_task",
"returns" : {
- "type" : "null"
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/tasks/{upid}",
+ "text" : "{upid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Read task list for one node (finished tasks).",
+ "method" : "GET",
+ "name" : "node_tasks",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "errors" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
- "description" : "Stop a task."
+ "userfilter" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "Only list tasks for this VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ }
}
},
- "path" : "/nodes/{node}/tasks/{upid}"
+ "permissions" : {
+ "description" : "List task associated with the current user, or all task the user has 'Sys.Audit' permissions on /nodes/<node> (the <node> the task runs on).",
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "upid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{upid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
- ]
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/tasks",
+ "text" : "tasks"
},
{
- "text" : "scan",
- "leaf" : 0,
- "path" : "/nodes/{node}/scan",
"children" : [
{
- "text" : "zfs",
- "leaf" : 1,
- "path" : "/nodes/{node}/scan/zfs",
"info" : {
"GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "pool" : {
- "type" : "string"
- }
- },
- "type" : "object"
- }
- },
- "name" : "zfsscan",
- "method" : "GET",
"description" : "Scan zfs pool list on local node.",
+ "method" : "GET",
+ "name" : "zfsscan",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pool" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/zfs",
+ "text" : "zfs"
},
{
- "path" : "/nodes/{node}/scan/nfs",
"info" : {
"GET" : {
"description" : "Scan remote NFS server.",
"method" : "GET",
"name" : "nfsscan",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "path" : {
- "type" : "string"
- },
- "options" : {
- "type" : "string"
- }
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "server" : {
+ "format" : "pve-storage-server",
+ "type" : "string"
}
- },
- "type" : "array"
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "properties" : {
- "server" : {
- "type" : "string",
- "format" : "pve-storage-server"
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "options" : {
+ "type" : "string"
+ },
+ "path" : {
+ "type" : "string"
+ }
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
+ "type" : "object"
},
- "additionalProperties" : 0
+ "type" : "array"
}
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/scan/nfs",
"text" : "nfs"
},
{
- "path" : "/nodes/{node}/scan/glusterfs",
"info" : {
"GET" : {
- "proxyto" : "node",
+ "description" : "Scan remote GlusterFS server.",
+ "method" : "GET",
+ "name" : "glusterfsscan",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"server" : {
"format" : "pve-storage-server",
"type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "name" : "glusterfsscan",
- "method" : "GET",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
"volname" : {
"type" : "string"
}
- }
- }
- },
- "description" : "Scan remote GlusterFS server."
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
},
- "text" : "glusterfs",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/glusterfs",
+ "text" : "glusterfs"
},
{
- "path" : "/nodes/{node}/scan/iscsi",
"info" : {
"GET" : {
+ "description" : "Scan remote iSCSI server.",
+ "method" : "GET",
+ "name" : "iscsiscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "portal" : {
+ "format" : "pve-storage-portal-dns",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
- "target" : {
+ "portal" : {
"type" : "string"
},
- "portal" : {
+ "target" : {
"type" : "string"
}
},
"type" : "object"
- }
- },
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/iscsi",
+ "text" : "iscsi"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "List local LVM volume groups.",
"method" : "GET",
- "name" : "iscsiscan",
- "description" : "Scan remote iSCSI server.",
+ "name" : "lvmscan",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "portal" : {
- "type" : "string",
- "format" : "pve-storage-portal-dns"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"Datastore.Allocate"
]
]
- }
- }
- },
- "text" : "iscsi",
- "leaf" : 1
- },
- {
- "path" : "/nodes/{node}/scan/lvm",
- "info" : {
- "GET" : {
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
"vg" : {
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
"type" : "array"
- },
- "name" : "lvmscan",
- "method" : "GET",
- "description" : "List local LVM volume groups.",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
- "protected" : 1
+ }
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/scan/lvm",
"text" : "lvm"
},
{
- "leaf" : 1,
- "text" : "lvmthin",
"info" : {
"GET" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
+ "description" : "List local LVM Thin Pools.",
+ "method" : "GET",
+ "name" : "lvmthinscan",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
"type" : "string"
},
"vg" : {
- "type" : "string",
+ "maxLength" : 100,
"pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
- "maxLength" : 100
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
},
+ "protected" : 1,
"proxyto" : "node",
- "description" : "List local LVM Thin Pools.",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"lv" : {
}
},
"type" : "object"
- }
- },
- "method" : "GET",
- "name" : "lvmthinscan"
+ },
+ "type" : "array"
+ }
}
},
- "path" : "/nodes/{node}/scan/lvmthin"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/lvmthin",
+ "text" : "lvmthin"
},
{
- "text" : "usb",
- "leaf" : 1,
- "path" : "/nodes/{node}/scan/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"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
"properties" : {
- "port" : {
+ "busnum" : {
"type" : "integer"
},
- "prodid" : {
- "type" : "string"
- },
- "manufacturer" : {
- "optional" : 1,
- "type" : "string"
- },
- "product" : {
- "optional" : 1,
- "type" : "string"
- },
"class" : {
"type" : "integer"
},
"level" : {
"type" : "integer"
},
- "vendid" : {
+ "manufacturer" : {
+ "optional" : 1,
"type" : "string"
},
- "usbpath" : {
- "type" : "string",
- "optional" : 1
- },
- "busnum" : {
+ "port" : {
"type" : "integer"
},
+ "prodid" : {
+ "type" : "string"
+ },
+ "product" : {
+ "optional" : 1,
+ "type" : "string"
+ },
"serial" : {
"optional" : 1,
"type" : "string"
},
"speed" : {
"type" : "string"
+ },
+ "usbpath" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vendid" : {
+ "type" : "string"
}
},
"type" : "object"
},
"type" : "array"
- },
- "name" : "usbscan",
- "method" : "GET",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "proxyto" : "node"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/usb",
+ "text" : "usb"
}
],
"info" : {
"GET" : {
"description" : "Index of available scan methods",
- "permissions" : {
- "user" : "all"
- },
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"method" : {
},
"links" : [
{
- "rel" : "child",
- "href" : "{method}"
+ "href" : "{method}",
+ "rel" : "child"
}
- ]
- },
- "method" : "GET",
- "name" : "index"
+ ],
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/scan",
+ "text" : "scan"
},
{
- "text" : "storage",
- "leaf" : 0,
"children" : [
{
- "info" : {
- "GET" : {
- "description" : "",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
- },
- "method" : "GET",
- "name" : "diridx",
- "parameters" : {
- "properties" : {
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier."
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "items" : {
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
- ]
- }
- }
- },
"children" : [
{
"children" : [
{
- "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
"info" : {
- "DELETE" : {
- "protected" : 1,
- "permissions" : {
- "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
- "user" : "all"
- },
+ "DELETE" : {
+ "description" : "Delete volume",
+ "method" : "DELETE",
+ "name" : "delete",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
"type" : "string"
},
"storage" : {
- "optional" : 1,
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "optional" : 1,
"type" : "string"
},
"volume" : {
"description" : "Volume identifier",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
+ "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",
- "description" : "Delete volume",
"returns" : {
"type" : "null"
- },
- "method" : "DELETE",
- "name" : "delete"
+ }
},
"GET" : {
- "returns" : {
- "type" : "object"
- },
- "name" : "info",
- "method" : "GET",
"description" : "Get volume attributes",
- "proxyto" : "node",
+ "method" : "GET",
+ "name" : "info",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"storage" : {
- "optional" : 1,
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "optional" : 1,
"type" : "string"
},
"volume" : {
"description" : "Volume identifier",
"type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
}
}
},
- "protected" : 1,
"permissions" : {
- "user" : "all",
- "description" : "You need read access for the volume."
+ "description" : "You need read access for the volume.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
}
},
"POST" : {
- "proxyto" : "node",
+ "description" : "Copy a volume. This is experimental code - do not use.",
+ "method" : "POST",
+ "name" : "copy",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "target" : {
- "description" : "Target volume identifier",
"type" : "string"
},
- "volume" : {
- "type" : "string",
- "description" : "Source volume identifier"
- },
"storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
"description" : "The storage identifier.",
- "optional" : 1
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "target" : {
+ "description" : "Target volume identifier",
+ "type" : "string"
},
"target_node" : {
+ "description" : "Target node. Default is local node.",
"format" : "pve-node",
- "type" : "string",
"optional" : 1,
- "description" : "Target node. Default is local node."
+ "type" : "string"
+ },
+ "volume" : {
+ "description" : "Source volume identifier",
+ "type" : "string"
}
}
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "method" : "POST",
- "name" : "copy",
- "description" : "Copy a volume. This is experimental code - do not use.",
- "protected" : 1
+ }
}
},
- "text" : "{volume}",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
+ "text" : "{volume}"
}
],
"info" : {
"GET" : {
- "returns" : {
- "items" : {
- "properties" : {
- "volid" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{volid}"
- }
- ]
- },
+ "description" : "List storage content.",
"method" : "GET",
"name" : "index",
- "description" : "List storage content.",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
+ "content" : {
+ "description" : "Only list content of this type.",
+ "format" : "pve-storage-content",
"optional" : 1,
- "description" : "Only list images for this VM",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
+ "type" : "string"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
},
- "content" : {
- "description" : "Only list content of this type.",
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "Only list images for this VM",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "format" : "pve-storage-content"
+ "type" : "integer"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
1
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "volid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{volid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
},
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.AllocateSpace"
- ]
- ]
- },
- "protected" : 1,
+ "description" : "Allocate disk images.",
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier."
+ "filename" : {
+ "description" : "The name of the file to create.",
+ "type" : "string"
},
"format" : {
- "type" : "string",
- "requires" : "size",
"enum" : [
"raw",
"qcow2",
"subvol"
],
- "optional" : 1
+ "optional" : 1,
+ "requires" : "size",
+ "type" : "string"
},
- "vmid" : {
- "description" : "Specify owner VM",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
"size" : {
- "type" : "string",
"description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
- "pattern" : "\\d+[MG]?"
+ "pattern" : "\\d+[MG]?",
+ "type" : "string"
},
- "filename" : {
- "description" : "The name of the file to create.",
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"type" : "string"
},
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "vmid" : {
+ "description" : "Specify owner VM",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.AllocateSpace"
+ ]
+ ]
+ },
+ "protected" : 1,
"proxyto" : "node",
- "description" : "Allocate disk images.",
- "name" : "create",
- "method" : "POST",
"returns" : {
"description" : "Volume identifier",
"type" : "string"
}
}
},
+ "leaf" : 0,
"path" : "/nodes/{node}/storage/{storage}/content",
- "text" : "content",
- "leaf" : 0
+ "text" : "content"
},
{
- "text" : "status",
- "leaf" : 1,
"info" : {
"GET" : {
+ "description" : "Read storage status.",
"method" : "GET",
"name" : "read_status",
- "returns" : {
- "properties" : {},
- "type" : "object"
- },
- "description" : "Read storage status.",
- "proxyto" : "node",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"any",
1
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {},
+ "type" : "object"
}
}
},
- "path" : "/nodes/{node}/storage/{storage}/status"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/status",
+ "text" : "status"
},
{
- "path" : "/nodes/{node}/storage/{storage}/rrd",
"info" : {
"GET" : {
+ "description" : "Read storage RRD statistics (returns PNG).",
"method" : "GET",
"name" : "rrd",
- "returns" : {
- "type" : "object",
- "properties" : {
- "filename" : {
- "type" : "string"
- }
- }
- },
- "description" : "Read storage RRD statistics (returns PNG).",
- "proxyto" : "node",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"cf" : {
- "optional" : 1,
"description" : "The RRD consolidation function",
"enum" : [
"AVERAGE",
"MAX"
],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ds" : {
+ "description" : "The list of datasources you want to display.",
+ "format" : "pve-configid-list",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string"
},
"storage" : {
"description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
+ "format" : "pve-storage-id",
+ "type" : "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"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "ds" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "The list of datasources you want to display."
}
}
},
1
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
}
},
"leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/rrd",
"text" : "rrd"
},
{
- "text" : "rrddata",
- "leaf" : 1,
- "path" : "/nodes/{node}/storage/{storage}/rrddata",
"info" : {
"GET" : {
"description" : "Read storage RRD statistics.",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- }
- },
"method" : "GET",
"name" : "rrddata",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "timeframe" : {
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ],
- "description" : "Specify the time frame you are interested in.",
- "type" : "string"
- },
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier."
- },
"cf" : {
- "type" : "string",
+ "description" : "The RRD consolidation function",
"enum" : [
"AVERAGE",
"MAX"
],
"optional" : 1,
- "description" : "The RRD consolidation function"
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "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" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/rrddata",
+ "text" : "rrddata"
},
{
- "text" : "upload",
- "leaf" : 1,
- "path" : "/nodes/{node}/storage/{storage}/upload",
"info" : {
"POST" : {
+ "description" : "Upload templates and ISO images.",
"method" : "POST",
"name" : "upload",
- "returns" : {
- "type" : "string"
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "storage" : {
- "description" : "The storage identifier.",
- "format" : "pve-storage-id",
- "type" : "string"
- },
- "tmpfilename" : {
- "optional" : 1,
- "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trustet port on localhost.",
- "type" : "string"
- },
"content" : {
+ "description" : "Content type.",
"format" : "pve-storage-content",
- "type" : "string",
- "description" : "Content type."
+ "type" : "string"
},
"filename" : {
"description" : "The name of the file to create.",
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "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,
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
- "description" : "Upload templates and ISO images.",
"permissions" : {
"check" : [
"perm",
"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"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "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}",
- "leaf" : 0
+ "text" : "{storage}"
}
],
- "path" : "/nodes/{node}/storage",
"info" : {
"GET" : {
"description" : "Get status for all datastores.",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "storage" : {
- "type" : "string"
- }
- }
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{storage}"
- }
- ]
- },
- "name" : "index",
"method" : "GET",
- "permissions" : {
- "user" : "all",
- "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'"
- },
- "protected" : 1,
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
"content" : {
- "type" : "string",
- "format" : "pve-storage-content-list",
"description" : "Only list stores which support this content type.",
- "optional" : 1
- },
- "target" : {
+ "format" : "pve-storage-content-list",
"optional" : 1,
- "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
- "format" : "pve-node",
"type" : "string"
},
"enabled" : {
- "optional" : 1,
- "description" : "Only list stores which are enabled (not disabled in config).",
"default" : 0,
+ "description" : "Only list stores which are enabled (not disabled in config).",
+ "optional" : 1,
"type" : "boolean"
},
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "optional" : 1,
- "description" : "Only list status for specified storage"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "storage" : {
+ "description" : "Only list status for specified storage",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "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"
+ }
+ }
+ },
+ "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"
}
- }
- },
- "proxyto" : "node"
+ ],
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/storage",
+ "text" : "storage"
},
{
- "text" : "apt",
- "leaf" : 0,
"children" : [
{
"info" : {
- "POST" : {
- "proxyto" : "node",
+ "GET" : {
+ "description" : "List available updates.",
+ "method" : "GET",
+ "name" : "list_updates",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "notify" : {
- "optional" : 1,
- "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
- "default" : 0,
- "type" : "boolean"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
- },
- "quiet" : {
- "type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "Only produces output suitable for logging, omitting progress indicators."
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
"method" : "POST",
"name" : "update_database",
- "returns" : {
- "type" : "string"
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "notify" : {
+ "default" : 0,
+ "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Only produces output suitable for logging, omitting progress indicators.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ }
},
- "description" : "This is used to resynchronize the package index files from their sources (apt-get update)."
- },
- "GET" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
- "description" : "List available updates.",
"returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
- },
- "name" : "list_updates",
- "method" : "GET"
+ "type" : "string"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/apt/update",
- "text" : "update",
- "leaf" : 1
+ "text" : "update"
},
{
- "leaf" : 1,
- "text" : "changelog",
"info" : {
"GET" : {
+ "description" : "Get package changelogs.",
"method" : "GET",
"name" : "changelog",
- "returns" : {
- "type" : "string"
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"name" : {
"description" : "Package name.",
"type" : "string"
},
- "version" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Package version."
- },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
+ },
+ "version" : {
+ "description" : "Package version.",
+ "optional" : 1,
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get package changelogs."
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/apt/changelog"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/changelog",
+ "text" : "changelog"
},
{
- "text" : "versions",
- "leaf" : 1,
"info" : {
"GET" : {
+ "description" : "Get package information for important Proxmox packages.",
+ "method" : "GET",
+ "name" : "versions",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get package information for important Proxmox packages.",
- "method" : "GET",
- "name" : "versions",
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
- "properties" : {}
+ "properties" : {},
+ "type" : "object"
},
"type" : "array"
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
}
}
},
- "path" : "/nodes/{node}/apt/versions"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/versions",
+ "text" : "versions"
}
],
- "path" : "/nodes/{node}/apt",
"info" : {
"GET" : {
"description" : "Directory index for apt (Advanced Package Tool).",
- "permissions" : {
- "user" : "all"
- },
"method" : "GET",
"name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
"returns" : {
"items" : {
},
"type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{id}"
+ "href" : "{id}",
+ "rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/apt",
+ "text" : "apt"
},
{
- "leaf" : 0,
- "text" : "firewall",
- "path" : "/nodes/{node}/firewall",
"children" : [
{
"children" : [
{
- "leaf" : 1,
- "text" : "{pos}",
- "path" : "/nodes/{node}/firewall/rules/{pos}",
"info" : {
"DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
+ "description" : "Delete rule.",
+ "method" : "DELETE",
+ "name" : "delete_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
"digest" : {
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
"maxLength" : 40,
+ "optional" : 1,
"type" : "string"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
}
}
},
- "description" : "Delete rule.",
- "name" : "delete_rule",
- "method" : "DELETE",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "null"
}
},
"GET" : {
- "returns" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "proxyto" : "node",
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "pos" : {
- "minimum" : 0,
- "type" : "integer",
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
}
}
},
- "name" : "get_rule",
- "method" : "GET",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get single rule data."
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
},
"PUT" : {
- "method" : "PUT",
- "name" : "update_rule",
- "returns" : {
- "type" : "null"
- },
"description" : "Modify rule data.",
- "proxyto" : "node",
+ "method" : "PUT",
+ "name" : "update_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "sport" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
"optional" : 1,
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "type" : "string",
- "format" : "pve-fw-sport-spec"
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
},
"delete" : {
- "type" : "string",
+ "description" : "A list of settings you want to delete.",
"format" : "pve-configid-list",
"optional" : 1,
- "description" : "A list of settings you want to delete."
+ "type" : "string"
},
- "moveto" : {
- "type" : "integer",
- "minimum" : 0,
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
"optional" : 1,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored."
+ "type" : "string"
},
- "enable" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "string"
},
"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" : "string"
},
- "proto" : {
- "type" : "string",
- "format" : "pve-fw-protocol-spec",
+ "enable" : {
+ "minimum" : 0,
"optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
+ "type" : "integer"
},
- "macro" : {
+ "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"
+ },
+ "macro" : {
"maxLength" : 128,
+ "optional" : 1,
"type" : "string"
},
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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"
},
"source" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
"description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
- },
- "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-fw-addr-spec",
"optional" : 1,
- "minLength" : 2,
- "format" : "pve-iface",
"type" : "string"
},
- "digest" : {
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
"optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"type" : "string"
},
"type" : {
- "type" : "string",
- "optional" : 1,
"enum" : [
"in",
"out",
"group"
- ]
- },
- "dest" : {
- "optional" : 1,
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "format" : "pve-fw-addr-spec",
- "type" : "string"
- },
- "action" : {
- "maxLength" : 20,
+ ],
"optional" : 1,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/firewall/rules/{pos}",
+ "text" : "{pos}"
}
],
- "path" : "/nodes/{node}/firewall/rules",
"info" : {
"GET" : {
+ "description" : "List rules.",
"method" : "GET",
"name" : "get_rules",
- "returns" : {
- "links" : [
- {
- "href" : "{pos}",
- "rel" : "child"
- }
- ],
- "items" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "description" : "List rules.",
"permissions" : {
"check" : [
"perm",
"Sys.Audit"
]
]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
"POST" : {
- "proxyto" : "node",
+ "description" : "Create new rule.",
+ "method" : "POST",
+ "name" : "create_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "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" : {
"optional" : 1,
"type" : "string"
},
- "proto" : {
- "type" : "string",
- "format" : "pve-fw-protocol-spec",
+ "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" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
+ "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.",
+ "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" : 20,
- "minLength" : 2,
- "format" : "pve-iface",
"type" : "string"
},
"dport" : {
- "optional" : 1,
"description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "type" : "string",
- "format" : "pve-fw-dport-spec"
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string"
},
"enable" : {
"minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "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.",
+ "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,
- "format" : "pve-fw-addr-spec",
"type" : "string"
},
- "sport" : {
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "macro" : {
+ "maxLength" : 128,
"optional" : 1,
- "type" : "string",
- "format" : "pve-fw-sport-spec"
+ "type" : "string"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
},
"pos" : {
- "type" : "integer",
- "minimum" : 0,
"description" : "Update rule at position <pos>.",
- "optional" : 1
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
- "action" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20,
- "optional" : 0,
+ "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"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "dest" : {
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
"format" : "pve-fw-addr-spec",
- "type" : "string",
"optional" : 1,
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists."
+ "type" : "string"
},
- "macro" : {
- "type" : "string",
- "maxLength" : 128,
- "optional" : 1
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string"
},
"type" : {
"enum" : [
"optional" : 0,
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "null"
- },
- "method" : "POST",
- "name" : "create_rule",
- "description" : "Create new rule."
+ }
}
},
- "text" : "rules",
- "leaf" : 0
+ "leaf" : 0,
+ "path" : "/nodes/{node}/firewall/rules",
+ "text" : "rules"
},
{
- "path" : "/nodes/{node}/firewall/options",
"info" : {
- "PUT" : {
- "protected" : 1,
+ "GET" : {
+ "description" : "Get host firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"/nodes/{node}",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
"proxyto" : "node",
- "parameters" : {
+ "returns" : {
"properties" : {
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "maxLength" : 40,
- "type" : "string"
- },
"enable" : {
"description" : "Enable host firewall rules.",
"optional" : 1,
"type" : "boolean"
},
"log_level_in" : {
- "type" : "string",
+ "description" : "Log level for incoming traffic.",
"enum" : [
"emerg",
"alert",
"nolog"
],
"optional" : 1,
- "description" : "Log level for incoming traffic."
- },
- "nosmurfs" : {
- "type" : "boolean",
- "description" : "Enable SMURFS filter.",
- "optional" : 1
- },
- "tcpflags" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Filter illegal combinations of TCP flags."
- },
- "nf_conntrack_max" : {
- "type" : "integer",
- "minimum" : 32768,
- "description" : "Maximum number of tracked connections.",
- "optional" : 1
- },
- "delete" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "A list of settings you want to delete.",
- "optional" : 1
+ "type" : "string"
},
"log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "description" : "Log level for outgoing traffic.",
"optional" : 1,
"type" : "string"
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "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" : {
- "minimum" : 7875,
- "type" : "integer",
"description" : "Conntrack established timeout.",
- "optional" : 1
+ "minimum" : 7875,
+ "optional" : 1,
+ "type" : "integer"
},
- "tcp_flags_log_level" : {
- "type" : "string",
- "description" : "Log level for illegal tcp flags filter.",
+ "nosmurfs" : {
+ "description" : "Enable SMURFS filter.",
"optional" : 1,
+ "type" : "boolean"
+ },
+ "smurf_log_level" : {
+ "description" : "Log level for SMURFS filter.",
"enum" : [
"emerg",
"alert",
"info",
"debug",
"nolog"
- ]
- },
- "ndp" : {
- "type" : "boolean",
+ ],
"optional" : 1,
- "description" : "Enable NDP."
+ "type" : "string"
},
- "smurf_log_level" : {
- "type" : "string",
+ "tcp_flags_log_level" : {
+ "description" : "Log level for illegal tcp flags filter.",
"enum" : [
"emerg",
"alert",
"nolog"
],
"optional" : 1,
- "description" : "Log level for SMURFS filter."
+ "type" : "string"
+ },
+ "tcpflags" : {
+ "description" : "Filter illegal combinations of TCP flags.",
+ "optional" : 1,
+ "type" : "boolean"
}
},
- "additionalProperties" : 0
- },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
"description" : "Set Firewall options.",
- "returns" : {
- "type" : "null"
- },
+ "method" : "PUT",
"name" : "set_options",
- "method" : "PUT"
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Get host firewall options.",
- "method" : "GET",
- "name" : "get_options",
- "returns" : {
+ "parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "nf_conntrack_tcp_timeout_established" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"optional" : 1,
- "description" : "Conntrack established timeout.",
- "type" : "integer",
- "minimum" : 7875
+ "type" : "string"
},
- "ndp" : {
- "type" : "boolean",
- "description" : "Enable NDP.",
- "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"
},
- "smurf_log_level" : {
+ "enable" : {
+ "description" : "Enable host firewall rules.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
"enum" : [
"emerg",
"alert",
"debug",
"nolog"
],
- "description" : "Log level for SMURFS filter.",
"optional" : 1,
"type" : "string"
},
- "tcp_flags_log_level" : {
- "type" : "string",
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
"enum" : [
"emerg",
"alert",
"nolog"
],
"optional" : 1,
- "description" : "Log level for illegal tcp flags filter."
+ "type" : "string"
},
- "log_level_in" : {
+ "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"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "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 incoming traffic.",
"optional" : 1,
"type" : "string"
},
- "enable" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable host firewall rules."
- },
- "nf_conntrack_max" : {
- "description" : "Maximum number of tracked connections.",
- "optional" : 1,
- "type" : "integer",
- "minimum" : 32768
- },
- "tcpflags" : {
- "optional" : 1,
- "description" : "Filter illegal combinations of TCP flags.",
- "type" : "boolean"
- },
- "nosmurfs" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable SMURFS filter."
- },
- "log_level_out" : {
+ "tcp_flags_log_level" : {
+ "description" : "Log level for illegal tcp flags filter.",
"enum" : [
"emerg",
"alert",
"nolog"
],
"optional" : 1,
- "description" : "Log level for outgoing traffic.",
"type" : "string"
+ },
+ "tcpflags" : {
+ "description" : "Filter illegal combinations of TCP flags.",
+ "optional" : 1,
+ "type" : "boolean"
}
- },
- "type" : "object"
+ }
},
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- }
- }
- },
- "leaf" : 1,
- "text" : "options"
- },
- {
- "path" : "/nodes/{node}/firewall/log",
- "info" : {
- "GET" : {
"permissions" : {
"check" : [
"perm",
"/nodes/{node}",
[
- "Sys.Syslog"
+ "Sys.Modify"
]
]
},
"protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/firewall/options",
+ "text" : "options"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Read firewall log",
+ "method" : "GET",
+ "name" : "log",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"limit" : {
"minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
},
"start" : {
+ "minimum" : 0,
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "integer"
}
}
},
- "description" : "Read firewall log",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Syslog"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
"t" : {
"description" : "Line text",
"type" : "string"
- },
- "n" : {
- "type" : "integer",
- "description" : "Line number"
}
- }
+ },
+ "type" : "object"
},
"type" : "array"
- },
- "method" : "GET",
- "name" : "log"
+ }
}
},
- "text" : "log",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/firewall/log",
+ "text" : "log"
}
],
"info" : {
"GET" : {
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
}
}
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
"items" : {
"properties" : {},
"type" : "object"
},
- "type" : "array",
"links" : [
{
"href" : "{name}",
"rel" : "child"
}
- ]
- },
- "name" : "index",
- "method" : "GET",
- "description" : "Directory index.",
- "permissions" : {
- "user" : "all"
+ ],
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/firewall",
+ "text" : "firewall"
},
{
- "text" : "version",
- "leaf" : 1,
- "path" : "/nodes/{node}/version",
"info" : {
"GET" : {
"description" : "API version details",
- "permissions" : {
- "user" : "all"
- },
- "proxyto" : "node",
+ "method" : "GET",
+ "name" : "version",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
}
}
},
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
"returns" : {
"properties" : {
- "version" : {
- "type" : "string"
- },
"release" : {
"type" : "string"
},
"repoid" : {
"type" : "string"
+ },
+ "version" : {
+ "type" : "string"
}
},
"type" : "object"
- },
- "method" : "GET",
- "name" : "version"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/version",
+ "text" : "version"
},
{
- "text" : "status",
- "leaf" : 1,
- "path" : "/nodes/{node}/status",
"info" : {
"GET" : {
+ "description" : "Read node status",
"method" : "GET",
"name" : "status",
- "returns" : {
- "type" : "object",
- "properties" : {}
- },
- "proxyto" : "node",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Read node status",
"permissions" : {
"check" : [
"perm",
"Sys.Audit"
]
]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {},
+ "type" : "object"
}
},
"POST" : {
- "returns" : {
- "type" : "null"
- },
- "name" : "node_cmd",
- "method" : "POST",
"description" : "Reboot or shutdown a node.",
- "proxyto" : "node",
+ "method" : "POST",
+ "name" : "node_cmd",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
"command" : {
+ "description" : "Specify the command.",
"enum" : [
"reboot",
"shutdown"
],
- "description" : "Specify the command.",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string"
}
}
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/status",
+ "text" : "status"
},
{
- "leaf" : 1,
- "text" : "netstat",
- "path" : "/nodes/{node}/netstat",
"info" : {
"GET" : {
+ "description" : "Read tap/vm network device interface counters",
"method" : "GET",
"name" : "netstat",
- "proxyto" : "node",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
}
},
- "description" : "Read tap/vm network device interface counters",
"permissions" : {
"check" : [
"perm",
"Sys.Audit"
]
]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/netstat",
+ "text" : "netstat"
},
{
"info" : {
"POST" : {
+ "description" : "Execute multiple commands in order.",
+ "method" : "POST",
+ "name" : "execute",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
},
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
}
}
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"properties" : {},
"type" : "array"
- },
- "method" : "POST",
- "name" : "execute",
- "description" : "Execute multiple commands in order."
+ }
}
},
- "path" : "/nodes/{node}/execute",
"leaf" : 1,
+ "path" : "/nodes/{node}/execute",
"text" : "execute"
},
{
- "text" : "rrd",
- "leaf" : 1,
- "path" : "/nodes/{node}/rrd",
"info" : {
"GET" : {
+ "description" : "Read node RRD statistics (returns PNG)",
"method" : "GET",
"name" : "rrd",
- "returns" : {
- "type" : "object",
- "properties" : {
- "filename" : {
- "type" : "string"
- }
- }
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "ds" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "The list of datasources you want to display."
- },
"cf" : {
"description" : "The RRD consolidation function",
- "optional" : 1,
"enum" : [
"AVERAGE",
"MAX"
],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ds" : {
+ "description" : "The list of datasources you want to display.",
+ "format" : "pve-configid-list",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string"
},
"timeframe" : {
+ "description" : "Specify the time frame you are interested in.",
"enum" : [
"hour",
"day",
"month",
"year"
],
- "description" : "Specify the time frame you are interested in.",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Read node RRD statistics (returns PNG)"
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/rrd",
+ "text" : "rrd"
},
{
- "path" : "/nodes/{node}/rrddata",
"info" : {
"GET" : {
- "protected" : 1,
"description" : "Read node RRD statistics",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
"method" : "GET",
"name" : "rrddata",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
},
"timeframe" : {
"description" : "Specify the time frame you are interested in.",
"year"
],
"type" : "string"
- },
- "cf" : {
- "type" : "string",
- "optional" : 1,
- "description" : "The RRD consolidation function",
- "enum" : [
- "AVERAGE",
- "MAX"
- ]
}
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
},
- "additionalProperties" : 0
+ "type" : "array"
}
}
},
- "text" : "rrddata",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/rrddata",
+ "text" : "rrddata"
},
{
- "text" : "syslog",
- "leaf" : 1,
- "path" : "/nodes/{node}/syslog",
"info" : {
"GET" : {
+ "description" : "Read system log",
"method" : "GET",
"name" : "syslog",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "t" : {
- "description" : "Line text",
- "type" : "string"
- },
- "n" : {
- "description" : "Line number",
- "type" : "integer"
- }
- }
- }
- },
- "description" : "Read system log",
- "proxyto" : "node",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "start" : {
+ "limit" : {
+ "minimum" : 0,
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "integer"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
"since" : {
- "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
"description" : "Display all log since this date-time string.",
"optional" : 1,
+ "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
"type" : "string"
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "limit" : {
+ "start" : {
+ "minimum" : 0,
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "integer"
},
"until" : {
- "type" : "string",
- "optional" : 1,
"description" : "Display all log until this date-time string.",
- "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$"
+ "optional" : 1,
+ "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
+ "type" : "string"
}
}
},
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/syslog",
+ "text" : "syslog"
},
{
- "text" : "vncshell",
- "leaf" : 1,
- "path" : "/nodes/{node}/vncshell",
"info" : {
"POST" : {
- "name" : "vncshell",
+ "description" : "Creates a VNC Shell proxy.",
"method" : "POST",
- "returns" : {
+ "name" : "vncshell",
+ "parameters" : {
"additionalProperties" : 0,
"properties" : {
- "cert" : {
- "type" : "string"
- },
- "port" : {
- "type" : "integer"
- },
- "ticket" : {
- "type" : "string"
- },
- "upid" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string"
},
- "user" : {
- "type" : "string"
- }
- }
- },
- "parameters" : {
- "properties" : {
"upgrade" : {
- "type" : "boolean",
"default" : 0,
+ "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
"optional" : 1,
- "description" : "Run 'apt-get dist-upgrade' instead of normal shell."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "boolean"
},
"websocket" : {
- "type" : "boolean",
+ "description" : "use websocket instead of standard vnc.",
"optional" : 1,
- "description" : "use websocket instead of standard vnc."
+ "type" : "boolean"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
],
"description" : "Restricted to users on realm 'pam'"
},
- "description" : "Creates a VNC Shell proxy."
- }
- }
- },
- {
- "info" : {
- "GET" : {
+ "protected" : 1,
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
+ "cert" : {
+ "type" : "string"
+ },
"port" : {
+ "type" : "integer"
+ },
+ "ticket" : {
+ "type" : "string"
+ },
+ "upid" : {
+ "type" : "string"
+ },
+ "user" : {
"type" : "string"
}
- },
- "type" : "object"
- },
+ }
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/vncshell",
+ "text" : "vncshell"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "description" : "Opens a weksocket for VNC traffic.",
+ "method" : "GET",
+ "name" : "vncwebsocket",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
"port" : {
"description" : "Port number returned by previous vncproxy call.",
+ "maximum" : 5999,
"minimum" : 5900,
- "type" : "integer",
- "maximum" : 5999
+ "type" : "integer"
},
"vncticket" : {
"description" : "Ticket from previous call to vncproxy.",
"maxLength" : 512,
"type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
}
}
},
- "name" : "vncwebsocket",
- "method" : "GET",
- "description" : "Opens a weksocket for VNC traffic.",
"permissions" : {
- "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket).",
"check" : [
"perm",
"/nodes/{node}",
[
"Sys.Console"
]
- ]
+ ],
+ "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
+ },
+ "returns" : {
+ "properties" : {
+ "port" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
}
}
},
- "path" : "/nodes/{node}/vncwebsocket",
"leaf" : 1,
+ "path" : "/nodes/{node}/vncwebsocket",
"text" : "vncwebsocket"
},
{
"info" : {
"POST" : {
+ "description" : "Creates a SPICE shell.",
+ "method" : "POST",
+ "name" : "spiceshell",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "upgrade" : {
- "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
- "optional" : 1,
- "type" : "boolean",
- "default" : 0
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
},
"proxy" : {
- "type" : "string",
- "format" : "address",
"description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
- "optional" : 1
+ "format" : "address",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "upgrade" : {
+ "default" : 0,
+ "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
+ "optional" : 1,
+ "type" : "boolean"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
- "description" : "Restricted to users on realm 'pam'",
"check" : [
"perm",
"/nodes/{node}",
[
"Sys.Console"
]
- ]
+ ],
+ "description" : "Restricted to users on realm 'pam'"
},
- "method" : "POST",
- "name" : "spiceshell",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
"additionalProperties" : 1,
+ "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
"properties" : {
- "tls-port" : {
- "type" : "integer"
- },
- "type" : {
+ "host" : {
"type" : "string"
},
"password" : {
"proxy" : {
"type" : "string"
},
- "host" : {
+ "tls-port" : {
+ "type" : "integer"
+ },
+ "type" : {
"type" : "string"
}
}
- },
- "description" : "Creates a SPICE shell."
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/spiceshell",
- "text" : "spiceshell",
- "leaf" : 1
+ "text" : "spiceshell"
},
{
"info" : {
- "PUT" : {
+ "GET" : {
+ "description" : "Read DNS settings.",
+ "method" : "GET",
+ "name" : "dns",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"/nodes/{node}",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "protected" : 1,
- "parameters" : {
+ "proxyto" : "node",
+ "returns" : {
+ "additionalProperties" : 0,
"properties" : {
+ "dns1" : {
+ "description" : "First name server IP address.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dns2" : {
+ "description" : "Second name server IP address.",
+ "optional" : 1,
+ "type" : "string"
+ },
"dns3" : {
- "type" : "string",
- "format" : "ip",
"description" : "Third name server IP address.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
"search" : {
"description" : "Search domain for host-name lookup.",
+ "optional" : 1,
"type" : "string"
- },
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "description" : "Write DNS settings.",
+ "method" : "PUT",
+ "name" : "update_dns",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
"dns1" : {
+ "description" : "First name server IP address.",
"format" : "ip",
- "type" : "string",
"optional" : 1,
- "description" : "First name server IP address."
+ "type" : "string"
},
"dns2" : {
"description" : "Second name server IP address.",
+ "format" : "ip",
"optional" : 1,
+ "type" : "string"
+ },
+ "dns3" : {
+ "description" : "Third name server IP address.",
"format" : "ip",
+ "optional" : 1,
"type" : "string"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string"
+ },
+ "search" : {
+ "description" : "Search domain for host-name lookup.",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "Write DNS settings.",
- "returns" : {
- "type" : "null"
+ }
},
- "method" : "PUT",
- "name" : "update_dns"
- },
- "GET" : {
- "description" : "Read DNS settings.",
"permissions" : {
"check" : [
"perm",
"/nodes/{node}",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
- "returns" : {
- "additionalProperties" : 0,
- "properties" : {
- "dns3" : {
- "optional" : 1,
- "description" : "Third name server IP address.",
- "type" : "string"
- },
- "search" : {
- "type" : "string",
- "description" : "Search domain for host-name lookup.",
- "optional" : 1
- },
- "dns1" : {
- "type" : "string",
- "description" : "First name server IP address.",
- "optional" : 1
- },
- "dns2" : {
- "description" : "Second name server IP address.",
- "optional" : 1,
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
+ "protected" : 1,
"proxyto" : "node",
- "method" : "GET",
- "name" : "dns"
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/dns",
"leaf" : 1,
+ "path" : "/nodes/{node}/dns",
"text" : "dns"
},
{
- "text" : "time",
- "leaf" : 1,
"info" : {
"GET" : {
- "name" : "time",
+ "description" : "Read server time and time zone settings.",
"method" : "GET",
+ "name" : "time",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
"proxyto" : "node",
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
- "time" : {
- "type" : "integer",
+ "localtime" : {
+ "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
"minimum" : 1297163644,
- "description" : "Seconds since 1970-01-01 00:00:00 UTC."
+ "type" : "integer"
},
- "localtime" : {
- "type" : "integer",
+ "time" : {
+ "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
"minimum" : 1297163644,
- "description" : "Seconds since 1970-01-01 00:00:00 (local time)"
+ "type" : "integer"
},
"timezone" : {
- "type" : "string",
- "description" : "Time zone"
+ "description" : "Time zone",
+ "type" : "string"
}
},
- "additionalProperties" : 0,
"type" : "object"
- },
- "description" : "Read server time and time zone settings.",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
}
},
"PUT" : {
+ "description" : "Set time zone.",
"method" : "PUT",
"name" : "set_timezone",
- "returns" : {
- "type" : "null"
- },
- "description" : "Set time zone.",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
},
"timezone" : {
"description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/time"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/time",
+ "text" : "time"
},
{
- "leaf" : 1,
- "text" : "aplinfo",
"info" : {
- "POST" : {
+ "GET" : {
+ "description" : "Get list of appliances.",
+ "method" : "GET",
+ "name" : "aplinfo",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "template" : {
- "type" : "string",
- "maxLength" : 255,
- "description" : "The template wich will downloaded"
- },
- "storage" : {
- "description" : "Only list status for specified storage",
- "type" : "string",
- "format" : "pve-storage-id"
- },
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.AllocateTemplate"
- ]
- ]
- },
- "protected" : 1,
- "method" : "POST",
- "name" : "apl_download",
- "returns" : {
- "type" : "string"
+ "user" : "all"
},
- "description" : "Download appliance templates."
- },
- "GET" : {
- "method" : "GET",
- "name" : "aplinfo",
+ "proxyto" : "node",
"returns" : {
"items" : {
"properties" : {},
"type" : "object"
},
"type" : "array"
- },
+ }
+ },
+ "POST" : {
+ "description" : "Download appliance templates.",
+ "method" : "POST",
+ "name" : "apl_download",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
+ },
+ "storage" : {
+ "description" : "Only list status for specified storage",
+ "format" : "pve-storage-id",
+ "type" : "string"
+ },
+ "template" : {
+ "description" : "The template wich will downloaded",
+ "maxLength" : 255,
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "description" : "Get list of appliances.",
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.AllocateTemplate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
},
- "path" : "/nodes/{node}/aplinfo"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/aplinfo",
+ "text" : "aplinfo"
},
{
"info" : {
"GET" : {
+ "description" : "Gather various systems information about a node",
+ "method" : "GET",
+ "name" : "report",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
}
}
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "name" : "report",
- "method" : "GET",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "description" : "Gather various systems information about a node"
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/report",
- "text" : "report",
- "leaf" : 1
+ "text" : "report"
},
{
"info" : {
"POST" : {
+ "description" : "Start all VMs and containers (when onboot=1).",
+ "method" : "POST",
+ "name" : "startall",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
"force" : {
- "optional" : 1,
"description" : "force if onboot=0.",
+ "optional" : 1,
"type" : "boolean"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "name" : "startall",
- "method" : "POST",
- "description" : "Start all VMs and containers (when onboot=1)."
+ }
}
},
- "path" : "/nodes/{node}/startall",
"leaf" : 1,
+ "path" : "/nodes/{node}/startall",
"text" : "startall"
},
{
- "text" : "stopall",
- "leaf" : 1,
"info" : {
"POST" : {
- "proxyto" : "node",
+ "description" : "Stop all VMs and Containers.",
+ "method" : "POST",
+ "name" : "stopall",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string"
}
}
},
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "stopall",
- "description" : "Stop all VMs and Containers."
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/stopall"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/stopall",
+ "text" : "stopall"
},
{
"info" : {
"POST" : {
- "proxyto" : "node",
+ "description" : "Migrate all VMs and Containers.",
+ "method" : "POST",
+ "name" : "migrateall",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "maxworkers" : {
+ "description" : "Maximal number of parallel migration job. If not set use 'max_workers' from datacenter.cfg, one of both must be set!",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "type" : "string"
},
"target" : {
- "type" : "string",
+ "description" : "Target node.",
"format" : "pve-node",
- "description" : "Target node."
- },
- "maxworkers" : {
- "minimum" : 1,
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximal number of parallel migration job. If not set use 'max_workers' from datacenter.cfg, one of both must be set!"
+ "type" : "string"
}
}
},
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "method" : "POST",
- "name" : "migrateall",
- "description" : "Migrate all VMs and Containers."
+ }
}
},
+ "leaf" : 1,
"path" : "/nodes/{node}/migrateall",
- "text" : "migrateall",
- "leaf" : 1
+ "text" : "migrateall"
}
],
"info" : {
"GET" : {
- "name" : "index",
+ "description" : "Node index.",
"method" : "GET",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "format" : "pve-node",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
"returns" : {
"items" : {
"properties" : {},
"type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{name}",
+ "rel" : "child"
}
- ]
- },
- "permissions" : {
- "user" : "all"
- },
- "description" : "Node index."
+ ],
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}",
+ "text" : "{node}"
}
],
"info" : {
"GET" : {
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{node}"
- }
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- }
- },
+ "description" : "Cluster node index.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
- "name" : "index",
- "method" : "GET",
"permissions" : {
"user" : "all"
},
- "description" : "Cluster node index."
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{node}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes",
+ "text" : "nodes"
},
{
- "leaf" : 0,
- "text" : "storage",
- "path" : "/storage",
"children" : [
{
- "path" : "/storage/{storage}",
"info" : {
"DELETE" : {
- "protected" : 1,
"description" : "Delete storage configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
+ }
+ },
+ "GET" : {
+ "description" : "Read storage configuration.",
+ "method" : "GET",
+ "name" : "read",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
}
}
},
- "method" : "DELETE",
- "name" : "delete"
- },
- "GET" : {
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Read storage configuration.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier."
- }
- }
- },
- "returns" : {},
- "method" : "GET",
- "name" : "read"
+ "returns" : {}
},
"PUT" : {
+ "description" : "Update storage configuration.",
"method" : "PUT",
"name" : "update",
- "returns" : {
- "type" : "null"
- },
"parameters" : {
- "type" : "object",
"additionalProperties" : 0,
"properties" : {
- "maxfiles" : {
- "type" : "integer",
- "minimum" : 0,
+ "blocksize" : {
+ "description" : "block size",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "comstar_hg" : {
+ "description" : "host group for comstar views",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "comstar_tg" : {
+ "description" : "target group for comstar views",
"optional" : 1,
- "description" : "Maximal number of backup files per VM. Use '0' for unlimted."
+ "type" : "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",
- "type" : "string",
"optional" : 1,
- "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n"
+ "type" : "string"
},
- "username" : {
- "description" : "RBD Id.",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
"optional" : 1,
"type" : "string"
},
- "server" : {
- "format" : "pve-storage-server",
- "type" : "string",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "disable" : {
+ "description" : "Flag to disable the storage.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "format" : {
+ "description" : "Default image format.",
+ "format" : "pve-storage-format",
"optional" : 1,
- "description" : "Server IP or DNS name."
+ "type" : "string"
},
"krbd" : {
"description" : "Access rbd through krbd kernel module.",
"optional" : 1,
"type" : "boolean"
},
- "options" : {
+ "maxfiles" : {
+ "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "NFS mount options (see 'man nfs')",
- "type" : "string",
- "format" : "pve-storage-options"
- },
- "comstar_hg" : {
- "type" : "string",
- "description" : "host group for comstar views",
- "optional" : 1
+ "type" : "integer"
},
- "delete" : {
- "maxLength" : 4096,
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
"optional" : 1,
- "description" : "A list of settings you want to delete.",
- "type" : "string",
- "format" : "pve-configid-list"
+ "type" : "string"
},
- "sparse" : {
- "description" : "use sparse volumes",
+ "nowritecache" : {
+ "description" : "disable write caching on the target",
"optional" : 1,
"type" : "boolean"
},
- "format" : {
+ "options" : {
+ "description" : "NFS mount options (see 'man nfs')",
+ "format" : "pve-storage-options",
"optional" : 1,
- "description" : "Default image format.",
- "format" : "pve-storage-format",
"type" : "string"
},
- "disable" : {
- "type" : "boolean",
- "description" : "Flag to disable the storage.",
- "optional" : 1
+ "pool" : {
+ "description" : "Pool.",
+ "optional" : 1,
+ "type" : "string"
},
- "saferemove_throughput" : {
- "type" : "string",
- "description" : "Wipe throughput (cstream -t parameter value).",
- "optional" : 1
+ "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"
},
"saferemove" : {
"description" : "Zero-out data when removing LVs.",
"optional" : 1,
"type" : "boolean"
},
- "digest" : {
- "maxLength" : 40,
+ "saferemove_throughput" : {
+ "description" : "Wipe throughput (cstream -t parameter value).",
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"type" : "string"
},
- "nodes" : {
- "type" : "string",
- "format" : "pve-node-list",
+ "server" : {
+ "description" : "Server IP or DNS name.",
+ "format" : "pve-storage-server",
"optional" : 1,
- "description" : "List of cluster node names."
+ "type" : "string"
},
- "pool" : {
- "description" : "Pool.",
+ "server2" : {
+ "description" : "Backup volfile server IP or DNS name.",
+ "format" : "pve-storage-server",
"optional" : 1,
+ "requires" : "server",
"type" : "string"
},
- "comstar_tg" : {
- "type" : "string",
- "description" : "target group for comstar views",
- "optional" : 1
+ "shared" : {
+ "description" : "Mark storage as shared.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "nowritecache" : {
- "description" : "disable write caching on the target",
+ "sparse" : {
+ "description" : "use sparse volumes",
"optional" : 1,
"type" : "boolean"
},
- "redundancy" : {
- "type" : "integer",
- "maximum" : 16,
- "default" : 2,
- "minimum" : 1,
- "description" : "The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster.",
- "optional" : 1
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string"
},
"transport" : {
+ "description" : "Gluster transport: tcp or rdma",
"enum" : [
"tcp",
"rdma",
"unix"
],
"optional" : 1,
- "description" : "Gluster transport: tcp or rdma",
"type" : "string"
},
- "shared" : {
- "optional" : 1,
- "description" : "Mark storage as shared.",
- "type" : "boolean"
- },
- "blocksize" : {
- "description" : "block size",
+ "username" : {
+ "description" : "RBD Id.",
"optional" : 1,
"type" : "string"
- },
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
- },
- "server2" : {
- "format" : "pve-storage-server",
- "requires" : "server",
- "type" : "string",
- "optional" : 1,
- "description" : "Backup volfile server IP or DNS name."
}
- }
+ },
+ "type" : "object"
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Update storage configuration."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
"leaf" : 1,
+ "path" : "/storage/{storage}",
"text" : "{storage}"
}
],
"info" : {
"GET" : {
+ "description" : "Storage index.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"type" : {
- "type" : "string",
+ "description" : "Only list storage of specific type",
"enum" : [
- "rbd",
- "sheepdog",
- "lvm",
- "iscsi",
- "nfs",
- "zfs",
+ "dir",
+ "drbd",
"glusterfs",
+ "iscsi",
"iscsidirect",
+ "lvm",
"lvmthin",
- "drbd",
- "zfspool",
- "dir"
+ "nfs",
+ "rbd",
+ "sheepdog",
+ "zfs",
+ "zfspool"
],
- "description" : "Only list storage of specific type",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
+ "user" : "all"
},
"returns" : {
- "links" : [
- {
- "href" : "{storage}",
- "rel" : "child"
- }
- ],
"items" : {
- "type" : "object",
"properties" : {
"storage" : {
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
+ "links" : [
+ {
+ "href" : "{storage}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
- },
- "name" : "index",
- "method" : "GET",
- "description" : "Storage index.",
- "permissions" : {
- "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
- "user" : "all"
}
},
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
"description" : "Create a new storage.",
- "protected" : 1,
- "name" : "create",
"method" : "POST",
+ "name" : "create",
"parameters" : {
- "type" : "object",
+ "additionalProperties" : 0,
"properties" : {
- "nowritecache" : {
- "description" : "disable write caching on the target",
+ "authsupported" : {
+ "description" : "Authsupported.",
"optional" : 1,
- "type" : "boolean"
- },
- "comstar_tg" : {
- "type" : "string",
- "description" : "target group for comstar views",
- "optional" : 1
+ "type" : "string"
},
- "shared" : {
+ "base" : {
+ "description" : "Base volume. This volume is automatically activated.",
+ "format" : "pve-volume-id",
"optional" : 1,
- "description" : "Mark storage as shared.",
- "type" : "boolean"
+ "type" : "string"
},
- "transport" : {
- "description" : "Gluster transport: tcp or rdma",
+ "blocksize" : {
+ "description" : "block size",
"optional" : 1,
- "enum" : [
- "tcp",
- "rdma",
- "unix"
- ],
"type" : "string"
},
- "redundancy" : {
- "minimum" : 1,
- "type" : "integer",
- "maximum" : 16,
- "default" : 2,
+ "comstar_hg" : {
+ "description" : "host group for comstar views",
"optional" : 1,
- "description" : "The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster."
- },
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
+ "type" : "string"
},
- "saferemove" : {
- "description" : "Zero-out data when removing LVs.",
+ "comstar_tg" : {
+ "description" : "target group for comstar views",
"optional" : 1,
- "type" : "boolean"
+ "type" : "string"
},
- "nodes" : {
- "type" : "string",
- "format" : "pve-node-list",
- "description" : "List of cluster node names.",
- "optional" : 1
+ "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"
},
- "sparse" : {
- "description" : "use sparse volumes",
+ "disable" : {
+ "description" : "Flag to disable the storage.",
"optional" : 1,
"type" : "boolean"
},
- "saferemove_throughput" : {
- "description" : "Wipe throughput (cstream -t parameter value).",
+ "export" : {
+ "description" : "NFS export path.",
+ "format" : "pve-storage-path",
"optional" : 1,
"type" : "string"
},
"format" : {
- "type" : "string",
- "format" : "pve-storage-format",
"description" : "Default image format.",
- "optional" : 1
- },
- "content" : {
+ "format" : "pve-storage-format",
"optional" : 1,
- "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
- "format" : "pve-storage-content-list",
"type" : "string"
},
- "portal" : {
- "type" : "string",
- "format" : "pve-storage-portal-dns",
- "optional" : 1,
- "description" : "iSCSI portal (IP or DNS name with optional port)."
- },
- "server" : {
- "description" : "Server IP or DNS name.",
+ "iscsiprovider" : {
+ "description" : "iscsi provider",
"optional" : 1,
- "format" : "pve-storage-server",
"type" : "string"
},
"krbd" : {
- "type" : "boolean",
+ "description" : "Access rbd through krbd kernel module.",
"optional" : 1,
- "description" : "Access rbd through krbd kernel module."
+ "type" : "boolean"
},
- "monhost" : {
+ "maxfiles" : {
+ "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
+ "minimum" : 0,
"optional" : 1,
+ "type" : "integer"
+ },
+ "monhost" : {
"description" : "Monitors daemon ips.",
+ "optional" : 1,
"type" : "string"
},
- "server2" : {
- "format" : "pve-storage-server",
- "requires" : "server",
- "type" : "string",
- "description" : "Backup volfile server IP or DNS name.",
- "optional" : 1
- },
- "blocksize" : {
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
"optional" : 1,
- "description" : "block size",
"type" : "string"
},
- "type" : {
- "description" : "Storage type.",
- "enum" : [
- "rbd",
- "sheepdog",
- "lvm",
- "iscsi",
- "nfs",
- "zfs",
- "glusterfs",
- "iscsidirect",
- "lvmthin",
- "drbd",
- "zfspool",
- "dir"
- ],
- "type" : "string"
+ "nowritecache" : {
+ "description" : "disable write caching on the target",
+ "optional" : 1,
+ "type" : "boolean"
},
- "vgname" : {
- "description" : "Volume group name.",
+ "options" : {
+ "description" : "NFS mount options (see 'man nfs')",
+ "format" : "pve-storage-options",
"optional" : 1,
- "type" : "string",
- "format" : "pve-storage-vgname"
+ "type" : "string"
},
- "iscsiprovider" : {
- "description" : "iscsi provider",
+ "path" : {
+ "description" : "File system path.",
+ "format" : "pve-storage-path",
"optional" : 1,
"type" : "string"
},
"pool" : {
- "type" : "string",
+ "description" : "Pool.",
"optional" : 1,
- "description" : "Pool."
+ "type" : "string"
},
- "path" : {
- "description" : "File system path.",
+ "portal" : {
+ "description" : "iSCSI portal (IP or DNS name with optional port).",
+ "format" : "pve-storage-portal-dns",
"optional" : 1,
- "format" : "pve-storage-path",
"type" : "string"
},
- "export" : {
- "description" : "NFS export path.",
+ "redundancy" : {
+ "default" : 2,
+ "description" : "The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster.",
+ "maximum" : 16,
+ "minimum" : 1,
"optional" : 1,
- "type" : "string",
- "format" : "pve-storage-path"
+ "type" : "integer"
},
- "disable" : {
- "description" : "Flag to disable the storage.",
+ "saferemove" : {
+ "description" : "Zero-out data when removing LVs.",
"optional" : 1,
"type" : "boolean"
},
- "base" : {
- "type" : "string",
- "format" : "pve-volume-id",
- "description" : "Base volume. This volume is automatically activated.",
- "optional" : 1
+ "saferemove_throughput" : {
+ "description" : "Wipe throughput (cstream -t parameter value).",
+ "optional" : 1,
+ "type" : "string"
},
- "volume" : {
- "type" : "string",
+ "server" : {
+ "description" : "Server IP or DNS name.",
+ "format" : "pve-storage-server",
"optional" : 1,
- "description" : "Glusterfs Volume."
+ "type" : "string"
},
- "target" : {
- "type" : "string",
+ "server2" : {
+ "description" : "Backup volfile server IP or DNS name.",
+ "format" : "pve-storage-server",
"optional" : 1,
- "description" : "iSCSI target."
+ "requires" : "server",
+ "type" : "string"
},
- "maxfiles" : {
+ "shared" : {
+ "description" : "Mark storage as shared.",
"optional" : 1,
- "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
- "minimum" : 0,
- "type" : "integer"
+ "type" : "boolean"
},
- "authsupported" : {
- "type" : "string",
+ "sparse" : {
+ "description" : "use sparse volumes",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string"
+ },
+ "target" : {
+ "description" : "iSCSI target.",
"optional" : 1,
- "description" : "Authsupported."
+ "type" : "string"
},
"thinpool" : {
- "type" : "string",
+ "description" : "LVM thin pool LV name.",
"format" : "pve-storage-vgname",
"optional" : 1,
- "description" : "LVM thin pool LV name."
+ "type" : "string"
+ },
+ "transport" : {
+ "description" : "Gluster transport: tcp or rdma",
+ "enum" : [
+ "tcp",
+ "rdma",
+ "unix"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "options" : {
- "description" : "NFS mount options (see 'man nfs')",
- "optional" : 1,
- "format" : "pve-storage-options",
+ "type" : {
+ "description" : "Storage type.",
+ "enum" : [
+ "dir",
+ "drbd",
+ "glusterfs",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "rbd",
+ "sheepdog",
+ "zfs",
+ "zfspool"
+ ],
"type" : "string"
},
"username" : {
"optional" : 1,
"type" : "string"
},
- "comstar_hg" : {
- "type" : "string",
- "description" : "host group for comstar views",
- "optional" : 1
+ "vgname" : {
+ "description" : "Volume group name.",
+ "format" : "pve-storage-vgname",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "description" : "Glusterfs Volume.",
+ "optional" : 1,
+ "type" : "string"
}
},
- "additionalProperties" : 0
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
},
+ "protected" : 1,
"returns" : {
"type" : "null"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/storage",
+ "text" : "storage"
},
{
- "text" : "access",
- "leaf" : 0,
- "info" : {
- "GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- }
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{subdir}"
- }
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "method" : "GET",
- "name" : "index",
- "description" : "Directory index.",
- "permissions" : {
- "user" : "all"
- }
- }
- },
- "path" : "/access",
"children" : [
{
- "leaf" : 0,
- "text" : "users",
- "info" : {
- "POST" : {
- "name" : "create_user",
- "method" : "POST",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "keys" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Keys for two factor auth (yubico)."
- },
- "lastname" : {
- "type" : "string",
- "optional" : 1
- },
- "firstname" : {
- "optional" : 1,
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "userid" : {
- "type" : "string",
- "format" : "pve-userid",
- "maxLength" : 64,
- "description" : "User ID"
- },
- "email" : {
- "optional" : 1,
- "type" : "string",
- "format" : "email-opt"
- },
- "password" : {
- "minLength" : 5,
- "maxLength" : 64,
- "optional" : 1,
- "description" : "Initial password.",
- "type" : "string"
- },
- "enable" : {
- "default" : 1,
- "type" : "boolean",
- "description" : "Enable the account (default). You can set this to '0' to disable the accout",
- "optional" : 1
- },
- "expire" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Account expiration date (seconds since epoch). '0' means no expiration date."
- },
- "groups" : {
- "type" : "string",
- "format" : "pve-groupid-list",
- "optional" : 1
- }
- }
- },
- "returns" : {
- "type" : "null"
- },
- "description" : "Create new user.",
- "permissions" : {
- "check" : [
- "and",
- [
- "userid-param",
- "Realm.AllocateUser"
- ],
- [
- "userid-group",
- [
- "User.Modify"
- ],
- "groups_param",
- 1
- ]
- ],
- "description" : "You need 'Realm.AllocateUser' on '/access/realm/<realm>' on the realm of user <userid>, and 'User.Modify' permissions to '/access/groups/<group>' for any group specified (or 'User.Modify' on '/access/groups' if you pass no groups."
- },
- "protected" : 1
- },
- "GET" : {
- "returns" : {
- "links" : [
- {
- "href" : "{userid}",
- "rel" : "child"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {
- "userid" : {
- "type" : "string"
- }
- }
- },
- "type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "enabled" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Optional filter for enable property."
- }
- }
- },
- "method" : "GET",
- "name" : "index",
- "description" : "User index.",
- "permissions" : {
- "user" : "all",
- "description" : "The returned list is restricted to users where you have 'User.Modify' or 'Sys.Audit' permissions on '/access/groups' or on a group the user belongs too. But it always includes the current (authenticated) user."
- }
- }
- },
- "path" : "/access/users",
"children" : [
{
- "text" : "{userid}",
- "leaf" : 1,
"info" : {
- "PUT" : {
- "name" : "update_user",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "expire" : {
- "optional" : 1,
- "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
- "minimum" : 0,
- "type" : "integer"
- },
- "enable" : {
- "type" : "boolean",
- "description" : "Enable/disable the account.",
- "optional" : 1
- },
- "groups" : {
- "type" : "string",
- "format" : "pve-groupid-list",
- "optional" : 1
- },
- "append" : {
- "type" : "boolean",
- "requires" : "groups",
- "optional" : 1
- },
- "userid" : {
- "maxLength" : 64,
- "description" : "User ID",
- "format" : "pve-userid",
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "firstname" : {
- "type" : "string",
- "optional" : 1
- },
- "keys" : {
- "description" : "Keys for two factor auth (yubico).",
- "optional" : 1,
- "type" : "string"
- },
- "lastname" : {
- "optional" : 1,
- "type" : "string"
- },
- "email" : {
- "optional" : 1,
- "format" : "email-opt",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "description" : "Update user configuration.",
- "permissions" : {
- "check" : [
- "userid-group",
- [
- "User.Modify"
- ],
- "groups_param",
- 1
- ]
- }
- },
"DELETE" : {
+ "description" : "Delete user.",
"method" : "DELETE",
"name" : "delete_user",
- "returns" : {
- "type" : "null"
- },
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"userid" : {
+ "description" : "User ID",
"format" : "pve-userid",
- "type" : "string",
"maxLength" : 64,
- "description" : "User ID"
+ "type" : "string"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"and",
]
]
},
- "description" : "Delete user."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
},
"GET" : {
+ "description" : "Get user configuration.",
+ "method" : "GET",
+ "name" : "read_user",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "userid-group",
+ [
+ "User.Modify",
+ "Sys.Audit"
+ ]
+ ]
+ },
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
- "email" : {
+ "comment" : {
"optional" : 1,
"type" : "string"
},
- "comment" : {
+ "email" : {
"optional" : 1,
"type" : "string"
},
+ "enable" : {
+ "type" : "boolean"
+ },
+ "expire" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
"firstname" : {
"optional" : 1,
"type" : "string"
},
+ "groups" : {
+ "type" : "array"
+ },
"keys" : {
- "type" : "string",
- "optional" : 1
+ "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"
},
- "groups" : {
- "type" : "array"
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
},
- "expire" : {
- "type" : "integer",
- "optional" : 1
+ "email" : {
+ "format" : "email-opt",
+ "optional" : 1,
+ "type" : "string"
},
"enable" : {
+ "description" : "Enable/disable the account.",
+ "optional" : 1,
"type" : "boolean"
- }
- },
- "additionalProperties" : 0
- },
- "parameters" : {
- "properties" : {
+ },
+ "expire" : {
+ "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "firstname" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "groups" : {
+ "format" : "pve-groupid-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "keys" : {
+ "description" : "Keys for two factor auth (yubico).",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "lastname" : {
+ "optional" : 1,
+ "type" : "string"
+ },
"userid" : {
- "maxLength" : 64,
"description" : "User ID",
"format" : "pve-userid",
+ "maxLength" : 64,
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "GET",
- "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"
+ }
}
},
- "path" : "/access/users/{userid}"
+ "leaf" : 1,
+ "path" : "/access/users/{userid}",
+ "text" : "{userid}"
}
- ]
- },
- {
+ ],
"info" : {
- "POST" : {
- "name" : "create_group",
- "method" : "POST",
+ "GET" : {
+ "description" : "User index.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "groupid" : {
- "type" : "string",
- "format" : "pve-groupid"
+ "enabled" : {
+ "description" : "Optional filter for enable property.",
+ "optional" : 1,
+ "type" : "boolean"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
"permissions" : {
- "check" : [
- "perm",
- "/access/groups",
- [
- "Group.Allocate"
- ]
- ]
- },
- "description" : "Create new group.",
- "protected" : 1
- },
- "GET" : {
- "name" : "index",
- "method" : "GET",
- "parameters" : {
- "additionalProperties" : 0
+ "description" : "The returned list is restricted to users where you have 'User.Modify' or 'Sys.Audit' permissions on '/access/groups' or on a group the user belongs too. But it always includes the current (authenticated) user.",
+ "user" : "all"
},
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
- "groupid" : {
+ "userid" : {
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
- "type" : "array",
"links" : [
{
- "href" : "{groupid}",
+ "href" : "{userid}",
"rel" : "child"
}
- ]
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new user.",
+ "method" : "POST",
+ "name" : "create_user",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "email" : {
+ "format" : "email-opt",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "enable" : {
+ "default" : 1,
+ "description" : "Enable the account (default). You can set this to '0' to disable the accout",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "expire" : {
+ "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "firstname" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "groups" : {
+ "format" : "pve-groupid-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "keys" : {
+ "description" : "Keys for two factor auth (yubico).",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "lastname" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "password" : {
+ "description" : "Initial password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string"
+ }
+ }
},
"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"
+ "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."
},
- "description" : "Group index."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
+ "leaf" : 0,
+ "path" : "/access/users",
+ "text" : "users"
+ },
+ {
"children" : [
{
- "text" : "{groupid}",
- "leaf" : 1,
"info" : {
"DELETE" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "Delete group.",
+ "method" : "DELETE",
+ "name" : "delete_group",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"groupid" : {
"format" : "pve-groupid",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "delete_group",
- "method" : "DELETE",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Delete group."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
},
"GET" : {
- "returns" : {
- "properties" : {
- "members" : {
- "type" : "array",
- "items" : {
- "type" : "string"
- }
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- },
- "additionalProperties" : 0,
- "type" : "object"
- },
+ "description" : "Get group configuration.",
+ "method" : "GET",
+ "name" : "read_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"groupid" : {
- "type" : "string",
- "format" : "pve-groupid"
+ "format" : "pve-groupid",
+ "type" : "string"
}
}
},
- "name" : "read_group",
- "method" : "GET",
- "description" : "Get group configuration.",
"permissions" : {
"check" : [
"perm",
"any",
1
]
+ },
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "members" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
}
},
"PUT" : {
- "name" : "update_group",
+ "description" : "Update group data.",
"method" : "PUT",
- "returns" : {
- "type" : "null"
- },
+ "name" : "update_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"comment" : {
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
"groupid" : {
"format" : "pve-groupid",
}
}
},
- "protected" : 1,
- "description" : "Update group data.",
"permissions" : {
"check" : [
"perm",
"Group.Allocate"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/access/groups/{groupid}"
+ "leaf" : 1,
+ "path" : "/access/groups/{groupid}",
+ "text" : "{groupid}"
}
],
- "path" : "/access/groups",
- "leaf" : 0,
- "text" : "groups"
- },
- {
"info" : {
- "POST" : {
- "name" : "create_role",
- "method" : "POST",
+ "GET" : {
+ "description" : "Group index.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
- "properties" : {
- "roleid" : {
- "type" : "string",
- "format" : "pve-roleid"
- },
- "privs" : {
- "type" : "string",
- "format" : "pve-priv-list",
- "optional" : 1
- }
- },
"additionalProperties" : 0
},
- "returns" : {
- "type" : "null"
- },
"permissions" : {
- "check" : [
- "perm",
- "/access",
- [
- "Sys.Modify"
- ]
- ]
+ "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
+ "user" : "all"
},
- "description" : "Create new role.",
- "protected" : 1
- },
- "GET" : {
- "method" : "GET",
- "name" : "index",
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{roleid}"
- }
- ],
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
- "roleid" : {
+ "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
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "groupid" : {
+ "format" : "pve-groupid",
+ "type" : "string"
+ }
+ }
},
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/access/groups",
+ [
+ "Group.Allocate"
+ ]
+ ]
},
- "description" : "Role index."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
+ "leaf" : 0,
+ "path" : "/access/groups",
+ "text" : "groups"
+ },
+ {
"children" : [
{
- "leaf" : 1,
- "text" : "{roleid}",
- "path" : "/access/roles/{roleid}",
"info" : {
- "PUT" : {
- "permissions" : {
- "check" : [
- "perm",
- "/access",
- [
- "Sys.Modify"
- ]
- ]
- },
- "description" : "Create new role.",
- "protected" : 1,
- "name" : "update_role",
- "method" : "PUT",
+ "DELETE" : {
+ "description" : "Delete role.",
+ "method" : "DELETE",
+ "name" : "delete_role",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "privs" : {
- "format" : "pve-priv-list",
- "type" : "string"
- },
- "append" : {
- "type" : "boolean",
- "requires" : "privs",
- "optional" : 1
- },
"roleid" : {
"format" : "pve-roleid",
"type" : "string"
}
}
},
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "returns" : {},
- "parameters" : {
- "properties" : {
- "roleid" : {
- "format" : "pve-roleid",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "GET",
- "name" : "read_role",
- "description" : "Get role configuration.",
- "permissions" : {
- "user" : "all"
- }
- },
- "DELETE" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Delete role.",
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
+ }
+ },
+ "GET" : {
+ "description" : "Get role configuration.",
+ "method" : "GET",
+ "name" : "read_role",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "roleid" : {
- "type" : "string",
- "format" : "pve-roleid"
- }
- }
- },
- "method" : "DELETE",
- "name" : "delete_role"
- }
- }
- }
- ],
- "path" : "/access/roles",
- "text" : "roles",
- "leaf" : 0
- },
- {
- "info" : {
- "PUT" : {
- "permissions" : {
- "check" : [
- "perm-modify",
- "{path}"
- ]
- },
- "description" : "Update Access Control List (add or remove permissions).",
- "protected" : 1,
- "method" : "PUT",
- "name" : "update_acl",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "propagate" : {
- "type" : "boolean",
- "default" : 1,
- "optional" : 1,
- "description" : "Allow to propagate (inherit) permissions."
- },
- "roles" : {
- "type" : "string",
- "format" : "pve-roleid-list",
- "description" : "List of roles."
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string"
+ }
+ }
},
- "users" : {
- "format" : "pve-userid-list",
- "type" : "string",
- "description" : "List of users.",
- "optional" : 1
+ "permissions" : {
+ "user" : "all"
},
- "groups" : {
- "optional" : 1,
- "description" : "List of groups.",
- "format" : "pve-groupid-list",
- "type" : "string"
+ "returns" : {}
+ },
+ "PUT" : {
+ "description" : "Create new role.",
+ "method" : "PUT",
+ "name" : "update_role",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "append" : {
+ "optional" : 1,
+ "requires" : "privs",
+ "type" : "boolean"
+ },
+ "privs" : {
+ "format" : "pve-priv-list",
+ "type" : "string"
+ },
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string"
+ }
+ }
},
- "delete" : {
- "type" : "boolean",
- "description" : "Remove permissions (instead of adding it).",
- "optional" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "path" : {
- "type" : "string",
- "description" : "Access control path"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "returns" : {
- "type" : "null"
- }
- },
+ "leaf" : 1,
+ "path" : "/access/roles/{roleid}",
+ "text" : "{roleid}"
+ }
+ ],
+ "info" : {
"GET" : {
+ "description" : "Role index.",
"method" : "GET",
- "name" : "read_acl",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
- "propagate" : {
- "type" : "boolean"
- },
- "ugid" : {
- "type" : "string"
- },
- "path" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "user",
- "group"
- ]
- },
"roleid" : {
"type" : "string"
}
},
- "additionalProperties" : 0,
"type" : "object"
- }
- },
+ },
+ "links" : [
+ {
+ "href" : "{roleid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Create new role.",
+ "method" : "POST",
+ "name" : "create_role",
"parameters" : {
- "additionalProperties" : 0
+ "additionalProperties" : 0,
+ "properties" : {
+ "privs" : {
+ "format" : "pve-priv-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string"
+ }
+ }
},
- "description" : "Get Access Control List (ACLs).",
"permissions" : {
- "user" : "all",
- "description" : "The returned list is restricted to objects where you have rights to modify permissions."
+ "check" : [
+ "perm",
+ "/access",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/access/acl",
- "text" : "acl",
- "leaf" : 1
+ "leaf" : 0,
+ "path" : "/access/roles",
+ "text" : "roles"
},
{
"info" : {
"GET" : {
- "permissions" : {
- "user" : "world",
- "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated)."
- },
- "description" : "Authentication domain index.",
+ "description" : "Get Access Control List (ACLs).",
"method" : "GET",
- "name" : "index",
+ "name" : "read_acl",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
+ "user" : "all"
+ },
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{realm}"
- }
- ],
- "type" : "array",
"items" : {
+ "additionalProperties" : 0,
"properties" : {
- "realm" : {
+ "path" : {
"type" : "string"
},
- "tfa" : {
+ "propagate" : {
+ "type" : "boolean"
+ },
+ "roleid" : {
+ "type" : "string"
+ },
+ "type" : {
"enum" : [
- "yubico",
- "oath"
+ "user",
+ "group"
],
- "description" : "Two-factor authentication provider.",
- "optional" : 1,
"type" : "string"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "ugid" : {
+ "type" : "string"
}
},
"type" : "object"
- }
+ },
+ "type" : "array"
}
},
- "POST" : {
- "description" : "Add an authentication server.",
- "permissions" : {
- "check" : [
- "perm",
- "/access/realm",
- [
- "Realm.Allocate"
- ]
- ]
- },
- "protected" : 1,
+ "PUT" : {
+ "description" : "Update Access Control List (add or remove permissions).",
+ "method" : "PUT",
+ "name" : "update_acl",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "server1" : {
- "format" : "address",
- "type" : "string",
- "description" : "Server IP address (or DNS name)",
+ "delete" : {
+ "description" : "Remove permissions (instead of adding it).",
"optional" : 1,
- "maxLength" : 256
+ "type" : "boolean"
},
- "default" : {
- "type" : "boolean",
+ "groups" : {
+ "description" : "List of groups.",
+ "format" : "pve-groupid-list",
"optional" : 1,
- "description" : "Use this as default realm"
- },
- "realm" : {
- "type" : "string",
- "format" : "pve-realm",
- "description" : "Authentication domain ID",
- "maxLength" : 32
+ "type" : "string"
},
- "base_dn" : {
- "type" : "string",
- "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
- "maxLength" : 256,
- "description" : "LDAP base domain name",
- "optional" : 1
+ "path" : {
+ "description" : "Access control path",
+ "type" : "string"
},
- "tfa" : {
- "format" : "pve-tfa-config",
- "type" : "string",
- "maxLength" : 128,
+ "propagate" : {
+ "default" : 1,
+ "description" : "Allow to propagate (inherit) permissions.",
"optional" : 1,
- "description" : "Use Two-factor authentication."
- },
- "server2" : {
- "format" : "address",
- "type" : "string",
- "description" : "Fallback Server IP address (or DNS name)",
- "maxLength" : 256,
- "optional" : 1
+ "type" : "boolean"
},
- "domain" : {
- "pattern" : "\\S+",
- "optional" : 1,
- "description" : "AD domain name",
- "maxLength" : 256,
+ "roles" : {
+ "description" : "List of roles.",
+ "format" : "pve-roleid-list",
"type" : "string"
},
- "type" : {
- "type" : "string",
- "description" : "Realm type.",
- "enum" : [
- "ldap",
- "pve",
- "ad",
- "pam"
- ]
- },
- "user_attr" : {
- "type" : "string",
- "pattern" : "\\S{2,}",
- "description" : "LDAP user attribute name",
- "maxLength" : 256,
- "optional" : 1
- },
- "port" : {
- "minimum" : 1,
- "type" : "integer",
- "maximum" : 65535,
- "description" : "Server port.",
- "optional" : 1
- },
- "comment" : {
- "type" : "string",
- "description" : "Description.",
- "maxLength" : 4096,
- "optional" : 1
- },
- "secure" : {
+ "users" : {
+ "description" : "List of users.",
+ "format" : "pve-userid-list",
"optional" : 1,
- "description" : "Use secure LDAPS protocol.",
- "type" : "boolean"
+ "type" : "string"
}
- },
- "additionalProperties" : 0,
- "type" : "object"
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm-modify",
+ "{path}"
+ ]
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "name" : "create",
- "method" : "POST"
+ }
}
},
+ "leaf" : 1,
+ "path" : "/access/acl",
+ "text" : "acl"
+ },
+ {
"children" : [
{
- "path" : "/access/domains/{realm}",
"info" : {
- "PUT" : {
+ "DELETE" : {
+ "description" : "Delete an authentication server.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Update authentication server settings.",
"protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Get auth server configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access/realm",
+ [
+ "Realm.Allocate",
+ "Sys.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "returns" : {}
+ },
+ "PUT" : {
+ "description" : "Update authentication server settings.",
+ "method" : "PUT",
+ "name" : "update",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "base_dn" : {
+ "description" : "LDAP base domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
"comment" : {
- "type" : "string",
"description" : "Description.",
"maxLength" : 4096,
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "secure" : {
- "type" : "boolean",
+ "default" : {
+ "description" : "Use this as default realm",
"optional" : 1,
- "description" : "Use secure LDAPS protocol."
+ "type" : "boolean"
},
- "user_attr" : {
- "type" : "string",
- "pattern" : "\\S{2,}",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
"optional" : 1,
- "description" : "LDAP user attribute name",
- "maxLength" : 256
+ "type" : "string"
},
- "port" : {
- "description" : "Server port.",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
- "minimum" : 1,
- "maximum" : 65535,
- "type" : "integer"
+ "type" : "string"
},
"domain" : {
- "type" : "string",
- "pattern" : "\\S+",
- "optional" : 1,
"description" : "AD domain name",
- "maxLength" : 256
- },
- "server2" : {
- "type" : "string",
- "format" : "address",
- "optional" : 1,
"maxLength" : 256,
- "description" : "Fallback Server IP address (or DNS name)"
+ "optional" : 1,
+ "pattern" : "\\S+",
+ "type" : "string"
},
- "digest" : {
- "type" : "string",
+ "port" : {
+ "description" : "Server port.",
+ "maximum" : 65535,
+ "minimum" : 1,
"optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "type" : "integer"
},
"realm" : {
- "maxLength" : 32,
"description" : "Authentication domain ID",
"format" : "pve-realm",
+ "maxLength" : 32,
"type" : "string"
},
- "default" : {
- "type" : "boolean",
+ "secure" : {
+ "description" : "Use secure LDAPS protocol.",
"optional" : 1,
- "description" : "Use this as default realm"
+ "type" : "boolean"
},
- "tfa" : {
- "description" : "Use Two-factor authentication.",
- "maxLength" : 128,
+ "server1" : {
+ "description" : "Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
"optional" : 1,
- "type" : "string",
- "format" : "pve-tfa-config"
+ "type" : "string"
},
- "base_dn" : {
- "type" : "string",
- "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "server2" : {
+ "description" : "Fallback Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
"optional" : 1,
- "description" : "LDAP base domain name",
- "maxLength" : 256
+ "type" : "string"
},
- "delete" : {
- "maxLength" : 4096,
+ "tfa" : {
+ "description" : "Use Two-factor authentication.",
+ "format" : "pve-tfa-config",
+ "maxLength" : 128,
"optional" : 1,
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
"type" : "string"
},
- "server1" : {
- "format" : "address",
- "type" : "string",
- "description" : "Server IP address (or DNS name)",
+ "user_attr" : {
+ "description" : "LDAP user attribute name",
"maxLength" : 256,
- "optional" : 1
+ "optional" : 1,
+ "pattern" : "\\S{2,}",
+ "type" : "string"
}
},
"type" : "object"
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access/realm",
+ [
+ "Realm.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
"returns" : {
"type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/domains/{realm}",
+ "text" : "{realm}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Authentication domain index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
+ "user" : "world"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "realm" : {
+ "type" : "string"
+ },
+ "tfa" : {
+ "description" : "Two-factor authentication provider.",
+ "enum" : [
+ "yubico",
+ "oath"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{realm}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "description" : "Add an authentication server.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "base_dn" : {
+ "description" : "LDAP base domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "default" : {
+ "description" : "Use this as default realm",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "domain" : {
+ "description" : "AD domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\S+",
+ "type" : "string"
+ },
+ "port" : {
+ "description" : "Server port.",
+ "maximum" : 65535,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "method" : "PUT",
- "name" : "update"
- },
- "GET" : {
- "description" : "Get auth server configuration.",
- "permissions" : {
- "check" : [
- "perm",
- "/access/realm",
- [
- "Realm.Allocate",
- "Sys.Audit"
- ],
- "any",
- 1
- ]
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string"
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "realm" : {
- "description" : "Authentication domain ID",
- "maxLength" : 32,
- "type" : "string",
- "format" : "pve-realm"
- }
- }
+ "secure" : {
+ "description" : "Use secure LDAPS protocol.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "returns" : {},
- "name" : "read",
- "method" : "GET"
- },
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "realm" : {
- "maxLength" : 32,
- "description" : "Authentication domain ID",
- "type" : "string",
- "format" : "pve-realm"
- }
- }
+ "server1" : {
+ "description" : "Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string"
},
- "returns" : {
- "type" : "null"
+ "server2" : {
+ "description" : "Fallback Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string"
},
- "method" : "DELETE",
- "name" : "delete",
- "description" : "Delete an authentication server.",
- "permissions" : {
- "check" : [
- "perm",
- "/access/realm",
- [
- "Realm.Allocate"
- ]
- ]
+ "tfa" : {
+ "description" : "Use Two-factor authentication.",
+ "format" : "pve-tfa-config",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string"
},
- "protected" : 1
- }
+ "type" : {
+ "description" : "Realm type.",
+ "enum" : [
+ "ad",
+ "ldap",
+ "pam",
+ "pve"
+ ],
+ "type" : "string"
+ },
+ "user_attr" : {
+ "description" : "LDAP user attribute name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\S{2,}",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
},
- "leaf" : 1,
- "text" : "{realm}"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access/realm",
+ [
+ "Realm.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
- ],
- "path" : "/access/domains",
+ },
"leaf" : 0,
+ "path" : "/access/domains",
"text" : "domains"
},
{
- "path" : "/access/ticket",
"info" : {
+ "GET" : {
+ "description" : "Dummy. Useful for 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",
"name" : "create_ticket",
- "returns" : {
- "properties" : {
- "CSRFPreventionToken" : {
- "optional" : 1,
- "type" : "string"
- },
- "ticket" : {
- "type" : "string",
- "optional" : 1
- },
- "username" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"otp" : {
"description" : "One-time password for Two-factor authentication.",
"optional" : 1,
"type" : "string"
},
+ "password" : {
+ "description" : "The secret password. This can also be a valid ticket.",
+ "type" : "string"
+ },
"path" : {
- "requires" : "privs",
- "type" : "string",
- "optional" : 1,
+ "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
"maxLength" : 64,
- "description" : "Verify ticket, and check if user have access 'privs' on 'path'"
+ "optional" : 1,
+ "requires" : "privs",
+ "type" : "string"
},
- "password" : {
- "description" : "The secret password. This can also be a valid ticket.",
+ "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"
},
"realm" : {
- "optional" : 1,
- "maxLength" : 32,
"description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
- "type" : "string",
- "format" : "pve-realm"
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "optional" : 1,
+ "type" : "string"
},
"username" : {
"description" : "User name",
"maxLength" : 64,
"type" : "string"
- },
- "privs" : {
- "format" : "pve-priv-list",
- "type" : "string",
- "requires" : "path",
- "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
- "optional" : 1,
- "maxLength" : 64
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
- "description" : "Create or verify authentication ticket.",
- "permissions" : {
- "user" : "world",
- "description" : "You need to pass valid credientials."
- }
- },
- "GET" : {
- "description" : "Dummy. Useful for formaters which want to priovde a login page.",
"permissions" : {
+ "description" : "You need to pass valid credientials.",
"user" : "world"
},
- "method" : "GET",
- "name" : "get_ticket",
- "parameters" : {
- "additionalProperties" : 0
- },
+ "protected" : 1,
"returns" : {
- "type" : "null"
+ "properties" : {
+ "CSRFPreventionToken" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ticket" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "username" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
}
}
},
- "text" : "ticket",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/access/ticket",
+ "text" : "ticket"
},
{
- "text" : "password",
- "leaf" : 1,
- "path" : "/access/password",
"info" : {
"PUT" : {
- "protected" : 1,
+ "description" : "Change user password.",
+ "method" : "PUT",
+ "name" : "change_passsword",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "password" : {
+ "description" : "The new password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "type" : "string"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
- "description" : "Each user is allowed to change his own password. A user can change the password of another user if he has 'Realm.AllocateUser' (on the realm of user <userid>) and 'User.Modify' permission on /access/groups/<group> on a group where user <userid> is member of.",
"check" : [
"or",
[
]
]
]
- ]
+ ],
+ "description" : "Each user is allowed to change his own password. A user can change the password of another user if he has 'Realm.AllocateUser' (on the realm of user <userid>) and 'User.Modify' permission on /access/groups/<group> on a group where user <userid> is member of."
},
- "description" : "Change user password.",
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "parameters" : {
- "properties" : {
- "password" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "The new password.",
- "minLength" : 5
- },
- "userid" : {
- "description" : "User ID",
- "maxLength" : 64,
- "format" : "pve-userid",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "change_passsword",
- "method" : "PUT"
+ }
}
+ },
+ "leaf" : 1,
+ "path" : "/access/password",
+ "text" : "password"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
- ]
+ },
+ "leaf" : 0,
+ "path" : "/access",
+ "text" : "access"
},
{
"children" : [
{
- "path" : "/pools/{poolid}",
"info" : {
- "GET" : {
- "name" : "read_pool",
- "method" : "GET",
+ "DELETE" : {
+ "description" : "Delete pool.",
+ "method" : "DELETE",
+ "name" : "delete_pool",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"poolid" : {
- "type" : "string",
- "format" : "pve-poolid"
+ "format" : "pve-poolid",
+ "type" : "string"
}
}
},
- "returns" : {
- "type" : "object",
- "properties" : {
- "members" : {
- "items" : {
- "type" : "object",
- "additionalProperties" : 1,
- "properties" : {
- "storage" : {
- "type" : "string",
- "optional" : 1
- },
- "type" : {
- "enum" : [
- "qemu",
- "lxc",
- "openvz",
- "storage"
- ],
- "type" : "string"
- },
- "vmid" : {
- "type" : "integer",
- "optional" : 1
- },
- "node" : {
- "type" : "string"
- },
- "id" : {
- "type" : "string"
- }
- }
- },
- "type" : "array"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/pool/{poolid}",
- [
- "Pool.Allocate"
- ]
- ]
- },
- "description" : "Get pool configuration."
- },
- "DELETE" : {
"permissions" : {
"check" : [
"perm",
],
"description" : "You can only delete empty pools (no members)."
},
- "description" : "Delete pool.",
"protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "description" : "Get pool configuration.",
+ "method" : "GET",
+ "name" : "read_pool",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"poolid" : {
"format" : "pve-poolid",
"type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
- "name" : "delete_pool",
- "method" : "DELETE"
- },
- "PUT" : {
"permissions" : {
- "description" : "You also need the right to modify permissions on any object you add/delete.",
"check" : [
"perm",
"/pool/{poolid}",
]
]
},
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "members" : {
+ "items" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ },
+ "node" : {
+ "type" : "string"
+ },
+ "storage" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "qemu",
+ "lxc",
+ "openvz",
+ "storage"
+ ],
+ "type" : "string"
+ },
+ "vmid" : {
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
"description" : "Update pool data.",
- "protected" : 1,
+ "method" : "PUT",
+ "name" : "update_pool",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "storage" : {
- "format" : "pve-storage-id-list",
- "type" : "string",
- "description" : "List of storage IDs.",
- "optional" : 1
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
},
"delete" : {
- "type" : "boolean",
+ "description" : "Remove vms/storage (instead of adding it).",
"optional" : 1,
- "description" : "Remove vms/storage (instead of adding it)."
+ "type" : "boolean"
},
- "vms" : {
- "description" : "List of virtual machines.",
- "optional" : 1,
- "format" : "pve-vmid-list",
+ "poolid" : {
+ "format" : "pve-poolid",
"type" : "string"
},
- "comment" : {
+ "storage" : {
+ "description" : "List of storage IDs.",
+ "format" : "pve-storage-id-list",
"optional" : 1,
"type" : "string"
},
- "poolid" : {
- "format" : "pve-poolid",
+ "vms" : {
+ "description" : "List of virtual machines.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/pool/{poolid}",
+ [
+ "Pool.Allocate"
+ ]
+ ],
+ "description" : "You also need the right to modify permissions on any object you add/delete."
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "name" : "update_pool",
- "method" : "PUT"
+ }
}
},
- "text" : "{poolid}",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/pools/{poolid}",
+ "text" : "{poolid}"
}
],
- "path" : "/pools",
"info" : {
"GET" : {
"description" : "Pool index.",
- "permissions" : {
- "user" : "all",
- "description" : "List all pools where you have Pool.Allocate or VM.Allocate permissions on /pool/<pool>."
- },
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "description" : "List all pools where you have Pool.Allocate or VM.Allocate permissions on /pool/<pool>.",
+ "user" : "all"
+ },
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
"poolid" : {
"href" : "{poolid}",
"rel" : "child"
}
- ]
- },
- "name" : "index",
- "method" : "GET"
+ ],
+ "type" : "array"
+ }
},
"POST" : {
- "returns" : {
- "type" : "null"
- },
+ "description" : "Create new pool.",
+ "method" : "POST",
+ "name" : "create_pool",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "poolid" : {
- "type" : "string",
- "format" : "pve-poolid"
- },
"comment" : {
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
+ },
+ "poolid" : {
+ "format" : "pve-poolid",
+ "type" : "string"
}
}
},
- "name" : "create_pool",
- "method" : "POST",
- "protected" : 1,
- "description" : "Create new pool.",
"permissions" : {
"check" : [
"perm",
"Pool.Allocate"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "text" : "pools",
- "leaf" : 0
+ "leaf" : 0,
+ "path" : "/pools",
+ "text" : "pools"
},
{
- "path" : "/version",
"info" : {
"GET" : {
+ "description" : "API version details. The result also includes the global datacenter confguration.",
+ "method" : "GET",
+ "name" : "version",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "object",
"properties" : {
"release" : {
"type" : "string"
},
- "version" : {
+ "repoid" : {
"type" : "string"
},
- "repoid" : {
+ "version" : {
"type" : "string"
}
- }
- },
- "method" : "GET",
- "name" : "version",
- "permissions" : {
- "user" : "all"
- },
- "description" : "API version details. The result also includes the global datacenter confguration."
+ },
+ "type" : "object"
+ }
}
},
"leaf" : 1,
+ "path" : "/version",
"text" : "version"
}
]